# 認可

認可とは、MQTTクライアントのパブリッシュおよびサブスクライブ操作に対する権限を制御することを指します。EMQXの認可機構の基本原理は、クライアントがパブリッシュまたはサブスクライブを試みる際に、EMQXが特定のプロセスまたはユーザー定義のクエリ文に従ってデータソースからクライアントの権限データを取得し、その権限と実行しようとする操作を照合して、照合結果に基づき操作を許可または拒否するというものです。

クライアント権限データの一例は、以下の要素で構成されます。

| **権限**       | **クライアント**               | **操作**                         | **操作の詳細**                |
| -------------- | ------------------------------ | -------------------------------- | ----------------------------- |
| 許可／拒否     | クライアントID／ユーザー名／IPアドレス | パブリッシュ／サブスクライブ／パブリッシュ＆サブスクライブ | トピック／QoS／保持メッセージ |

## [デフォルト認可](./default_authz.md)

EMQXプラットフォームは、組み込みデータベースに保存されたルールに基づいて認可を行うデフォルトの認可方式を提供します。

## [拡張認可](./custom_authz.md)

組み込みデータベースに基づくデフォルト認可に加えて、MySQL、PostgreSQL、Redis、HTTPなどのさまざまなバックエンドデータベースと連携した認可認証もサポートしています。

- [HTTPによる認可](./http_auth.md)
- [MySQLによる認可](./mysql_auth.md)
- [PostgreSQLによる認可](./pgsql_auth.md)
- [Redisによる認可](./redis_auth.md)

## デプロイメント別の認可サポート

| **デプロイメント** | **デフォルト認可** | **拡張認可** |
| ------------------ | ------------------ | ------------ |
| サーバーレス       | ✓                  | ✗            |
| 専用               | ✓                  | ✓            |
