認可
EMQXは強力なアクセス制御機能を提供しており、EMQXダッシュボードでは標準で認可管理機能を備えています。ビジュアルインターフェースを通じて、ユーザーはコードを書いたり設定ファイルを手動で編集したりすることなく、EMQXの認可メカニズムを迅速に構成できます。これにより、MQTTクライアントの接続直後のパブリッシュやサブスクライブなどの操作を制御でき、さまざまなレベルやシナリオにおける安全な設定が可能になります。認可ページでは、さまざまな認可リソースを迅速に作成・管理できます。
認可の作成
認可ページの右上にある作成ボタンをクリックすると、認可の作成ページに移動します。認可を作成するには、権限データを構成・保存するバックエンドを選択する必要があります。
バックエンド
バックエンドには、ファイル、組み込みデータベース、外部データベース、HTTPサーバーの使用オプションがあります。
Access Control List(ACL)ファイルを使用すると、ファイルに定義された一連のルールをスキャンして、各パブリッシュまたはサブスクライブリクエストが許可されているかどうかを判定し、認可内容を編集・保存できます。
EMQXの組み込みデータベースを使用して認可ルールを構成・保存することも可能です。
外部データベースを使用して認可ルールを保存することもでき、MySQL、PostgreSQL、MongoDB、Redisなどの主要なデータベースをサポートしています。
あらかじめ定義されたHTTPサービスを使用して、認可リクエストを外部HTTPサーバーに委任できます。外部HTTPサービスは権限の検証機能を備えている必要があります。

設定
バックエンドを選択した後は、認可の最終ステップとして選択したバックエンドの設定を行います。各バックエンドには接続や使用に関する設定があり、ユーザーが手動で構成する必要があります。または、ACLファイルのルール内容を編集・保存することも可能です。設定が完了したら作成をクリックして認可設定を素早く完了します。注意:一度使用した認可バックエンドは再度選択できません。
ファイル
ACLファイルを使用する場合、設定パラメータページにテキスト編集ボックスが提供され、ファイル内の認可ルールの内容を編集できます。ルールはErlangのタプルデータのリストで構成されます。(各ルールはドット(.)で終わる必要があります)タプルは角括弧で囲まれたリストで、要素はカンマで区切られています。
ファイルルールの編集方法の詳細は、ACLファイルを参照してください。
組み込みデータベース
組み込みデータベースを認可に使用する場合、パラメータの設定は不要で、作成後にユーザーのページで権限ルールを構成します。
外部データベース
外部データベースを使用する場合、アクセス可能なデータベースのアドレス、データベース名、ユーザー名、パスワードを設定し、認可データをデータベースから取得するためのSQL文やその他のクエリ文を入力する必要があります。パブリッシュやサブスクライブ時に、認可データはデータベースから照会され、権限ルールの適用可否が判断されます。MySQLを例に挙げます。
MySQLやその他の外部データベースの設定詳細については、MySQL連携や各データベースの設定ドキュメントを参照してください。
HTTPサーバー
HTTPサーバーを使用する場合は、あらかじめ認可データの照合をサポートするHTTPサーバーが必要です。サブスクライブやパブリッシュ時に、EMQXはデータをHTTPサービスに転送し、HTTPから返された結果に基づいて操作が権限ルールを通過できるかを判断します。
サービスのアドレスとリクエストメソッド(POSTまたはGET)、サービスのヘッダーを設定し、パブリッシュやサブスクライブに必要な認可情報(例:username、topic、action)をJSONデータとしてBodyフィールドに設定します。
HTTPサーバー認可の設定方法の詳細は、HTTPサービスの利用を参照してください。
認可リスト
認可設定が完了すると、認可リストで確認・管理できます。このリストではバックエンドとその状態が表示されます。例えば、外部データベースが未展開または正常に接続されていない場合、バックエンドの状態はDisconnectedと表示されます。このフィールドにカーソルを合わせると、EMQXクラスター内の全ノードにおける当該データソースの接続状況を確認できます。有効化スイッチをクリックすることで認可設定の有効・無効を素早く切り替えられます。
認証リストと同様に、認可リストの各行はマウスでドラッグして順序を調整したり、アクション列から並べ替えたりできます。EMQXは複数の認可メカニズムの作成を許可しており、クライアントがパブリッシュやサブスクライブ操作を行う際、EMQXは順番にチェックします。例えば、ある認可設定でクライアントにマッチするACLが見つかれば、そのルールが適用され許可または拒否されます。該当するルールが見つからない場合は、次の認可設定を順次チェックします。

アクション列では、認可設定の編集、順序調整、削除も可能です。
注意
認可を無効にすると、クライアントのパブリッシュ/サブスクライブ時の権限操作に影響します。慎重に操作してください。
グローバル設定
リストページ右上の設定ボタンをクリックすると、認可のグローバル設定を行えます。
認可ルールにマッチしなかった場合の動作(許可または拒否)、拒否後にメッセージを無視するかクライアントを切断するかを設定できます。認可データのキャッシュを有効にすると、バックエンドへのアクセス負荷を軽減できます。右側のキャッシュクリアをクリックすると、現在の認可結果キャッシュをすべて素早くクリアできます。

概要
リストページのバックエンド列にある認可設定名をクリックすると、その認可設定の概要ページに移動します。このページでは、EMQXクラスターにおける認可に関連した各種メトリクス(成功・失敗した認可数、不一致数、現在のレートなど)を確認できます。
ページ下部のノードステータスでは、一覧にある各ノードごとの認可メトリクスデータを閲覧できます。

権限
組み込みデータベースを使用している場合、リストページのアクション列にある権限をクリックすると、認可ルールの管理・設定が可能です。クライアントIDやユーザー名でクライアントを区別したり、すべてのユーザーに対する認可ルールを追加したりできます。
認可ルールを設定するには、認可設定が必要なトピックを入力し、そのトピックのサブスクライブまたはパブリッシュ時に権限が適用されるかを選択し、許可(allow)または拒否(deny)の設定を行います。

組み込みデータベースの認可設定方法の詳細は、組み込みデータベースの利用を参照してください。
注意
認可を無効にすると、クライアントのパブリッシュ/サブスクライブの権限操作に影響します。慎重に操作してください。
設定
認可のバックエンドを変更する必要がある場合は、リストページのアクション列にある設定をクリックし、設定ページでACLファイルの権限ルール内容の変更や、外部データベースの接続情報やクエリ文の変更を行えます。
例えば、認可設定のバックエンドを変更したり、ACLの権限ルールを修正したり、外部データベースの接続情報やクエリ文に変更があった場合は、リストページのアクション列の設定をクリックして設定ページで構成情報を修正できます。
詳細情報
認可の詳細については、認可の概要をご覧ください。