Entra IDとOIDCを使用したDAIでのSSOの有効化
このページでは、OpenID Connect (OIDC) プロトコルを使用して、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 の連携方法を参照してください。。
このページでは、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ではなくオンプレミス(「オンプレミス」)である場合は、次のことが必要です |
| Network | - Eggplant Cloudを使用していない場合は、Entra ID が使用するように設定されているポート(通常は443) で、Keycloak が Entra ID に対してHTTPS 呼び出しを実行できることを確認する必要があります。 - エンドユーザーのワークステーションは、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 という名前を使用しています。(以下の注を参照してください)。 アプリケーションで何をしようとしていますか? 「ギャラリーにない他のアプリケーションを統合する (ギャラリー以外)」** を選択します。 ノートEggplant Test の複数のインスタンスを含む複雑なセットアップがある場合は、インスタンスを区別できる必要があります。たとえば、インスタンスの 1 つに Eggplant Test (production) という名前を付けて、他のインスタンスと区別します。
-
Create をクリックします。この新しいアプリケーションの詳細ページが開きます。
2. アプリの登録 を設定します
-
Entra ID ランディングページに戻り、左側のナビゲーションメニューから App Registrations を選択します。
-
All applications を選択し、DAI 用に作成したアプリケーション (Eggplant Test など) を検索します。
-
アプリケーションが見つかったら、それをクリックして詳細を表示します。
-
マニフェストを修正するには、左側のナビゲーション メニューから Manifest を選択し、JSON で次の属性が追加または更新されていることを確認します。
"accessTokenAcceptedVersion": 2"tags": ["WindowsAzureActiveDirectoryIntegratedApp"] -
Click Save.
3. アプリケーションロールの作成
次の手順では、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 ロールに関する情報を次のように入力します。
フィールド名 値 Display name Eggplant Test - DAI Viewer(see note below)許可されるメンバーの種類 User/Groups値 dai_viewer説明 DAI ビューアは DAI で読み取り専用操作を実行できます。このアプリの役割を有効にしますか? Yes(チェック済み)ノートロール名に推奨される形式は、上記のように、アプリケーション名をプレフィックスとしてロール名を完全修飾することです(「Eggplant Test - DAI Viewer」)。
-
Apply をクリックします。
-
DAI User ロールを作成するプロセスを繰り返して、App Roles を選択し、次に Create app role を選択し、次の情報を入力します。
フィールド名 値 表示名 Eggplantテスト-DAIユーザー」。許可されるメンバーの種類 User/Groups値 dai_user説明 DAIユーザーは、DAIで管理機能を除くすべての機能を実行できます。このアプリの役割を有効にしますか? Yes(チェック済み) -
Apply をクリックします。
-
DAI User ロールを作成するプロセスを繰り返して、App Roles を選択し、次に Create app role を選択し、次の情報を入力します。
フィールド名 値 表示名 Eggplant DAIの管理.許可されるメンバーの種類 User/Groups値 dai_admin説明 DAI管理者は、管理機能を含むDAIへの完全なアクセス権を持っています。このアプリの役割を有効にしますか? Yes(チェック済み) -
Applyをクリックします。
4. OIDC を使用して、アプリケーションを Entra ID で公開します
OpenID Connect (OIDC) プロトコルを使用して Entra ID でアプリケーションを公開するには:
-
左側のナビゲーション メニューから [API の公開] を選択し、**[アプリケーション ID] の [編集] を選択します。
-
次のようにフォームに記入します。
フィールド名 値 アプリケーション ID URI 任意の一意の URI (例: api://eggplant-test(以下の注を参照) -
Saveをクリックします。
ノートapi://スキームの使用をお勧めします。https://を使用することもできますが、アプリケーションのリダイレクトURIとアプリケーションIDが同じドメイン上にない場合、問題が発生する可能性があります。 -
引き続き [API の公開]** セクションで、[スコープの追加]** を選択し、次のようにスコープを定義します。
フィールド名 値 スクリプト名 eggplant-test誰が同意できますか? ユーザーがこのアプリケーションへのアクセスに同意することを許可するかどうかに応じて、どちらのオプションも選択できます。 管理者の同意の表示名 Eggplant Test へのアクセスを許可する 管理者の同意の説明 「サインインしたユーザーに Eggplant Test アプリケーションへのアクセスを許可する 管理者の同意の表示名 Eggplant Test へのアクセスを許可する ユーザーの同意に関する記述 Eggplant Test アプリケーションへのアクセスを許可する State Enabled -
Click Add Scope.
要求 の構成
次の手順に従って、要求を構成します。
-
左側のナビゲーション メニューから [トークン構成] を選択し、**[オプションの要求の追加] を選択します。
-
トークンの種類「ID」を選択します。
-
Select
upnand click Add.
5) クライアントシークレット を作成します
-
左側のナビゲーション メニューから [証明書とシークレット] を選択し、**[新しいクライアント シークレット] を選択します。
フィールド名 値 説明 シークレットの説明を入力します。 有効 期限 シークレットには、組織のポリシーに基づいて有効期限を設定します。DAI 統合が引き続き機能するように、このシークレットの有効期限が切れる前に新しいシークレットを生成してください。 -
Add をクリックします。
新しいシークレットの値を必ずメモしておいてください。これが見える唯一の時間です。
6. このアプリケーションの認証の仕組みを設定する
-
左側のナビゲーションから、Authentication を選択します。
-
Redirect URI は既に事前入力されていますが、次の設定を行う必要があります。
フィールド名 値 フロントチャネルログアウト URL これを https://<dai_domain>/logout
に設定します。ここで、<dai_domain>は DAI がインストールされているドメインの名前です。Implicit grant and hybrid flows - アクセス トークン unchecked暗黙的な許可フローとハイブリッド フロー - ID トークン uncheckedサポートされているアカウントの種類 環境に最も適したものを選択します。 公開クライアントフローを許可する Noアプリ インスタンスのプロパティのロック 組織のポリシー要件に従って構成する -
Save をクリックします。
7. 権限の設定
-
左側のナビゲーションメニューから「シングルサインオン」を選択します。
-
**[権限を追加] をクリックします。
-
アクセス許可を要求する API として Microsoft Graph を選択します。
-
Delegated permissions を選択します。
-
Openid Permissions で、
email、offline_access、openid、profileを選択します。 -
委任されたアクセス許可 を選択します。
これらのアクセス許可には同意が必要です。管理者としてログインしており、デフォルトディレクトリ内のすべてのユーザーに代わって同意する場合は、Grant admin consent for Default Directory を選択できます。そうでない場合は、ユーザーはアプリケーションのEggplant Test(DAI) にこれらの権限が付与されることに初めて同意する必要があります。
Entra Id でのアプリケーション統合の設定
Entra で DAI インスタンス (またはインスタンス) をアプリケーションとして設定したので、Keycloak (DAI の組み込み ID およびアクセス管理プロバイダー) でアプリケーション統合を設定する必要があります。
1. 入力データ
Keycloak を設定するには、次のものが必要です。
-
Keycloak URL - これは
https://<host>:<port>/auth/の形式である必要があります (末尾のスラッシュに注意してください)、host と port は DAI のインストール時に定義された DAI サーバーのホスト名とポートです。 -
DAI のインストール時に定義されたシステム管理者のユーザー名とパスワード (Keycloak 管理者のユーザー名とパスワードとも呼ばれます)。
-
Entra IDの設定時に生成した以下の設定も必要です。
-
クライアント ID (例: Eggplant Test)
-
クライアントシークレット
-
OIDC メタデータ JSON ペイロード (下記参照)
-
ここでは、用語が混乱する可能性があります。クライアントシークレットを生成するとき、そのシークレットの ID をクライアント ID として取得したくなるかもしれません。ただし、必要なのはシークレット値のみで、クライアント ID ("アプリケーション ID" とも呼ばれます) はアプリケーションの ID であり、シークレット ID ではありません。
2. Entra ID からOIDC Metadata Documentをエクスポートします
メタデータは、Microsoft ID プラットフォーム上の OpenID Connect (OIDC) - Microsoft ID プラットフォーム で定義されているリンクからダウンロードできます。これをファイルに保存する必要があります。
3. 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
set IDP_CLIENT_ID=<idp_client_id>
set IDP_CLIENT_SECRET=<idp_client_secret>
上記のスクリプトの <...> で囲まれた値を、次のように Id プロバイダーの値に置き換えます。
| 変数 | 説明 |
|---|---|
<keycloak_admin_user> | DAI のインストール時に設定したシステム管理者のユーザー名。これは、Keycloak ユーザー名とも呼ばれます。 |
<keycloak_admin_pwd> | DAI のインストール時に設定したシステム管理者のパスワード。 |
<dai_address> | ホスト名:DAIサーバーのポート(例:「example.com:8080」)。 |
<idp_client_id> | Entra ID で DAI アプリケーションを設定したときに作成したシークレット。 |
<idp_client_secret> | Entra ID で DAI アプリケーションを設定したときに作成したシークレット。 |
この方法でコマンドラインでパスワードとシークレットを設定するのは安全ではありません。機密性の高い環境変数は、代わりに組織の優先シークレットマネージャーを使用して初期化することをお勧めします。
手順 2 - スクリプト の実行
次の手順では、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>
上記のスクリプトの <...> で囲まれた値を、次のように Id プロバイダーの値に置き換えます。
| 用語 | 値 |
|---|---|
<realm> | 通常は eggplant |
<idp_alias> | このプロバイダのエイリアス名。これは、プロセスの前半で Entra ID を設定するために使用されたエイリアスです。 |
<idp_display_name> | この Entra ID 統合のフレンドリ名で、Keycloak 管理コンソールに表示されます。 |
<idp_metadata_file> | Entra ID からファイルにエクスポートされた OIDC JSON メタデータ ファイル。メタデータ ファイルへの絶対ファイル パスを使用することをお勧めします。 |
このプロシージャは、メッセージを JSON 形式でログに記録します。
- 手順が失敗すると、通常は 1 つ以上のスタック トレースを含む ERROR が表示されます。
- 成功した場合、最後のログエントリは、手順が正常に完了したことを示します。
エラーが発生した場合は、メッセージと結果のスタックトレースを確認してください。ご不明な点がございましたら、当社のお客様 Support までお問い合わせください。
この時点で、DAI SSO の統合は完了しているはずです。