認証
EMQXダッシュボードは、すぐに使える認証およびユーザー管理機能を提供しています。ユーザーはコードを書いたり設定ファイルを手動で編集したりすることなく、ユーザーインターフェースを通じてクライアント認証の仕組みを迅速に構成できます。これにより、さまざまなデータソースや認証サービスと統合し、多様なレベルやシナリオで安全な設定を実現できるため、開発効率を高めつつセキュリティの保証も強化されます。認証ページでは、さまざまな認証リソースを素早く作成・管理できます。
TIP
認証バックエンドを設定した後は、デバイスやMQTTクライアントがEMQXに安全に接続できるように、対応する認証情報を設定する必要があります。
認証の作成
作成ボタンをクリックすると、認証の作成ページに移動します。認証を作成するには、まず認証メカニズムを選択し、その後認証データを保存または取得するバックエンドを選択します(JWT認証を除く)。認証データは、データベースやHTTPサーバーなどのバックエンドから取得できます。最後に、バックエンドに接続するための接続情報を設定します。
メカニズム
EMQXが提供する以下のメカニズムから選択できます。
- パスワードベース:ユーザー名またはクライアントIDとパスワードを用いてクライアントを認証し、データベースやHTTPバックエンドで検証します。
- JWT:ユーザー名またはパスワード欄にJSON Web Tokenを指定してクライアントを認証します。トークンはシークレット、公開鍵、またはJWKSで検証され、バックエンドは不要です。
- SCRAM:MQTT 5.0の拡張認証メカニズムで、平文パスワードを送信せずにクライアントとサーバー間の相互認証を実現します。
- GSSAPI:MQTT 5.0の拡張認証メカニズムで、Kerberosと連携し、チケットベースの安全な認証を提供します。
- クライアント情報:クライアントID、ユーザー名、IPアドレス、TLS証明書情報などの接続メタデータに基づいてクライアントを認証します。

バックエンド
このステップでは、前のステップで選択したメカニズムに応じてバックエンドを選択します。
TIP
一度認証に使用したバックエンドは再選択できません。
バックエンドの詳細については、EMQX Authenticatorsを参照してください。
パスワードベース
パスワードベースを選択した場合、以下のバックエンドから選べます。
- 組み込みデータベース:EMQXの組み込みデータベースを使用して、ユーザー名、クライアントID、ハッシュ化されたパスワードを保存します。
- 外部データベース:外部のデータソースに認証データを保存します。EMQXは
MySQL、PostgreSQL、MongoDB、Redisなどの主要なデータベースをサポートしています。 - HTTPサーバー:外部のHTTPサービスから認証結果を取得します。EMQXはクライアントの認証情報を設定されたHTTPエンドポイントに送信し、サービスの応答に基づいてクライアントを認証します。
JWT
JWTを選択した場合、バックエンドは不要です。すべての認証ロジックは、設定されたシークレット、公開鍵、またはJWKSを使ってトークン自体を検証することで処理されます。
SCRAM
SCRAMを選択した場合、以下のバックエンドがサポートされます。
- 組み込みデータベース:SCRAMの認証情報(ソルト付きパスワード検証子など)をEMQXの組み込みデータベースに保存します。
- HTTPサーバー:外部のHTTPサービスからSCRAM認証データを取得し、EMQXの外部でSCRAM認証情報を管理できます。
SCRAMはクライアントとサーバー間の相互認証を提供し、双方の認証を保証するとともに認証情報の漏洩を防ぎます。
詳細は以下を参照してください。
GSSAPI
GSSAPIを選択した場合、バックエンドは以下です。
- Kerberos:EMQXはKerberosのキー配布センター(KDC)と統合し、Kerberosチケットを用いてクライアントを認証します。このバックエンドにより、Kerberosベースの認証を通じて集中管理されたID管理と強力なセキュリティ保証が可能になります。
詳細はMQTT 5.0拡張認証 – Kerberosを参照してください。
クライアント情報
クライアント情報を選択した場合、外部バックエンドは不要です。クライアントの接続情報を設定されたルールに照らして評価し、認証を行います。このメカニズムは軽量なアクセス制御、ネットワークベースの信頼、または補完的な認証層としてよく使われます。
詳細はクライアント情報認証を参照してください。
設定
最後に選択したバックエンドの設定を行います。各バックエンドには接続や利用に関する設定項目があり、ユーザーが設定する必要があります。設定が完了したら、作成をクリックしてください。
詳細な設定手順は各EMQX認証機能のドキュメントを参照してください。
認証機能一覧
認証機能を作成すると、認証機能一覧で確認・管理できます。
一覧では、各認証機能のバックエンドとメカニズム、バックエンドの状態が表示されます。例えば、外部データベースの接続に失敗した場合は状態がDisconnectedと表示されます。このフィールドにマウスを合わせると、EMQXクラスター内のすべてのノードの接続状況の詳細が表示されます。有効スイッチを切り替えることで認証設定を素早く有効化・無効化できます。
認証機能一覧の各項目は、マウスドラッグまたは操作列の順序調整で並び替え可能です。認証機能の順序は重要で、EMQXは複数の認証機能を順番に実行する認証チェーンをサポートしています。現在の認証機能で該当する認証情報が取得できなかった場合、次の認証機能に処理が引き継がれます。
操作列では、認証機能の設定変更や削除も行えます。

注意
無効化された認証機能はクライアント認証を行わないため、すべてのクライアントがEMQXに接続可能になります。ご注意ください。
ユーザー管理
組み込みデータベースを利用する認証機能では、ユーザー管理タブでユーザー認証情報を管理できます。
アクセス方法は以下のいずれかです。
- 認証機能一覧ページの組み込みデータベース認証機能の操作列にあるユーザーをクリック
- 組み込みデータベースの詳細ページを開き、ユーザー管理タブに切り替え
ユーザー管理ページでは、ユーザーの作成・編集・削除、スーパーユーザー権限の付与、テンプレートをダウンロードして必要事項を記入後に一括インポートが可能です。
ユーザー追加時には、任意でネームスペースを選択して特定のスコープにユーザーを紐付けることもできます。

概要
組み込みデータベースの概要タブでは、EMQXクラスター全体の認証メトリクスを表示します。成功・失敗した認証数、該当なしの試行回数、現在の認証率などを確認できます。
ページ下部では各ノードごとの統計情報を確認でき、各EMQXノードの認証状況やパフォーマンスを監視できます。

設定
認証機能一覧ページの設定をクリックすると、認証設定を更新できます。
設定ページでは、選択した認証機能のパラメータを変更可能です。例えば、外部データベースの接続設定、組み込みデータベースで使用するUserID Type(ユーザー名またはクライアントID)、パスワードのハッシュアルゴリズムなどが設定できます。
TIP
組み込みデータベースでPassword HashやSalt Positionを変更すると、既存のユーザー認証情報が無効になります。ご注意ください。

さらに詳しく
認証の詳細については、認証を参照してください。