# 拡張認可

拡張認可は、ユーザーが独自のサービスを使用して認可を行うことを可能にし、MySQLやRedisなどの外部データベースをデータソースとしてサポートしたり、HTTPサービスに接続して認可を行ったりできます。

::: tip 注意

拡張認可はEMQX Serverlessのデプロイメントではサポートされていません。

:::

## 拡張認可データソース

[HTTPによる認可](./http_authz.md)

[MySQLによる認可](./mysql_authz.md)

[PostgreSQLによる認可](./pgsql_authz.md)

[Redisによる認可](./redis_authz.md)

:::tip 注意

拡張認可は最大2つまでサポートされていますが、パフォーマンスの観点から複数の拡張認可を同時に使用することは推奨されません。
:::

## 認可の順序

拡張認可データソースを追加した後、それらを並べ替えることができ、カスタム認可チェーンをサポートします。認可データソースのアイコンをドラッグして並べ替えることで、認可の順序を設定できます。

拡張認可ページで **Authorization order** をクリックすると順序設定ページに入ります。デプロイメントは左から右の順に認可チェックを実行します。デフォルトでは、最新に追加された認可が最初に配置され、デフォルト認可は最後に配置されます。

- アクションは権限と照合され、権限に基づいてクライアントの操作を許可または拒否します
- アクションが権限と照合されない場合は、次の認可チェッカーにチェックが渡されます

カスタム認可チェーン：認可データソースのアイコンは左右にドラッグして認可順序を並べ替えられます。

![add_acl](./_assets/acl_v5_order.png)

## 認可ホワイトリストモードの有効化

ホワイトリストモードを有効にすると、すべてのユーザーはデフォルトでサブスクライブおよびパブリッシュが禁止されます。クライアントはサブスクライブおよびパブリッシュの操作を行うために認可を付与される必要があります。

[認可ホワイトリストモードの有効化](./default_authz.md#enable-authorization-whitelist-mode) の手順に従ってデフォルト認可を設定してください。拡張認可データソースを追加した後、拡張認可ページで **Authorization Order** をクリックして並べ替えページに入り、「Default Authorization」が認可順序の最も右側に配置されていることを確認するとホワイトリストモードが有効になります。
