# シングルサインオン（SSO）

シングルサインオン（SSO）は、ユーザーが複数のアプリケーションやシステムに対して、ユーザー名やパスワードなどの単一の認証情報でログインできる認証機構です。各アプリケーションで個別に認証を行う必要がありません。EMQX ダッシュボードで SSO 機能を有効にすると、ユーザーは企業アカウントの認証情報を使って便利にログインできます。組織はユーザーのアイデンティティや権限を一元管理でき、ユーザー管理の手間を軽減します。この機能により、企業のデータやシステムのセキュリティを強化しつつ、ユーザーの利便性も向上します。

EMQX は Lightweight Directory Access Protocol（LDAP）、Security Assertion Markup Language（SAML）2.0 標準、および OpenID Connect（OIDC）に基づく SSO 機能を実装しており、[OpenLDAP](https://www.openldap.org/)、[Azure AD (Microsoft Entra ID)](https://azure.microsoft.com/en-in/products/active-directory)、[Okta](https://www.okta.com/)、[OneLogin](https://www.onelogin.com/) などの主要なアイデンティティサービスとの連携をサポートしています。

## LDAP ベースの SSO

EMQX ダッシュボードは LDAP を利用した SSO の統合をサポートしています。LDAP は分散ディレクトリ情報サービスにアクセス・管理するためのアプリケーション層プロトコルであり、企業環境における SSO ソリューションの一般的な認証および認可プロトコルです。

LDAP SSO を使用する場合、EMQX はユーザーの LDAP 認証情報をディレクトリサーバーに送信して検証を行います。検証が成功すると、ユーザーのセッション情報を作成し、ダッシュボードへのログインを実行します。

## SAML ベースの SSO

EMQX ダッシュボードは SAML をサポートする Identity Provider（IdP）サービスとの統合を可能にしています。SAML は XML ベースのオープンスタンダードなデータフォーマットであり、企業環境で広く利用されている SSO ソリューションです。

SAML SSO では、ユーザーは Identity Provider に対して一度だけ認証を行います。Identity Provider はユーザー情報を含む SAML アサーションを生成し、EMQX ダッシュボードに送信します。EMQX ダッシュボードはこの SAML アサーションを受信し、検証に成功するとユーザーのセッション情報を作成してログインを完了します。SAML はクロスドメイン認証および認可を可能にし、複数のアプリケーション間でのシームレスな統合をサポートします。企業は既存の SAML アイデンティティシステムに EMQX を容易に組み込み、ユーザーが安全かつ便利に EMQX サービスにアクセスできるようにします。

## OIDC ベースの SSO

EMQX ダッシュボードは OIDC をサポートする Identity Provider（IdP）サービスとの統合を可能にしています。OIDC は OAuth 2.0 プロトコル上に構築されたアイデンティティレイヤーであり、ユーザーのアイデンティティを検証しユーザー情報を取得するための標準化された方法を提供します。

OIDC SSO では、ユーザーは Identity Provider に認証を行い、ID トークンにユーザー情報を含めて EMQX ダッシュボードに返します。EMQX ダッシュボードはこの ID トークンを受信し、検証に成功するとユーザーのセッション情報を作成してログインを完了します。OIDC はモダンで RESTful な認証手法を提供し、最新のアイデンティティサービスとの統合を容易にします。

## 設定および利用のワークフロー

1. 管理者はダッシュボードで SSO を設定・有効化します。設定後、EMQX ダッシュボードのログインページに SSO の入口が表示されます。
2. ユーザー情報は Identity Provider（IdP）側で設定されます。
3. ユーザーはダッシュボードのログインページで利用可能な複数のシングルサインオン方式から選択します。
4. ログイン成功後、EMQX ダッシュボードはユーザー情報に基づきセッションを作成し、ユーザーはダッシュボードにアクセスできます。バックエンドで `force_mfa` が有効な場合、セッション発行前に TOTP 認証の完了も必要です。
5. 管理者はユーザーごとにロールや権限を割り当てます。ユーザーはログインを更新後、対応するリソースにアクセス可能となります。

## SSO ユーザー向けの MFA

EMQX 5.10 以降、各 SSO バックエンドで `force_mfa` を有効にすることで、SSO ユーザーにログイン時の TOTP 二要素認証を必須化できます。詳細は [SSO ユーザー向けの強制 MFA](../multi-factor-authn/multi-factor-authentication.md#forced-mfa-for-sso-users) をご参照ください。

## 設定例

各 SSO 方式の設定例は以下をご覧ください。

- [LDAP シングルサインオンの設定](./sso-ldap.md)
- [SAML シングルサインオンの設定](./sso-saml.md)
- [OIDC シングルサインオンの設定](./sso-oidc.md)
