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で使用するアプリケーションを作成するには、次のステップを実行します。

  1. 管理者としてIDCSコンソールにログインします。
    メインOCIコンソールからログインする場合、「アイデンティティ」「フェデレーション」OracleIdentityCloudServiceにナビゲートすると、IDCSコンソールへのリンクを確認できます。コンソール・リンクは次のようになります。

    https://idcs-xxxxxxxxxxxxxxxxxxxxxx.identity.oraclecloud.com/ui/v1/adminconsole

    URLのうち.identity.oraclecloud.comより前の部分はIDCSインスタンス識別子であり、EDQの構成時に必要です。この例では、idcs-xxxxxxxxxxxxxxxxxxxxxxです
  2. アプリケーションおよびサービス・ページで、「+追加」をクリックして、新規アプリケーションを作成します。
  3. 機密アプリケーションを選択します。
  4. 名前を入力し、オプションで摘要を入力します。最初のページでは、その他の情報は必要ありません。
  5. 「次へ」をクリックします
  6. 「このアプリケーションをクライアントとして今すぐ構成します」を選択します
  7. 「認可」セクションで、「許可される権限付与タイプ」から「クライアント資格証明」を選択します。
  8. 「Identity Cloud Service管理APIへのクライアント・アクセス権を付与します」で、「追加」をクリックします。
  9. 「アプリケーション管理者」および「認証クライアント」を選択します。
  10. 残りのステップではすべて「次」をクリックし、最後に「終了」をクリックします。
  11. 表示されるクライアントIDおよびクライアント・シークレット値をコピーして保存します。これらの値は、「一般情報」セクションの「アプリケーション構成」から取得することもできます。
  12. 「アクティブ化」をクリックして、アプリケーションを有効にします。

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

OpenID Connectを使用したSSOの有効化

OpenID ConnectとOAuth2を使用して、IDCSでSSO用のEDQを構成できます。ユーザーがEDQ Launchpadにアクセスすると、IDCSログイン・ページにリダイレクトされます。ログインに成功すると、ユーザーはEDQにリダイレクトされます。また、アプリケーションにはIDCSアイデンティティを使用して自動的にログインします。

OpenID Connectを使用してSSOを有効にするには、次の項を参照してください。

IDCSでのEDQアプリケーションの構成

OpenID Connectを使用してSSOを有効にするには、EDQサーバーへのリダイレクトURIを構成する必要があります。

ノート:

IDCSでは、リダイレクトURLに対して複数の値がサポートされます。同じアプリケーションを使用して、複数のEDQインスタンスをサポートできます。ただし、この項ではIDCSコンソールを使用したリダイレクトURIの設定について説明します。これは、複数の値の構成をサポートしません。このような場合のURLを設定するには、IDCS REST APIを使用する必要があります。
  1. IDCSコンソールにログインし、「IDCSアプリケーションの作成」で作成したアプリケーションに移動します。
  2. 「構成」タブで、「クライアント構成」セクションを開き、許可された付与タイプとして「承認コード」を選択します。
  3. サーバーでHTTPSが有効になっていない場合は、「HTTPS以外のURLを許可」チェック・ボックスを選択します。
  4. 「リダイレクトURL」https://yourserver/edq/oidc/callbackに設定します。yourserverはEDQサーバーの完全なホスト名です。必要に応じて、ポートを含めます。
  5. 「ログアウト後のリダイレクトURL」https://yourserver/edq/oidc/loggedoutに設定します。
  6. アプリケーションに対する変更を保存します。
  7. 「ユーザー」または「グループ」タブを選択して、ユーザーをアプリケーションに追加します。
    login.propertiesdefaultusergroupが定義されている場合、最も簡単な方法は、すべてのEDQユーザーがアプリケーションを使用できるようにグループを追加することです。

OpenID Connect SSO用のEDQの構成

次の設定を login.propertiesに追加します。
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リダイレクトの有効化」を参照してください。

Webサービスに対するOAuth2 Bearer認証の有効化

OpenID接続SSOが構成されている場合、EDQはOAuth2 Bearerアクセス・トークンを使用したWebサービス認証をサポートします。コール側は、クライアント資格証明または認可コード・フローを使用してアクセス・トークンを取得し、それを認可ヘッダーでEDQに渡します。

たとえば、次のようになります。

Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNa ......

認可コード・フローから取得したユーザー資格証明は、通常のログインと同じ方法でユーザー・アイデンティティを使用してマップされます。

アクセス・トークンおよびトークン検証の詳細は、IDCSのドキュメントを参照してください。

次の項で説明するように、クライアント資格証明は、リクエスト・スコープを使用してマップされます。

アプリケーション・スコープの構成

EDQでのBearer認証をサポートするようにIDCSアプリケーションを構成するには、保護されたリソースおよび関連するスコープを定義します。スコープをEDQグループにマップすると、異なるクライアント・アプリケーションで異なる権限をリクエストできます。

リソースを定義するには、次のステップを実行します。

  1. IDCSアプリケーションに移動します。
  2. 「構成」タブをクリックして、リソース領域を開きます。
  3. 「リソースの登録」を選択します。
  4. 「プライマリ・オーディエンス」フィールドに値を入力します。値には、コロンで終わる任意の文字列を指定できます。たとえば、urn:edq:など
  5. 「スコープ」セクションで「追加」をクリックし、必要なEDQアクセスに対応するスコープを追加します。たとえば、admininstrationおよび callersとします。
  6. 構成されたスコープを使用してアクセス・トークンをリクエストするようにクライアント・アプリケーションを構成します。たとえば、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データ・スチュワード・グループにそれぞれマップします。