Skip to content

SAMLベースのSSOの設定

このページでは、Security Assertion Markup Language(SAML)2.0標準プロトコルに基づくシングルサインオン(SSO)の設定と使用方法について説明します。

前提条件

シングルサインオン(SSO)の基本概念に慣れていることを推奨します。

対応しているSAMLサービス

EMQXダッシュボードは、SAML 2.0プロトコルをサポートするアイデンティティサービスと連携して、SAMLベースのSSOを有効にできます。例えば以下のサービスがあります:

その他のアイデンティティプロバイダーも統合準備中で、今後のバージョンでサポート予定です。

Microsoft Entra IDとの連携によるSSOの設定

このセクションでは、Microsoft Entra IDをアイデンティティプロバイダー(IdP)として使用し、SSOを設定する方法を案内します。Microsoft側とEMQXダッシュボード側の両方で設定を完了する必要があります。

ステップ1:EMQXダッシュボードでSAML SSOを有効化

  1. ダッシュボードの System -> SSO に移動します。

  2. SAML 2.0カードの Enable ボタンをクリックします。

  3. 設定ページで以下の情報を入力します:

    • Dashboard Address:ユーザーがダッシュボードの実際のアクセスアドレスにアクセスできるようにします。特定のパスは指定しません。例:http://localhost:18083。このアドレスは自動的に連結され、IdP側設定用の SSO AddressMetadata Address が生成されます。
    • SAML Metadata URL:一時的に空欄のままにし、ステップ2の設定を待ちます。
    • Signed Assertions from IdP:IdPによるSAMLアサーションの署名を要求します。
    • Signed Response Envelopes from IdP:IdPによるSAMLレスポンスエンベロープの署名を要求します。

    EMQX 6.3.0以降、両オプションはデフォルトで有効です。オプションは独立して設定可能で、IdPの署名動作に合わせて有効化してください。両方を無効にするとSAML署名検証が全て無効になり、セキュリティ上危険なためテスト目的以外での使用は推奨しません。

ステップ2:Microsoft Entra IDにアプリケーションを登録

  1. 管理者としてMS Azureポータルにログインします。

  2. Microsoft Entra ID -> Enterprise Applications -> New Application に進み、Create your own application をクリックします。

    entra_id_create_own_app
  3. アプリケーション名を入力します(例:EMQX Dashboard)。Integrate any other application you don't find in the gallery (Non-gallery) を選択し、Create をクリックします。

    entra_id_saml_app_parameters
  4. Assign users and groups をクリックし、EMQXダッシュボードアプリケーションにアクセス可能なユーザーとグループを割り当てます。

  5. Single sign-on タブに移動し、SAML を選択、Basic SAML Configuration セクションの Edit ボタンをクリックします。

  6. ステップ1のダッシュボードで提供された以下の情報を設定します:

    • Identifier (Entity ID):ダッシュボードで提供された Metadata Address を入力します。例:http://localhost:18083/api/v5/sso/saml/metadata
    • Reply URL (Assertion Consumer Service URL):ダッシュボードで提供された SSO Address を入力します。例:http://localhost:18083/api/v5/sso/saml/acs

    その他の情報は任意で、実際の要件に応じて設定可能です。

  7. Save をクリックして設定を保存します。

ステップ3:EMQXダッシュボード設定の完了

  1. Microsoft Entra IDの作成したアプリケーションの Single sign-on タブに移動し、Token Signing Certificate セクションの App Federation Metadata Url をコピーします。

    entra_id_saml_metadata_url
  2. ダッシュボードのステップ1の SAML Metadata URL にコピーしたURLを貼り付けます。

  3. いずれかの署名検証オプションが有効な場合、ブラウザでメタデータURLを開きます。返されたXML内で IDPSSODescriptoruse="signing"KeyDescriptor と空でない X509Certificate が含まれていることを確認してください。含まれていない場合は、IdP側で署名証明書を設定してから続行してください。設定しないとSAMLバックエンドが起動できません。

  4. Update をクリックして設定を完了します。

Oktaとの連携によるSSOの設定

このセクションでは、Oktaをアイデンティティプロバイダー(IdP)として使用し、SSOを設定する方法を案内します。Okta側とEMQXダッシュボード側の両方で設定を完了する必要があります。

ステップ1:EMQXダッシュボードでOktaを有効化

  1. ダッシュボードの System -> SSO に移動します。

  2. SAML 2.0カードの Enable ボタンをクリックします。

  3. 設定ページで以下の情報を入力します:

    • Force MFA:オプションで有効にすると、このバックエンドのすべてのユーザーにログイン時のTOTP認証を要求します。デフォルトは無効です。詳細はSSOユーザーの強制MFAを参照してください。
    • Dashboard Address:ユーザーがダッシュボードの実際のアクセスアドレスにアクセスできるようにします。特定のパスは指定しません。例:http://localhost:18083。このアドレスは自動的に連結され、IdP側設定用の SSO AddressMetadata Address が生成されます。
    • SAML Metadata URL:一時的に空欄のままにし、ステップ2の設定を待ちます。
    • Signed Assertions from IdP:IdPによるSAMLアサーションの署名を要求します。
    • Signed Response Envelopes from IdP:IdPによるSAMLレスポンスエンベロープの署名を要求します。

    EMQX 6.3.0以降、両オプションはデフォルトで有効です。オプションは独立して設定可能で、IdPの署名動作に合わせて有効化してください。両方を無効にするとSAML署名検証が全て無効になり、セキュリティ上危険なためテスト目的以外での使用は推奨しません。

ステップ2:OktaのアプリケーションカタログにSAML 2.0アプリケーションを追加

  1. 管理者としてOktaにログインし、Okta Admin Console にアクセスします。

  2. Applications -> Applications ページに移動し、Create App integration ボタンをクリックします。ポップアップでサインイン方法として SAML 2.0 を選択し、Next をクリックします。

  3. General Settings タブでアプリケーション名を入力します(例:EMQX Dashboard)。Next をクリックします。

  4. Configure SAML タブでステップ1のダッシュボードで提供された情報を設定します:

    • Single sign-on URL:ダッシュボードで提供された SSO Address を入力します。例:http://localhost:18083/api/v5/sso/saml/acs
    • Audience URI (SP Entity ID):ダッシュボードで提供された Metadata Address を入力します。例:http://localhost:18083/api/v5/sso/saml/metadata

    その他の情報は任意で、実際の要件に応じて設定可能です。

  5. 設定内容を確認し、Next をクリックします。

  6. Feedback タブで I'm an Okta customer adding an internal app を選択し、必要に応じて他の情報を入力して、Finish をクリックしアプリケーション作成を完了します。

okta_config

ステップ3:Oktaで設定を完了しユーザーとグループを割り当て

  1. Oktaの Sign On タブに移動し、Metadata URL をコピーします。
  2. ダッシュボードのステップ1の SAML Metadata URL にコピーしたURLを貼り付けます。
  3. いずれかの署名検証オプションが有効な場合、ブラウザでメタデータURLを開きます。返されたXML内で IDPSSODescriptoruse="signing"KeyDescriptor と空でない X509Certificate が含まれていることを確認してください。含まれていない場合は、IdP側で署名証明書を設定してから続行してください。設定しないとSAMLバックエンドが起動できません。
  4. Update をクリックして設定を完了します。
  5. Okta > Assignments タブで、EMQXダッシュボードアプリケーションにユーザーとグループを割り当てられます。ここで割り当てられたユーザーのみがこのアプリケーションにログイン可能です。

ログインとユーザー管理

SAMLシングルサインオンを有効にすると、EMQXダッシュボードのログインページにSSOオプションが表示されます。SAML ボタンをクリックすると、IdPの事前設定されたログインページに遷移し、割り当てられたユーザー資格情報でログインできます。

sso_samlokta_login

SAML認証が成功すると、EMQXは自動的にダッシュボードユーザーを追加します。追加されたユーザーはユーザー管理で管理でき、役割や権限の割り当ても可能です。SAMLユーザーにログイン時のTOTP二要素認証を必須にする場合は、SSOユーザーの強制MFAを参照してください。

ログアウト

ユーザーはダッシュボードの上部ナビゲーションバーにあるユーザー名をクリックし、ドロップダウンメニューの Logout ボタンをクリックしてログアウトできます。これはダッシュボードからのログアウトのみであり、SAMLは現時点でシングルサインアウトをサポートしていないことにご注意ください。