# Azure AD認可によるSSOの設定

Azure Active Directory（Microsoft Enterprise ID、以下Azure AD）で企業アカウントを管理している場合、EMQX Platformの認可サーバーとしてAzure ADを選択し、シングルサインオン（SSO）を有効化できます。さらに、Azure ADでOpenID Connect（OIDC）設定を行う必要があります。本ページでは、EMQXおよびAzure ADにおけるOIDC設定例を示し、企業のアイデンティティプロバイダー（IdP）とEMQX Platformを連携してSSOを実現するためのエンドツーエンドの設定手順を解説します。

## 前提条件

- EMQX PlatformのRootアカウントを保有していること。
- Azure ADテナントおよびその管理者ユーザーが存在すること。
- Azure ADの操作は管理者ユーザー（グローバル管理者権限を持つ）で行う必要があります。ユーザー作成や権限付与の詳細は[Azure ADドキュメント](https://learn.microsoft.com/zh-cn/azure/active-directory/fundamentals/)を参照してください。

## ステップ1：EMQX PlatformでSSOを有効化する

1. EMQX PlatformのRootアカウントでCloud Consoleにログインします。  
2. 右上のユーザーアイコンをクリックし、ドロップダウンメニューから**SSO**を選択します。  
3. SSO設定画面に入り、**SSOを有効化**をクリックします。  
4. OIDCのアイデンティティプロバイダーとして`Azure AD`を選択し、**次へ**をクリックします。  
5. ページに表示される**リダイレクトURL**を確認します。このURLは後続の設定で使用します。

<img src="./_assets/sso1.png" alt="SSO設定画面" style="zoom:67%;" />

## ステップ2：Azure ADで新規アプリケーションを登録する

1. 管理者ユーザーアカウントで[Azure Portal](https://portal.azure.com/#home)にログインします。  
2. 左上のアイコンをクリックし、Azure Active Directoryの製品ページへ移動します。  
3. 左メニューの**アプリの登録**をクリックします。  
4. メイン画面で**新規登録**を選択し、以下の情報を入力または選択します。

   - 登録するアプリケーション名（例：`emqx-cloud-sso`）を入力します。  
   - このアプリケーションを利用するAzureテナントを選択します。  
   - リダイレクトURI（オプション）のドロップダウンで`Web`を選択し、ステップ1で確認したリダイレクトURIを入力します。

     <img src="./_assets/azure_1.png" alt="Azure ADアプリ登録" style="zoom:67%;" />

5. 情報を入力後、**登録**をクリックすると、`emqx-cloud-sso`アプリケーションの概要ページに遷移します。

## ステップ3：EMQX PlatformでSSO情報を設定する

EMQX Platformの**SSO設定**ページに戻り、以下の手順で情報を入力します。

1. **SSO設定**ページで以下の情報を入力します。

   - **テナントID**：Azure Portalの`emqx-cloud-sso`アプリケーション概要ページにあるディレクトリ（テナント）IDを入力します。  
   - **クライアントID**：同じくアプリケーション（クライアント）IDを入力します。

     ![Azure ADアプリ概要](./_assets/azure_2.png)

2. Microsoft Azureの左ナビゲーションメニューから**証明書とシークレット**を選択します。  
3. メイン画面で**クライアントシークレット**を選択し、**+ 新しいクライアントシークレット**をクリックします。説明と有効期限を入力してクライアントシークレットを生成し、**値**をコピーします。

     <img src="./_assets/azure_3.png" alt="クライアントシークレット生成" style="zoom:67%;" />

4. コピーした**値**をEMQX Platformの**クライアントシークレット**欄に貼り付けます。  
5. **確認**をクリックして設定を完了します。  
6. 正常に設定されると、SSOが有効化されたことを示す画面に遷移し、SSOログイン用URLが表示されます。

## ステップ4：Azure ADでユーザー作成およびアプリケーションの権限付与を行う

1. Azure Portalの`emqx-cloud-sso`アプリケーション概要ページ右下にある**エンタープライズアプリケーションに移動**をクリックします。  
    <img src="./_assets/azure_4.png" alt="エンタープライズアプリケーション移動" style="zoom:67%;" />

2. 左ナビゲーションメニューから**ユーザーとグループ**をクリックします。  
3. メイン画面で**+ ユーザー/グループの追加**を選択し、権限を付与したいユーザー（例：[Jack@emqx.io](mailto:Jack@emqx.io)）やユーザーグループを選択します。

  <img src="./_assets/azure_5.png" alt="ユーザーとグループの追加"  />

4. ユーザーを選択後、**割り当て**をクリックして権限付与を完了します。

## ステップ5：EMQX Platformでサブアカウントを作成する

1. EMQX PlatformのRootアカウントでCloud Consoleのユーザー管理ページにアクセスします。  
2. 右上の**+ 新規ユーザー**をクリックします。  
3. サブアカウント作成ポップアップで、Azure ADで権限付与したメールアドレス（例：[Jack@emqx.io](mailto:Jack@emqx.io)）を入力し、このアカウントにロールを割り当てます。ロールの設定については[ロールと権限](./user.md#roles-and-permissions)を参照してください。

    <img src="./_assets/sso3.png" alt="サブアカウント作成" style="zoom:67%;" />

4. ユーザー管理ページに表示されるサブアカウント用のログインURLを使用してログインします。**アイデンティティプロバイダー経由でログイン**をクリックすると、ブラウザがMicrosoftのログインページにリダイレクトされます。

    <img src="./_assets/sso4.png" alt="Microsoftログインページ" style="zoom:67%;" />

5. Microsoftログインページでログインを完了すると、自動的にブラウザがEMQX Platformに戻り、SSOログインが完了します。
