Entra IDとSAML v2を使用したDAIでのSSOの有効化
このページでは、Security Assertion Markup Language (SAML) v2 プロトコルを使用して、DAI と Microsoft Entra ID (旧称 "Azure AD") の間でシングル サインオン (SSO) を構成するために必要な手順について説明します。Entra IDとDAIの組み込みIDおよびアクセス管理プロバイダ(Keycloak) を相互に統合するように設定する方法について説明します。このプロセスに関連する手順の概要は、このページの右側にあるページメニューで確認できます。
Intenden Audience: このトピックは、SSO 統合を検討している DAI 管理者を対象としています。
SSO と DAI を統合する利点の詳細については、「シングル サインオン (SSO) と DAI の連携方法」を参照してください。(./dai-sso-features.md)。 SSO と DAI を統合する利点の詳細については、「シングル サインオン (SSO) と DAI の連携方法」を参照してください。(./dai-sso-features.md)。
このページでは、Keycloak の設定方法と Entra ID の設定方法の例を示します。すべての組織のID管理構成は異なり、構成の誤りは重大な結果をもたらす可能性があるため、最終的な設計と展開計画は独自の仕様に合わせる必要があります。Entra IDの設定がここに記載されている例と互換性がない場合は、お客様 Supportに連絡して、どのように支援できるかを確認してください。
前提条件
DAI を Entra ID と統合するには、環境が Entra ID、DAI、およびネットワーキングの次の前提条件を満たしている必要があります。
| コンポーネント | 要件 |
|---|---|
| Entra ID | Components: -組織には、Microsoft Entra ID の設定に使用できる Microsoft Azure アカウントが必要です。 |
| Users and Groups in Entra ID | - DAIにアクセスする必要があるユーザーは、Entra ID. にすでに存在している必要があります。- オプションで、Entra IDにグループを作成して、DAI管理者、ユーザー、およびビューアの役割を表すことができます。または、3. Create Application Roles を参照してください。 |
| DAI | - Keycloakにローカルユーザーを含む既存のDAIインストールがある場合でも、SSOを有効にすることができます。Keycloak は、ユーザーの初回 SSO ログイン時に、これらのローカルアカウントに参加して SSO 統合ユーザーアカウントに変換できます。この方法でアカウントをリンクすると、ユーザーはどのモデルにもアクセスできなくなるため、有益です。ローカルのユーザー名が Entra ID のユーザー名と一致しない場合は、Keycloak を設定して一時的に許可するように変更できます。手順については、SSOのユーザー名の編集を参照してください。Eggplant Cloudをお使いの場合は、弊社お客様 Supportまでお問い合わせください。 - Entra IDには、SSO統合の確認に使用できるユーザーアカウント(DAI管理者アカウントを推奨)が少なくとも1つ必要です。このユーザーでDAIに正常にログインすると、SSO統合が成功したことが確認されます DAIのインストールがEggplant Cloudではなくオンプレミス(「オンプレミス」)である場合は、次のことを行う必要があります。既存のシステムを構成する場合は、DAI を新しいバージョンにアップグレードする場合と同じ方法で DAI システムをバックアップしてください。DAIのバックアップについては、WindowsでのEggplant DAIのインストールまたはアップグレードを参照してください。これにより、統合中に予期しない事態が発生した場合に、ユーザーがデータにアクセスできなくなることがなくなります. - DAI 7.1以上がインストールされている必要があります。SSOの有効化は、DAIのインストール後に実行できる別のプロセスです。 - DAI は、Transport Layer Security (TLS) を使用するように設定する必要があります。TLS を使用するための DAI の設定については、高度なインストールの実行 を参照してください。Active Directory は、プレーンな HTTP を使用する DAI インストールと統合されません。 |
| Network | - エンドユーザーのワークステーションは、Entra IDログイン画面とSAMLエンドポイントにアクセスできる必要があります - Entra ID は、ユーザーが 1 つのシステムからログアウトすると、他のシステムからもログアウトされるように、Keycloak に対して HTTPS 呼び出しを行うことができる必要があります。 |
Entra ID でのアプリケーション統合の設定
次の手順は、Entra ID で DAI のアプリケーション統合を設定するプロセスをまとめたものです。
1. Entra ID でアプリケーションを作成します
次の手順では、Entra ID でアプリケーションを作成する方法について説明します。Entra ID でのアプリケーションの作成の詳細については、クイック スタート: Microsoft ID プラットフォームにアプリを登録する - Microsoft ID プラットフォーム を参照してください。
-
Entra IDで、Enterprise Applicationsを選択し、トップメニューからCreate your own applicationをクリックします。
-
アプリケーション (DAI インスタンス) に関する情報を次のように入力します。
フィールド名 値 アプリの名前は何ですか? この Enterprise Application に割り当てる任意の名前。これらの例では、アプリケーションに Eggplant Testという名前を使用しています。(以下の注を参照してください)。アプリケーションで何をしようとしていますか? Integrate any other application you don't find in the gallery (non-gallery) を選択します。 注記Eggplant Testの複数のインスタンスを含む複雑なセットアップがある場合は、インスタンスを区別できる必要があります。たとえば、インスタンスの 1 つに Eggplant Test (production) という名前を付けて、他のインスタンスと区別します。
-
Create をクリックします。この新しいアプリケーションの詳細ページが開きます。
2) OIDC を使用して、アプリケーションを Entra ID で公開します
次に、次のように Entra ID でアプリケーションを構成し、SAML v2 プロトコルを使用して公開します。
-
左側のナビゲーションメニューから
シングルサインオを選択します。 -
Change single sign-on mode > SAML を選択します。
-
引き続き Single sign-on **Basic SAML Configuration > Edit ** を選択し、次の情報を入力します。
フィールド名 値 識別子 (エンティティ ID) https://<dai_domain>/auth/realms/egglant/<idp_alias>
where:<dai_domain>は、DAI(およびKeycloak) がインストールされているドメインの名前です。<idp_alias>は、DAI の Entra ID ID プロバイダー設定に割り当てられたエイリアス名です。これはまだ作成されていません。したがって、ここで何を選択するかを覚えておき、このプロセスの後半でDAIを設定するときにそれを使用する必要があります。この例では、adという名前のエイリアスを示しています。応答URL(アサーションコンシューマサービスURL) https://<dai_domain>/auth/realms/eggplant/broker/<idp_alias>/endpoint
where:<dai_domain>と<idp_alias>は、上記の entity ID で定義されているものと同じです。
- 1つしかないため、Defaultチェックボックスについて心配する必要はありません。サインオンURL 不要 リレーのstate 不要 ログアウトURL 不要
SAML 証明書 を構成する
デフォルトでは、Entra IDはエンタープライズアプリケーションの作成時にSign SAML AssertionにSHA-256証明書を作成するため、変更を加える必要はありません。
要求 の構成
次の手順に従って、要求を構成します。
-
Single sign-onセクションから、 Attributes & Claims を選択し、Editを選択します。
-
Add new claim を選択し、次の情報を入力します。
新しい請求フィールドを追加 値 名前 名前識別子Namespace http://schemas.xmlsoap.org/ws/2005/05/identity/claims名前識別子の形式 未指定ソース 属性ソース属性 user.userprincipalname(Source Attribute ドロップダウンを使用して、ソース属性を選択します。これらを入力すると、AD は引用符で囲まれた文字列リテラルとして扱います。連鎖条件 修正する必要はない高度な SAML 要求オプション > JWT トークンで要求を公開する unchecked -
Saveをクリックします。
-
上記の手順を繰り返して、次の表に示すように、同じソースと名前空間で、Name と Source Attributes が異なる要求をさらに作成します。
| フィールド名 | ソース属性 |
|---|---|
メールアドレス | user.mail |
givenname | user.givenname |
name | user.userprincipalname |
surname | user.surname |
3. アプリの登録 を設定します
-
Entra IDランディングページに戻り、左側のナビゲーションメニューからApp Registrationsを選択します。
-
All applications を選択し、DAI 用に作成したアプリケーション (Eggplant Test など) を検索します。
-
アプリケーションが見つかったら、それをクリックして詳細を表示します。
-
マニフェストを修正するには、左側のナビゲーション メニューから [マニフェスト]** を選択し、JSON で次の属性が追加または更新されていることを確認します。
"accessTokenAcceptedVersion": 2"tags": ["WindowsAzureActiveDirectoryIntegratedApp","WindowsAzureActiveDirectoryCustomSinglesSignOnApplication"] -
Saveをクリックします。
4) アプリケーションロールの作成
次の手順では、Entra ID で DAI Viewer、User、および Administrator アプリケーション ロールを作成する方法について説明します。Entra ID でのアプリケーション ロールの作成の詳細については、アプリ ロールを追加し、トークンから取得する - Microsoft ID プラットフォーム を参照してください。
-
Select App Roles from the left navigation and then select Create app role.
-
DAI Viewer ロールに関する情報を次のように入力します。
フィールド名 値 表示名 Eggplant Test - DAI Viewer(下記の注を参照)許可されるメンバーの種類 User/Groups値 dai_viewer説明 DAI ビューアはDAI で読み取り専用操作を実行できます。このアプリの役割を有効にしますか? はい(チェック済み)注記ロール名に推奨される形式は、上記のように、アプリケーション名をプレフィックスとしてロール名を完全修飾することです(「Eggplant Test - DAI Viewer」)。
-
Apply をクリックします。
-
DAI User ロールを作成するプロセスを繰り返して、App Roles を選択し、次に Create app role を選択し、次の情報を入力します。
フィールド名 値 表示名 Eggplantテスト-DAIユーザー」。許可されるメンバーの種類 User/Groups値 dai_user説明 DAIユーザーは、DAIで管理機能を除くすべての機能を実行できます。このアプリの役割を有効にしますか? はい(チェック済み) -
Apply をクリックします。
-
DAI User ロールを作成するプロセスを繰り返して、App Roles を選択し、次に Create app role を選択し、次の情報を入力します。
フィールド名 値 表示名 Eggplant DAIの管理.許可されるメンバーの種類 User/Groups値 dai_admin説明 DAI管理者は、管理機能を含むDAIへの完全なアクセス権を持っています。このアプリの役割を有効にしますか? はい(チェック済み) -
Apply をクリックします。
5) このアプリケーションの認証の仕組みを設定する
DAI アプリケーションの認証の仕組みを設定します。
-
左側のナビゲーションから、Authentication を選択します。
-
Redirect URI は既に事前入力されていますが、次の設定を行う必要があります。
フィールド名 値 フロントチャネルログアウトURL これを https://<dai_domain>/logout
に設定します。ここで、<dai_domainは DAI がインストールされているドメインの名前です。Implicit grant and hybrid flows - アクセス トークン unchecked暗黙的な許可フローとハイブリッド フロー - ID トークン uncheckedサポートされているアカウントの種類 環境に最も適したものを選択します。 公開クライアントフローを許可する Noアプリ インスタンスのプロパティのロック 組織のポリシー要件に従って構成する -
Save. をクリックします。
Keycloak でのアプリケーション統合の設定
Entra で DAI インスタンス (またはインスタンス) をアプリケーションとして設定したので、Keycloak (DAI の組み込み ID およびアクセス管理プロバイダー) でアプリケーション統合を設定する必要があります。
1. 入力データ
Keycloak を設定するには、次のものが必要です。
-
Keycloak URL - これは
https://<host>:<port>/auth/の形式である必要があります (末尾のスラッシュに注意してください)、host と port は DAI のインストール時に定義された DAI サーバーのホスト名とポートです。 -
DAI のインストール時に定義されたシステム管理者のユーザー名とパスワード (Keycloak 管理者のユーザー名とパスワードとも呼ばれます)。
-
Entra IDの設定時に生成した以下の設定も必要です。
-
OIDC メタデータ JSON ペイロード (下記参照)
-
アプリケーションのエンティティ ID
-
Entra ID からOIDC Metadata Documentをエクスポートします
-
Entra ID内で、Enterprise Applicationsの下のアプリケーションに移動し、左側のナビゲーションからシングルサインオンを選択します。SAML Certificates で、App Federation Metadata URL の設定を見つけます。
-
その値をコピーし、この URL を使用して XML メタデータ ファイルをダウンロードして保存します。通常、URL の形式は次のとおりです。
https://login.microsoftonline.com/{tenant_id}/federationmetadata/2007-06/federationmetadata.xml?appid={application_id} -
このファイルをダウンロードして保存します。
警告このファイルをダウンロードして保存します。
2) Keycloakの設定
Eggplant Cloudをご利用の場合は、以下の手順を代行していただく必要があるため、当社のお客様 Supportまでご連絡ください。
KeycloakでSSOを有効にするには、「identity_provider」という名前の移行手順を実行し、KeycloakレルムでSSO統合を有効(または無効) にします。
この手順では、次の処理を行います。
-
指定したマニフェストファイルに基づいて、Keycloak で Identity Provider を作成および構成します。
-
その Identity Provider をログインフローのデフォルトとして設定し、ユーザは常にそのプロバイダに転送されます。
-
「eggplant」ではなく「eggplant_readonly」を使用するように Realm の Themes を設定します。これにより、Id プロバイダが提供するようになったパスワード管理などの機能が削除されます。
ステップ 1 - 環境変数 を設定する
set KC_ADMIN_USER=<keycloak_admin_user>
set KC_ADMIN_PASSWORD=<keycloak_admin_pwd>
set KEYCLOAK_URL=https://<dai_address>/auth/
set USE_LEGACY_INSTALLER=true
上記のスクリプトの <...> で囲まれた値を、次のように Id プロバイダーの値に置き換えます。
| 変数 | 説明 |
|---|---|
<keycloak_admin_user> | DAI のインストール時に設定したシステム管理者のユーザー名。これは、Keycloak ユーザー名とも呼ばれます。 |
<keycloak_admin_pwd> | DAI のインストール時に設定したシステム管理者のパスワード。 |
<dai_address> | ホスト名:DAIサーバーのポート(例:example.com:8080)。 |
この方法でコマンドラインでパスワードとシークレットを設定するのは安全ではありません。機密性の高い環境変数は、代わりに組織の優先シークレットマネージャーを使用して初期化することをお勧めします。
手順 2 - スクリプト {#step-2---running-the-script} の実行
次の手順では、DAI をデフォルトの場所 ('C: Program FilesDigital Automation Intelligence') にインストールしたことを前提としています。DAI を別の場所にインストールした場合は、以下のスクリプトの既定のパスを DAI のインストール場所に置き換えてください。
以下のスクリプトは、Windows コマンド シェル (cmd.exe) 用に記述されています。Powershell から実行するには、キャレット (^) 文字をバックティック (`) 文字に置き換える必要があります。
"C:\Program Files\Digital Automation Intelligence\python\tools\python.exe" ^
-m eggplant.iam.realm_mgmt ^
--init-file "C:\ProgramData\Eggplant\Digital Automation Intelligence\logs\keycloak\.keycloak_migration_config" ^
run ^
--procedure identity_provider ^
--realm <realm> ^
--vars IDP_ALIAS=<idp_alias> ^
--vars IDP_DISPLAY_NAME=<idp_display_name> ^
--vars IDP_METADATA_FILE=<idp_metadata_file> ^
--vars IDP_ROLE_SOURCE_CLAIM=http://schemas.microsoft.com/ws/2008/06/identity/claims/role ^
--vars IDP_PROTOCOL=saml ^
--vars IDP_PROVIDER_TYPE=saml ^
--vars IDP_ENTITY_ID=<entity_id>
上記のスクリプトの <...> で囲まれた値を、次のように Id プロバイダーの値に置き換えます。
| 用語 | 値 |
|---|---|
<realm> | 通常はeggplant |
<idp_alias> | このプロバイダのエイリアス名。これは、プロセスの前半で Entra ID を設定するために使用されたエイリアスです。 |
<idp_display_name> | この Entra ID 統合のフレンドリ名で、Keycloak 管理コンソールに表示されます。 |
<idp_metadata_file> | Entra ID からファイルにエクスポートされた OIDC JSON メタデータ ファイル。メタデータ ファイルへの絶対ファイル パスを使用することをお勧めします。 |
<entity_id> | Entra ID のエンティティ ID (証明書利用者信頼 IDとも呼ばれます)。 |
このプロシージャは、メッセージを JSON 形式でログに記録します。
- 手順が失敗すると、通常は 1 つ以上のスタック トレースを含む ERROR が表示されます。
- 成功した場合、最後のログエントリは、手順が正常に完了したことを示します。
エラーが発生した場合は、メッセージと結果のスタックトレースを確認してください。ご不明な点がございましたら、当社のお客様 Supportまでお問い合わせください。
この時点で、DAI SSO 統合は完了しているはずです。統合が適切に機能しているかどうかを確認するために使用できるシナリオについては、DAI での SSO の検証 を参照してください。
DAI インストールで SSO を無効にする場合は、DAI から SSO 認証を削除する を参照してください。