認証
EMQXダッシュボードは、すぐに使える認証およびユーザー管理機能を提供しています。ユーザーはコードを書いたり設定ファイルを手動で編集したりすることなく、ユーザーインターフェースを通じてクライアント認証の仕組みを素早く設定できます。これにより、さまざまなデータソースや認証サービスと連携して、異なるレベルやシナリオで安全な設定を実現し、開発効率を向上させつつセキュリティを強化できます。認証ページでは、さまざまな認証リソースを素早く作成・管理できます。
TIP
認証バックエンドを設定した後は、デバイスやMQTTクライアントがEMQXに安全に接続できるよう、対応する認証情報を設定する必要があります。
認証の作成
作成ボタンをクリックすると、認証の作成ページに移動します。認証を作成するには、まず認証メカニズムを選択し、その後(JWT認証を除き)認証データを保存または取得するバックエンドを選択します。これらのバックエンドは、データベースやHTTPサーバーなどから認証データを取得できます。最後に、バックエンドに接続するための接続情報を設定します。
認証機構
EMQXが提供する以下のメカニズムから選択できます。
- パスワードベース:クライアントIDまたはユーザー名とパスワードを使用します。
- JWT:クライアントがユーザー名またはパスワードにJWTトークンを含める方式です。
- SCRAM:MQTT 5.0の強化認証で、クライアントとサーバー間の双方向認証を可能にします。

バックエンド
このステップでは、前のステップで選択した認証機構に基づいてバックエンドを選択します。
TIP
すでに認証に使用されているバックエンドは再選択できません。
バックエンドの詳細については、EMQX Authenticatorsをご参照ください。
パスワードベース
Password-Basedを選択した場合、認証データを保存するデータベースか、認証データを提供するHTTPサーバーのいずれかを選択できます。データベースは以下の2種類があります。
- EMQXの組み込みデータベース、すなわち
Built-in Database - 外部データベースで、
MySQL、PostgreSQL、MongoDB、Redisなどの主流データベースを選択・接続可能です。
また、認証データを提供できるHTTPサービス、すなわちHTTP Serverを直接利用することもできます。
JWT
JWTを選択した場合は、バックエンドの選択は不要です。
SCRAM
MQTT 5.0の強化認証機能で、選択した場合は現在のところBuilt-in Databaseのみ利用可能です。これはEMQXの組み込みデータベース(Mnesia)を使用してデータを保存します。
強化認証はクライアントとサーバーの双方向認証を可能にし、サーバーは接続されたクライアントが正当なクライアントであることを、クライアントは接続されたサーバーが正当なサーバーであることを検証できるため、より高いセキュリティを提供します。
MQTT 5.0の強化認証の詳細は、SCRAM認証およびMQTT 5.0強化認証 - Kerberosをご参照ください。
設定
最後のステップでは、選択したバックエンドの設定を行います。各バックエンドには接続および使用に関する設定項目があり、ユーザーが設定を行う必要があります。設定が完了したら、作成をクリックしてください。
詳細な設定手順は各EMQX認証機構のドキュメントを参照してください。
例えば、Built-in Databaseを使用する場合は、ユーザー名またはクライアントIDのどちらを使うか、パスワードの暗号化方式などを設定します。MQTT 5.0の強化認証で組み込みデータベースを使用する場合は、暗号化方式のみ設定すればよいです。
組み込みデータベースの詳細は、組み込みデータベースの利用をご参照ください。
リストには各認証機構のバックエンドとメカニズム、バックエンドの状態が表示されます。例えば、外部データベースの接続に失敗した場合はステータスがDisconnectedと表示されます。このフィールドにカーソルを合わせると、EMQXクラスター内のすべてのノードがこのデータソースに接続している状態の詳細が表示されます。有効スイッチを切り替えることで、認証設定を素早く有効化または無効化できます。
外部データベースを使用する場合は、データベースのサーバーアドレス、データベース名、ユーザー名とパスワード、認証設定、データベースからデータを取得するためのSQL文やその他のクエリ文を設定する必要があります。
MySQLやその他の外部データベースの詳細は、MySQLとの連携や各データベースの設定ドキュメントをご参照ください。
HTTPサーバー
HTTPサーバーを利用する場合は、HTTPサービスのリクエストメソッド(POSTまたはGET)を設定します。リクエストURLはプロトコル(httpまたはhttps)を含めて入力してください。次にHTTPリクエストヘッダーの設定があります。認証情報はBodyフィールドに入力し、例えばusernameやpasswordをJSONデータとして記述します。
HTTPサーバーの詳細は、HTTPサービスの利用をご参照ください。
JWTおよびJWKS
JWTを利用する場合は、バックエンドを選択せずに直接JWTを設定できます。クライアントのusernameまたはpasswordのどちらからJWTトークンを取得するかを設定します。これにより、クライアントは接続時に対応するフィールドにトークンを入力するだけでJWT認証が可能になります。次に、暗号化方式に応じてSecretまたはPublic Keyを設定し、SecretがBase64エンコードされているかどうかを指定します。最後に、検証に必要な情報をPayloadに入力してJWT認証の設定を完了します。
JWKS Endpointから最新のJWKSを定期的に取得できます。JWKSは認可サーバーが発行しRSAまたはECDSAアルゴリズムで署名されたJWTを検証するための公開鍵群です。JWKSの更新間隔(秒単位)も設定可能です。最後にPayloadの項目を設定してJWKSの設定を完了します。
JWTの詳細は、JWT認証をご参照ください。
認証機構一覧
認証器を正常に作成すると、認証器一覧で確認および管理できます。
一覧では、各認証器のバックエンドとメカニズム、バックエンドの状態が表示されます。例えば外部データベースの接続に失敗した場合、状態はDisconnectedと表示されます。このフィールドにカーソルを合わせると、EMQXクラスター内のすべてのノードの接続状態の詳細が表示されます。有効スイッチを切り替えることで、認証設定を素早く有効化または無効化できます。
認証器一覧の各エントリは、マウスでドラッグするか、操作列の順序を調整して並び替え可能です。認証器一覧の順序は重要で、EMQXは複数の認証器を順次認証チェーンとして動作させます。現在の認証器が認証情報の照合に失敗した場合は、次の認証器に処理が引き継がれます。
操作列では、認証器の設定変更や削除も行えます。

注意
認証を無効にすると、すべてのクライアントが認証なしでEMQXに接続可能になります。十分に注意して操作してください。
ユーザー管理
組み込みデータベースを使用しているユーザーは、認証器一覧ページのユーザー管理をクリックすると認証情報を管理できます。ユーザー名やパスワードの追加・削除ができるほか、テンプレートをダウンロードして認証情報を記入し、インポートをクリックすることで認証関連のユーザー情報を一括作成できます。

概要
一覧ページのメカニズムとバックエンドリストで認証器名をクリックすると、概要ページに移動します。このページでは、EMQXクラスター内の認証器の認証成功数や失敗数、不一致数、現在接続中の認証率などのメトリクスを確認できます。
ページ下部では各ノードごとの統計情報を閲覧でき、各EMQXノードの認証状況やパフォーマンスを監視可能です。

設定
一覧ページの設定をクリックすると、認証設定の変更が可能です。
設定ページでは、外部データベースの接続情報が変更された場合や、組み込みデータベースのUserID Typeをユーザー名またはクライアントIDに変更したい場合、パスワードの暗号化方式を変更したい場合などに現在の認証器設定を修正できます。
注意
組み込みデータベースを使用している場合、パスワードハッシュやソルト位置を更新すると、既存の認証データが利用できなくなるため、十分に注意してください。

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