9 EDQとOracle Identity Cloud Serviceの統合
この章では、Oracle Identity Cloud Service (IDCS)をOracle Enterprise Data Quality (EDQ)と統合する方法について説明します。
ノート:
この機能が適用されるのは、EDQ 12.2.1.4.2以降のリリースです。この章の内容は次のとおりです。
- IDCSアプリケーションの作成
EDQでは、IDCS REST APIを使用して資格証明を認証し、ユーザーおよびグループのリストを取得します。これらのAPIは、IDCSアプリケーションから取得したトークンを使用して、OAuth2クライアント資格証明フローで認証されます。 - EDQ login.propertiesファイルの構成
login.propertiesを編集し、IDCSのレルムを定義する必要があります。 - OpenID Connectを使用したSSOの有効化
OpenID ConnectとOAuth2を使用して、IDCSでSSO用のEDQを構成できます。ユーザーがEDQ Launchpadにアクセスすると、IDCSログイン・ページにリダイレクトされます。ログインに成功すると、ユーザーはEDQにリダイレクトされます。また、アプリケーションにはIDCSアイデンティティを使用して自動的にログインします。 - Webサービスに対するOAuth2 Bearer認証の有効化
OpenID接続SSOが構成されている場合、EDQはOAuth2 Bearerアクセス・トークンを使用したWebサービス認証をサポートします。コール側は、クライアント資格証明または認可コード・フローを使用してアクセス・トークンを取得し、それを認可ヘッダーでEDQに渡します。
IDCSアプリケーションの作成
EDQでは、IDCS REST APIを使用して資格証明を認証し、ユーザーおよびグループのリストを取得します。これらのAPIは、IDCSアプリケーションから取得したトークンを使用して、OAuth2クライアント資格証明フローで認証されます。
EDQで使用するアプリケーションを作成するには、次のステップを実行します。
EDQ login.propertiesファイルの構成
login.propertiesを編集し、IDCSのレルムを定義する必要があります。
login.propertiesを次のように設定します。
# Realms
realms = internal, idcs
idcs.realm = IDCS
idcs.label = IDCS
idcs.type = idcs
idcs.clientid = 61a155a32c39486c95a18ed1de7cc934
idcs.clientsecret = 53d09389-3645-4963-b0aa-152dd7505e7f
idcs.instance = idcs-xxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Add this if a proxy is required to reach https://idcs-xxxxxxxxxxxxxxxxxxxxxxxxxxxx.identity.oraclecloud.com
#idcs.proxy = host:port
アプリケーションの作成時に生成されたクライアントIDとクライアント・シークレット、およびURLのIDCSインスタンス識別子部分を入力します。
EDQサーバーを再起動します。統合を確認するには、EDQ Launchpadの「外部グループ」ページを確認します。
追加構成
多くのIDCSインスタンスは、ユーザーの電子メール・アドレスをユーザー名として使用するように構成されています。デフォルトでは、EDQの外部ユーザーはusername@REALM
で識別されます。IDCSがユーザー名として電子メール・アドレスを使用して構成されている場合、たとえば、Interstellar Allianceと連携するJohn Sheridanというユーザーなどの場合、これはjohn.sheridan@interstellaralliance.org@IDCS
と表示されます。
ユーザー名から@IDCS
部分を削除する場合は、login.propertiesに次を追加します。
idcs.prof.userdisplayname = userName
一部のブートストラップ・グループ・マッピングを設定するには、xgmapプロパティを使用します。
idcs.xgmap = EDQ admins -> Adminstrators
IDCSグループEDQ管理者のメンバーは、管理者グループのメンバーとしてEDQにログインします。EDQコンソールを使用して、さらにグループ・マッピングを定義できます。
EDQに表示されるユーザーのセットを制限するには、デフォルトのグループ割当てを追加します。たとえば、次のように指定します。
idcs.prof.defaultusergroup = EDQ users
親トピック: EDQ login.propertiesファイルの構成
OpenID Connectを使用したSSOの有効化
OpenID ConnectとOAuth2を使用して、IDCSでSSO用のEDQを構成できます。ユーザーがEDQ Launchpadにアクセスすると、IDCSログイン・ページにリダイレクトされます。ログインに成功すると、ユーザーはEDQにリダイレクトされます。また、アプリケーションにはIDCSアイデンティティを使用して自動的にログインします。
OpenID Connectを使用してSSOを有効にするには、次の項を参照してください。
IDCSでのEDQアプリケーションの構成
ノート:
IDCSでは、リダイレクトURLに対して複数の値がサポートされます。同じアプリケーションを使用して、複数のEDQインスタンスをサポートできます。ただし、この項ではIDCSコンソールを使用したリダイレクトURIの設定について説明します。これは、複数の値の構成をサポートしません。このような場合のURLを設定するには、IDCS REST APIを使用する必要があります。親トピック: OpenID Connectを使用したSSOの有効化
OpenID Connect SSO用のEDQの構成
idcs.extra.oidc = true
idcs.extra.oidc.redirect_uri = https://yourserver/edq/oidc/callback
redirect_url値は、「IDCSでのEDQアプリケーションの構成」のアプリケーションに対して入力したリダイレクトURLと一致する必要があります。
EDQを再起動します。Launchpadを参照すると、IDCSのログイン・ページが表示されます。
EDQ 12.2.1.4.3以降では、ホスト名を複数のリダイレクトURIにマップするようにlogin.propertiesを構成することができます。詳細は、「OpenID認証の複数のURIリダイレクトの有効化」を参照してください。
親トピック: OpenID Connectを使用したSSOの有効化
Webサービスに対するOAuth2 Bearer認証の有効化
OpenID接続SSOが構成されている場合、EDQはOAuth2 Bearerアクセス・トークンを使用したWebサービス認証をサポートします。コール側は、クライアント資格証明または認可コード・フローを使用してアクセス・トークンを取得し、それを認可ヘッダーでEDQに渡します。
たとえば、次のようになります。
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNa ......
認可コード・フローから取得したユーザー資格証明は、通常のログインと同じ方法でユーザー・アイデンティティを使用してマップされます。
アクセス・トークンおよびトークン検証の詳細は、IDCSのドキュメントを参照してください。
次の項で説明するように、クライアント資格証明は、リクエスト・スコープを使用してマップされます。
アプリケーション・スコープの構成
リソースを定義するには、次のステップを実行します。
- IDCSアプリケーションに移動します。
- 「構成」タブをクリックして、リソース領域を開きます。
- 「リソースの登録」を選択します。
- 「プライマリ・オーディエンス」フィールドに値を入力します。値には、コロンで終わる任意の文字列を指定できます。たとえば、urn:edq:など
- 「スコープ」セクションで「追加」をクリックし、必要なEDQアクセスに対応するスコープを追加します。たとえば、admininstrationおよび callersとします。
- 構成されたスコープを使用してアクセス・トークンをリクエストするようにクライアント・アプリケーションを構成します。たとえば、urn:edq:administrationまたはurn:edq:callersです。
EDQの構成
login.propertiesで、オーディエンスを検証してスコープをグループにマップする設定を追加します。
idcs.extra.oauth2.token.aud = urn:edq:
idcs.extra.oauth2.scopemap = administration -> Administrators, callers -> Data Stewards
- token.audは、アクセス・トークンで
aud
要求の検証を有効にします。 - scopemapは、管理スコープをEDQ管理者グループに、コール元スコープをEDQデータ・スチュワード・グループにそれぞれマップします。