33 フェデレーションのスキームおよびポリシーの管理

Oracle Access Management Access Managerがフェデレーション・プロバイダと連動できるようにする場合は、1つ以上の認証スキームを定義します。定義したスキームによって、Access Managerで保護されたリソースへのアクセスをリクエストするユーザーが認証されます。

次の各トピックでは、Oracle Access Management Identity Federation用に構成できる認証スキームとポリシーについて説明します。

33.1 Identity FederationとAccess Managerの併用

Access Managerでのフェデレーション機能の使用はリリースによって異なります。

Identity Federationと統合する場合は次のとおりです。

33.2 Identity Federationの認証スキームおよび認証モジュールの使用

次の各トピックでは、Identity Federationの認証スキームおよびモジュールを使用する方法について説明します。

33.2.1 FederationScheme認証スキームについて

FederationSchemeは、Identity Federation 11gリリース2 (11.1.2.2)で使用される汎用スキームです。

図33-1に、FederationSchemeのアクセス・コンソール・ページを示します。

表33-1では、FederationSchemeについて説明します。

表33-1 FederationSchemeの要素の定義

要素 説明

名前

スキーム名です。

説明

スキームの簡単な説明です。

認証レベル

認証スキームの信頼レベルです。

デフォルト

「デフォルトとして設定」ボタンがクリックされた場合に選択される編集不可のボックスです。

チャレンジ・メソッド

チャレンジ・メソッドは、ドロップダウン・ボックスで使用可能なチャレンジ・メソッドから選択できます。

チャレンジ・リダイレクトURL

ユーザー・リクエストを処理するためのリダイレクト先となる別のサーバーのURLです。

認証モジュール

スキームで使用する認証モジュールです。

チャレンジURL

資格証明コレクションのために資格証明コレクタがリダイレクトするURLです。フェデレーション・プラグインでは使用されません。

コンテキスト・タイプ

この要素を使用して、資格証明コレクタの最後のURLを作成します。

コンテキスト値

この要素を使用して、資格証明コレクタの最後のURLを作成します。値はコンテキスト・タイプによって異なります。

チャレンジ・パラメータ

チャレンジで使用するパラメータ(ある場合)のリストです。

FederationSchemeの仕様は、表22-23を参照してください。

33.2.2 FederationMTSchemeについて

FederationMTScheme認証スキームは、マルチテナント環境で使用するように設計されたスキームです。

33.2.3 FederationPlugin認証モジュールについて

FederationPluginには、カスタム認証モジュールが用意されています。

図33-2に、モジュールのコンソール・ページを示します。

図33-2 FederationPluginのステップ

図33-2の説明が続きます
「図33-2 FederationPluginのステップ」の説明

表33-2では、FederationPluginの構成に必要な属性について説明します。

表33-2 FederationPluginのステップ

要素 説明

ステップ名

モジュール内のステップ名です。

説明

この要素は、ステップの簡単な説明です。

プラグイン名

この要素では、ステップに関連付けるプラグインを指定します。

FedSSOIdPの値は、認証プラグインによって選択されるIDPです。

編成では、プラグイン内でのステップの順序とそれらの各ステップが成功または失敗した場合の処理を指定できます。

図33-3に、FederationPluginの編成を示します。

同様の編成については、表22-13を参照してください。

図33-3 FederationPluginの編成

図33-3の説明が続きます
「図33-3 FederationPluginの編成」の説明

表33-3では、FederationPluginの編成に使用する属性について説明します。

表33-3 FederationPluginの編成

要素 説明

名前

ステップ名です。ステップは実行される順序でこの列に表示されます。順序は「最初のステップ」ドロップダウンで変更できます。

説明

ステップの簡単な説明です。

成功時

ステップが正常に完了した場合に実行するアクションです(編成内の次のステップの実行など)。

エラー発生時

エラーが発生した場合に実行するアクションです(指定の失敗アクションの実行など)。

失敗時

ステップが失敗した場合に実行するアクションです。

33.2.4 Identity Federationによる認証の管理

Identity Federationを使用して認証を管理する場合、FerationSchemeとカスタム認証モジュールであるFederationPluginプラグインを組み合せて使用します。

次の各トピックでは、Identity Federationを使用した認証について説明します:

33.2.4.1 Identity Federationによる認証の前提条件

なし。

33.2.4.2 FederationSchemeの表示または変更

FederationScheme認証スキームを表示または変更できます。

FederationSchemeを表示または変更するには:

  1. Oracle Access Managementコンソールで、ウィンドウの上部にある「アプリケーション・セキュリティ」をクリックします。
  2. 「アプリケーション・セキュリティ」コンソールで、「Access Manager」セクションの「認証スキーム」をクリックします。
  3. FederationScheme認証スキームを検索して開きます。
  4. FederationSchemeの詳細が、デプロイメントで必要な要件を満たしていることを確認します。

    フィールドの詳細は、表33-1を参照してください。

  5. 「保存」をクリックします。
33.2.4.3 FederationPluginの表示または変更

FederationPlugin認証プラグインを表示または変更できます。

FederationPluginを表示または変更するには:

  1. Oracle Access Managementコンソールで、ウィンドウの上部にある「アプリケーション・セキュリティ」をクリックします。
  2. 「アプリケーション・セキュリティ」コンソールで、「プラグイン」セクションの「認証プラグイン」をクリックします。
  3. FederationPlugin認証プラグインを検索して開きます。
  4. FederationPluginの詳細が、デプロイメントで必要な要件を満たしていることを確認します。

    プラグインのステップの詳細は、表33-2を参照してください。

  5. ステップの表の上にあるアイコンを使用して、ステップを追加(+)または削除(x)します。
  6. 必要に応じて「ステップ編成」を使用して、ステップの順序を変更します。

    編成の詳細は、表33-3を参照してください。

  7. 「保存」をクリックします。
33.2.4.4 FederationSchemeを使用する認証ポリシーの追加
前提条件として、ポリシーに追加するリソースはポリシーと同じアプリケーション・ドメイン内で定義する必要があります。FederationSchemeを指定した認証ポリシーを追加し、そのポリシーで保護されるリソースを関連付けることができます。

FederationSchemeを指定した認証ポリシーを追加し、そのポリシーで保護されるリソースを関連付けるには、次のようにします。

  1. Oracle Access Managementコンソールで、ウィンドウの上部にある「アプリケーション・セキュリティ」をクリックします。

  2. 「アプリケーション・セキュリティ」コンソールで、「Access Manager」セクションの「アプリケーション・ドメイン」をクリックします。

  3. ターゲット・アプリケーション・ドメインを検索して開きます。

  4. アプリケーション・ドメインの構成ページで、「認証ポリシー」タブをクリックします。

  5. 「作成」をクリックして、次のポリシーの一般詳細を入力します。

    表25-9

    • 名前

    • 認証スキーム

  6. 次に示すグローバル・ポリシー要素および指定を追加します。

    • 説明(オプション)

    • 成功URL

    • 失敗URL

  7. リソースを追加するには:

    1. 認証ポリシー・ページの「リソース」タブをクリックします。

    2. タブの「追加」ボタンをクリックします。

    3. リストからURLを選択します。

    4. 必要に応じてこれらのステップを繰り返して、リソースを追加します。

  8. 「適用」をクリックして変更を保存し、確認ウィンドウを閉じます。

  9. レスポンス:

    「SSOのポリシー・レスポンスの概要」を参照してください。

    「SSOのポリシー・レスポンスの追加および管理」を参照してください。

認証ポリシーを定義して、そのポリシーをリソースに関連付ける場合のコンソール・ページを図33-4に示します。

図33-4 FederationSchemeを使用した認証ポリシーの設定

図33-4の説明が続きます
「図33-4 FederationSchemeを使用した認証ポリシーの設定」の説明

33.3 Oracle Identity Federationの認証スキームおよび認証モジュールの使用

認証スキームは、ユーザーの認証に必要なチャレンジ・メカニズムを定義する名前の付いたコンポーネントです。各認証スキームは、定義された認証モジュールも含む必要があります。

次のトピックでは、Oracle Fusion MiddlewareリリースのOracle Identity Federationサーバーで使用可能な認証スキームおよび認証モジュールについて説明します。

Identity Federationで使用されるスキームについては、「Identity Federationの認証スキームおよび認証モジュールの使用」を参照してください。

スキームの詳細は、「認証スキームの管理」を参照してください。

33.3.1 スキームOIFSchemeについて

OIFSchemeおよびOIFMTSchemeは、Oracle Identity Federationとの統合で使用されます。

Identity Federationで使用可能なスキームについては、「Identity Federationの認証スキームおよび認証モジュールの使用」を参照してください。

表33-4では、スキームOIFSchemeについて説明します。

表33-4 OIFSchemeの定義

要素 説明

名前

スキーム名です。

説明

スキームの簡単な説明です。

認証レベル

認証スキームの信頼レベルです。

デフォルト

「デフォルトとして設定」ボタンがクリックされた場合に選択される編集不可のボックスです。

チャレンジ・メソッド

チャレンジ・メソッドは、ドロップダウン・ボックスで使用可能なチャレンジ・メソッドから選択できます。

チャレンジ・リダイレクトURL

ユーザー・リクエストを処理するためのリダイレクト先となる別のサーバーのURLです。

認証モジュール

スキームで使用する認証モジュールです。

チャレンジURL

資格証明コレクションのために資格証明コレクタがリダイレクトするURLです。

コンテキスト・タイプ

この要素を使用して、資格証明コレクタの最後のURLを作成します。

チャレンジ・パラメータ

チャレンジで使用するパラメータ(ある場合)のリストです。

OIFSchemeの指定については、表22-23を参照してください。

33.3.2 OIFMTLDAPPlugin認証モジュールについて

OIFMTLDAPPluginは、フェデレーテッド・テナントの認証にはIdentity Federationを使用し、非フェデレーテッド・テナントの認証にはAccess Managerに関連付けられたアイデンティティ・ストアを使用します。

表33-5に、OIFMTLDAPPluginのステップを示します。

表33-5 IFMTLDAPPluginのステップ

要素 説明

ステップ名

モジュール内のステップ名です。

説明

この要素には、このステップの簡単な説明です。

プラグイン名

この要素では、このステップに関連付けるプラグインを指定します。

プラグイン・パラメータ

この要素は、プラグインの実行に必要なパラメータ(ある場合)のリストです。パラメータのリストはプラグインによって異なります。

33.3.3 Oracle Identity Federationによる認証の管理

Oracle Identity Federationを使用して認証を管理する場合、OIFSchemeおよびIdentity Federationのカスタム認証モジュールであるOIFMTLDAPPluginを組み合せて使用します。

次の各トピックでは、Oracle Identity Federationを使用した認証の管理方法について説明します:

33.3.3.1 Oracle Identity Federationによる認証の前提条件

なし

33.3.3.2 OIFScheme認証スキームの表示または変更

OIFScheme認証スキームを検索し、必要に応じてスキームの詳細を変更できます。

認証スキームを表示または変更するには、次のようにします。

  1. Oracle Access Managementコンソールで、ウィンドウの上部にある「アプリケーション・セキュリティ」をクリックします。
  2. 「アプリケーション・セキュリティ」コンソールで、「Access Manager」セクションの「認証スキーム」をクリックします。
  3. OIFScheme認証スキームを検索して開きます。
  4. OIFschemeの詳細が、デプロイメントで必要な要件を満たしていることを確認します。

    フィールドの詳細は、表33-4を参照してください。

  5. 「保存」をクリックします。
33.3.3.3 OIFMTLDAPPlugin認証を表示または変更するための前提条件

なし。

33.3.3.4 OIFMTLDAPPlugin認証の表示または変更

OIFMTLDAPPlugin認証を検索し、必要に応じてモジュールの詳細を変更できます。

OIFMTLDAPPlugin認証を表示または変更するには、次のようにします。

  1. Oracle Access Managementコンソールで、ウィンドウの上部にある「アプリケーション・セキュリティ」をクリックします。
  2. 「アプリケーション・セキュリティ」コンソールで、「プラグイン」セクションの「認証モジュール」をクリックします。
  3. OIFMTLDAPPlugin認証モジュールを検索して開きます。
  4. OIFMTLDAPPluginの詳細を確認し、デプロイ対象として構成されていることを確認します。

    詳細は、表33-5を参照してください。

  5. 「保存」をクリックします。
33.3.3.5 OIFSchemeを使用する認証ポリシーの追加

このタスクの手順は、次のトピックに記載されているものと同じです。

「FederationSchemeを使用する認証ポリシーの追加」を参照してください。

33.4 Identity Federationで使用するAccess Managerのポリシーの管理

次の各トピックでは、フェデレーション・ポリシーに従ってAccess Managerでポリシー・レスポンスを使用する方法について説明します。

33.4.1 Identity Federationのアサーション属性を含むポリシー・レスポンスについて

ポリシーには、1つ以上の認証レスポンスまたは認可レスポンスあるいはその両方をオプションで含めることができます。Identity FederationでAccess Managerのポリシー・レスポンスを設定する際に、アサーション属性を使用するよう構成できます。

アサーション属性は、次のように使用します。

  • 認可ポリシーの条件

  • HTTPヘッダーのレスポンス属性

  • アイデンティティ・コンテキストのレスポンス属性

図33-7に、認可ポリシーの「レスポンス」構成タブを示します。

図33-7 認可ポリシーの「レスポンス」タブ

図33-7の説明が続きます
「図33-7 認可ポリシーの「レスポンス」タブ」の説明

表33-6では、ポリシー・レスポンスの要素について説明します。

表33-6 ポリシー・レスポンスの要素

要素 説明

名前

このレスポンスと同じメカニズム(タイプ)を使用する他のレスポンスを区別する一意の名前です。

タイプ

値文字列を使用して実行されるアクションのレスポンス形式を伝達するために使用されるメカニズムです。「アサーション属性」を選択します。

変数として設定されるレスポンスの式です。認証または認可ポリシーでフェデレーション・データをレスポンス属性として指定する場合、次の値を参照できます。

  • 名前IDの値の場合は$session.attr.fed.nameidvalue

  • その他のアサーション属性の場合は$session.attr.fed.attr.AttributeName

33.4.2 Identity Federationのアサーション属性を含むポリシー・レスポンスの定義

Oracle Access Managementコンソールを使用して、アサーション属性を含むポリシー・レスポンスを構成します。

33.4.2.1 Identity Federationの条件およびレスポンスの背景

Identity Federationの条件とレスポンスは別々のタスクで使用されるため、個別に指定する必要があります。

たとえば、アイデンティティ・プロバイダでロール・アサーションを送信し、サービス・プロバイダでリソースへのアクセスをsalesというロールを持つユーザーのみに許可する場合、次のような条件を追加します。

  • 条件ネームスペースを「セッション」にします。

  • 「名前」を「fed.attr.role」にします。

  • 「演算子」を「次と等しい」に設定します。

  • 「値」を「sales」にします。

条件は、Access Manager内のリソースへのアクセスを制御するために使用されます。

ノート:

  • この例のロールを実際のSAMLでアサートされる属性に置き換えてください。

  • 標準のSAML名前IDの値を条件として使用する場合、値は「attr.fed.nameidvalue」です。

これに対し、アサートされた属性をレスポンスによってアプリケーションに渡すことができます。たとえば、アサートされた属性roleをHTTPヘッダーでバックエンドのアプリケーションに渡す場合は次のようにします。

  • 「レスポンス」タブに移動します。

  • Roleというヘッダー(HTTPヘッダーの名前)を追加します。

  • 値は$session.attr.fed.attr.roleです。

この場合、この例のロールを対応するアサートされたSAML属性に置き換えてください。

33.4.2.2 アサーション属性を含むポリシー・レスポンスを表示および構成するための前提条件

なし。

33.4.2.3 アサーション属性を含むレスポンスの表示または構成

アサーション属性を含むレスポンスを表示および構成するには、次のようにします。

  1. Oracle Access Managementコンソールを使用して、目的のアプリケーション・ドメインを検索し、目的のポリシーを開いてレスポンスを表示または構成します。
  2. 「レスポンス」タブを選択します。
  3. 該当するアイコンをクリックして、レスポンスを追加、削除、更新します。
  4. 更新する場合は、そのレスポンスの詳細が、デプロイメントで必要な要件を満たしていることを確認します。

    詳細は、表33-6を参照してください。

  5. 「保存」をクリックします。

図33-8に、フェデレーションのレスポンス属性の構成例を示します。

図33-8 フェデレーションのレスポンス属性のAuthZポリシーへの追加

図33-8の説明が続きます
「図33-8 フェデレーションのレスポンス属性のAuthZポリシーへの追加」の説明

33.5 Identity Federationの構成のテスト

前のトピックで説明した手順を実行すると、SPモードのフェデレーションを構成するためのすべてのステップが完了します。

このステップを要約すると、次のようになります。

  1. Oracle Access Managementコンソールを使用してIdentity Federationのサービスを有効にします。
  2. IdPパートナを作成するか、既存のIdPパートナを使用します。
  3. IdPの設定(SAML属性、グローバル・ログアウトおよび名前IDフォーマットなど)が構成されていることを確認します。
  4. FederationSchemeおよびフェデレーションのレスポンス属性を使用する認証/認可ポリシーを構成します。
  5. このポリシーでリソースを保護します。

この構成をテストするには、認証ポリシーで保護されたリソースにアクセスし、そのアクセスがポリシーで許可または拒否されているかを検証します。

33.5.1 テストSPモジュール

Identity FederationにはテストSPモジュールが用意されており、これを使用すると、フェデレーションSSOとIdPパートナとのテスト、フェデレーションSSO操作の結果およびアイデンティティ・プロバイダが送信したアサーションを確認が可能になります。

33.5.1.1 テストSPモジュールの有効化または無効化

テストSPモジュールを有効または無効にできます。

  1. WLST環境を入力します。
    $OH/common/bin/wlst.sh
  2. 管理サーバーに接続します。
    connect()
  3. ドメイン・ランタイムの場所に移動します。
    domainRuntime()
  4. テストSPモジュールを有効にするには、次のWLSTコマンドを実行します。
    configureTestSPEngine("true")
  5. テストSPモジュールを無効にするには、次のWLSTコマンドを実行します。
    configureTestSPEngine("false")

33.5.2 テストSPモジュールへのアクセスとフェデレーションSSO操作の実行

テストSPモジュールにアクセスし、IdPパートナとのフェデレーションSSO操作を実行できます。

  1. 次のサービスにアクセスします。
    http(s)://oam-hostname:oam-port/oamfed/user/testspsso
  2. フェデレーションSSOを実行するIdPを選択します(ノート: リストには有効なIdPパートナのみが表示されます)。
  3. フェデレーションSSO操作を開始します。ブラウザは認証用のIdPパートナにリダイレクトされた後、フェデレーション・レスポンスによってIdentity Federationに再度リダイレクトされます。
  4. Identity Federationによってフェデレーションのアサーションが処理され、テストSPモジュールによって処理結果が表示されます(ノート: この操作の結果、作成されるAccess Managerセッションはありません)。

33.5.3 アップグレード後のフェデレーション構成中に発生したエラーのトラブルシューティング

IAM Suiteは、OAM 11.1.2がインストールされているときに作成されるOOTBアプリケーション・ドメインです。このアプリケーション・ドメインはインストール後に名前を変更することもできますが、OAMを11.1.2.2.0にアップグレードするときにはIAM Suiteに名前を戻す必要があり、そうしない場合、アップグレード操作は、WLS管理ログに書き込まれる次のエラーで失敗します。

java.lang.NullPointerException
at
oracle.security.am.common.policy.tools.upgrade.r2ps2.bootstrap.FedR2PS2Bootstr
apHandler.createFedAuthnResource(FedR2PS2BootstrapHandler.java:505)
at
oracle.security.am.common.policy.tools.upgrade.r2ps2.bootstrap.FedR2PS2Bootstr
apHandler.doBootstrap(FedR2PS2BootstrapHandler.java:151)
at
oracle.security.am.common.policy.tools.upgrade.r2ps2.bootstrap.R2PS2BootstrapH
elper.doBootstrap(R2PS2BootstrapHelper.java:70)
at
oracle.security.am.common.policy.tools.PolicyComponentLifecycle.initialize(Pol
.
icyComponentLifecycle.java:99)

インストール後にIAM Suiteアプリケーション・ドメインの名前が変更された場合、アップグレード・プロセスの開始前に元のIAM Suiteの名前に戻しておく必要があります。アップグレード・プロセスの完了後は、名前をカスタム名に戻すことができます。

33.6 デフォルト・アイデンティティ・プロビジョニング・プラグインの使用

このリリースには、必要に応じて使用可能なプラグインがあり、フェデレーテッドSSO操作時に、不足しているアイデンティティをプロビジョニングできます。

次の各トピックでは、プロビジョニング・プラグインの使用方法について説明します。

33.6.1 プロビジョニング・プラグインを使用する理由

フェデレーテッドSSOトランザクションが開始されると、処理フローは次のようになります。

  1. IdPがユーザーを認証し、アサーションをOracle Access Management Identity Federationに送信します。

  2. SPとして動作するIdentity Federationがユーザーをローカル・アイデンティティ・ストアにマップします。

  3. ユーザーがローカル・ストアに存在しない場合、マッピングは失敗します。

このような問題を解決するには、トランザクションを継続できるようにユーザーをプロビジョニングする必要があります。

33.6.2 デフォルト・プロビジョニング・プラグインについて

アイデンティティ・マッピングの失敗を処理するために、Identity Federationでは、アイデンティティ・ストアに存在しないユーザーをプロビジョニングするためのプラグイン(デフォルト・プロビジョニング・プラグインと呼ばれる)を設定する機能をサポートしています。これにより、フェデレーテッド・シングル・サインオンの続行が可能になります。

ユーザーは、IdPパートナに関連付けられたアイデンティティ・ストア内にプロビジョニングされます。次の項で説明するように、プラグインのプロビジョニングで使用される属性のリストを指定できます。

33.6.3 デフォルト・プロビジョニング・プラグインの使用

このデフォルト・プロビジョニング・プラグインは、プラグイン構成インタフェースから有効にできます。

デフォルト・プロビジョニング・プラグインを使用するには、次のようにします。

  1. プラグイン構成インタフェースからFedUserProvisioningPluginを選択します。
  2. 「構成パラメータ」タブで、次のパラメータを設定します。
    • KEY_USER_RECORD_ATTRIBUTE_LIST - ユーザーのプロビジョニングで使用される属性のリストです。この属性はアサーションの一部として使用できます。たとえば: mailgivenname。(オプション)

    • KEY_PROVIDERID_ATTRIBUTE_NAME – 実行時にIdentity Federationがテナント名を移入する、アイデンティティ・ストア内のテナントID属性の名前です。(オプション)

    • KEY_USERID_ATTRIBUTE_NAME – アサーション属性のuserid値に使用される属性名です。(オプション)

  3. 次のWLSTコマンドを実行して、デフォルト・プラグインによるユーザー・プロビジョニングを有効にします。
    putBooleanProperty("/fedserverconfig/userprovisioningenabled","true")

33.6.4 カスタム・プロビジョニング・プラグインへの切替え

Identity Federationでは、カスタム・プロビジョニング・プラグインを使用することもできます。

デフォルト・プラグインからカスタム・プラグインに切り替えるには、『Oracle Access Managementでのアプリケーションの開発』「カスタム・ユーザー・プロビジョニング・プラグインの開発」のガイドラインに従います。

カスタム・プラグインを使用する場合、WLSTコマンドを使用してプラグイン名を設定します。

putStringProperty("/fedserverconfig/userprovisioningplugin","CustomPlugin")

33.7 アイデンティティ・プロバイダ検出サービスの構成

アイデンティティ・プロバイダ検出は、SSOで使用するアイデンティティ・プロバイダを(多くの場合、ユーザーとの対話によって)選択するためのサービスです。

Identity Federationは、アイデンティティ・プロバイダ検出サービスを備えていませんが、SPが開始するSSOにおいて、SPへの認証リクエストでIdPが渡されなかった場合に、IdPを選択するサービスを使用できるようサポートしています。

IdP検出の詳細は、次の仕様を参照してください。

http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-idp-discovery-cs-01.pdf

Identity Federationがサービス・プロバイダとして動作している場合、パートナIdPのプロバイダIDが指定されずにSSO操作が開始された場合に、SSOを実行するアイデンティティ・プロバイダを選択するためのIdP検出サービスにユーザーをリダイレクトするよう構成できます。

ユーザーがアイデンティティ・プロバイダを選択すると、選択したIdPを含むSSOリクエストがカスタム・ページからIdentity Federationに再送信されます。

詳細は、次の各項を参照してください。

33.7.1 バンドルされたIdP検出サービスの構成

Identity Federationには、単純なアイデンティティ・プロバイダ検出サービスが用意されています。これを使用することにより、フェデレーションSSO操作で使用されるフェデレーションIdPパートナを実行時に決定できます。

バンドルされたIdP検出サービスを構成するには、次のようにします。

  1. WLST環境を入力します。
    $OH/common/bin/wlst.sh
  2. 管理サーバーに接続します。
    connect()
  3. ドメイン・ランタイムの場所に移動します。
    domainRuntime()
  4. 次のWLSTコマンドを実行して、IdP検出サービスを使用するようにIdentity Federationを構成します。
    putBooleanProperty("/spglobal/idpdiscoveryserviceenabled", "true")
  5. 次のWLSTコマンドを実行して、デフォルトのすぐに使用可能なIdP検出サービスを使用するようにIdentity Federationを構成します。
    putBooleanProperty("/spglobal/idpdiscoveryservicepageenabled", "true")putStringProperty("/spglobal/idpdiscoveryserviceurl", "/oamfed/discovery.jsp")

33.7.2 カスタムIdP検出サービスでのIdentity Federationの構成

リモートでデプロイされたカスタムIdP検出サービスとやり取りするようにIdentity Federationを構成できます。

カスタムIdP検出サービスを指定してIdentity Federationを構成するには、次のようにします。

  1. WLST環境を入力します。
    $OH/common/bin/wlst.sh
  2. 管理サーバーに接続します。
    connect()
  3. ドメイン・ランタイムの場所に移動します。
    domainRuntime()
  4. 次のWLSTコマンドを実行して、IdP検出サービスを使用するようにIdentity Federationを構成します。
    putBooleanProperty("/spglobal/idpdiscoveryserviceenabled", "true")
  5. 次のWLSTコマンドを実行して、カスタムIdP検出サービスを使用するようにIdentity Federationを構成します(IDP_DISCOVERY_SERVICE_URLを検出サービスの完全修飾URLに置き換えます)。
    putBooleanProperty("/spglobal/idpdiscoveryservicepageenabled", "false")
    putStringProperty("/spglobal/idpdiscoveryserviceurl", "IDP_DISCOVERY_SERVICE_URL")

実行時に、Identity Federationは次のパラメータを指定して、IdP検出サービス・ページへのリダイレクトを行います。

  • return: このページからIdentity Federationに対する新しいリクエストの送信先のURLです。リクエストには選択されたIdPのプロバイダIDが含まれます。

  • returnIDParam: Identity Federationに送信するリクエストで、選択されたIdPのプロバイダIDを指定する際に使用するパラメータの名前です。

検出サービスはこれらのパラメータの値を取得し、IdPのリストを表示した後、選択されたIdPのプロバイダIDを指定して新しいリクエストをIdentity Federationに送信します。

ノート:

URL問合せパラメータ値が正しくURLエンコードされていることを確認します。

IdP検出サービス・ページの例

次の例は、IdP検出サービス・ページを示しており、ユーザーがアイデンティティ・プロバイダを(プロバイダIDのリストhttp://idp1.comhttp://idp2.comhttp://idp3.comから)選択すると、選択したプロバイダIDがIdentity Federationに送信され、SSOフローが続行されます。

<%@ page buffer="5kb" autoFlush="true" session="false"%>
<%@ page language="java" import="java.util.*, java.net.*"%>
 
<%
// Set the Expires and Cache Control Headers
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "Thu, 29 Oct 1969 17:04:19 GMT");
 
// Set request and response type
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
String submitURL = request.getParameter("return");
String returnIDParam = request.getParameter("returnIDParam");
 
List idps = new ArrayList();
idps.add("http://idp1.com");
idps.add("http://idp2.com");
idps.add("http://idp3.com");
 
%>
 
<html>
  <title>
  Select an Identity Provider
  </title>
<body bgcolor="#FFFFFF"><form  method="POST" action="<%=submitURL%>" id="PageForm" name="PageForm" autocomplete="off">
    <center>
                <table cellspacing="2" cellpadding="5" border="0" width="500">
                    <tr><td colspan="2" align="center">
                         Select an Identity Provider
                    </td></tr>
                    </tr>
                    <tr>
                        <td align="right">Provider ID</td>
                        <td>
                           <select size="1" name="<%=returnIDParam%>">
<%
Iterator idpIT = idps.iterator();
while(idpIT.hasNext())
{
        String idp = (String)idpIT.next();
%>
                                <option value="<%=(idp)%>"><%=idp%></option>
<%
}
%>
 
                           </select>
                         </td>
                    </tr>
                    <tr>
                         <td colspan="2" align="center">
                            <input type="submit" value="Continue"/>
                         </td>
                    </tr>
                </table>
      </center>
     </form>
    </body>
</html>

33.7.3 IdP検出サービスの使用の無効化

IdP検出サービスの使用を無効にするには、次のようにします。

  1. WLST環境を入力します。
    $OH/common/bin/wlst.sh
  2. 管理サーバーに接続します。
    connect()
  3. ドメイン・ランタイムの場所に移動します。
    domainRuntime()
  4. 次のWLSTコマンドを実行して、IdP検出サービスの使用を停止するようにIdentity Federationを構成します。
    putBooleanProperty("/spglobal/idpdiscoveryserviceenabled", "false")
    putBooleanProperty("/spglobal/idpdiscoveryservicepageenabled", "false")
    putStringProperty("/spglobal/idpdiscoveryserviceurl", "/oamfed/discovery.jsp")

33.8 OAM Identity ProviderとMicrosoft Office 365サービス・プロバイダの統合

次の各トピックでは、Microsoft Office 365がSAML 2.0標準を使用するSPとして構成されている場合に、Microsoft Office 365との統合のためにOAM Identity Federation 14c (14.1.2.1.0)をIdPとして管理する方法について説明します。統合の実装後は、アイデンティティ・リポジトリ内のアカウントを使用して、すべてのWebクライアント(SharePoint Onlineに接続するOfficeリッチ・クライアント・アプリケーションを含む)や、Basic認証およびサポートされているExchangeアクセス方式(IMAP、POP、Active Sync、MAPIなど)を使用する電子メール・リッチ・クライアントにアクセスできます。(Enhanced Client Protocolエンド・ポイントをデプロイする必要があります。)

デプロイメントの前提条件は次のとおりです。

  1. OAM 14c (14.1.2.1.0)がインストールされ、SSLを使用して構成されていること。
  2. Oracle Access Managementコンソールを使用して、Office 365の管理者ロールを定義するアカウントが作成されていること。
  3. Windows PowerShell 2.0およびMicrosoft Online Servicesモジュールがインストールされていること。
  4. 使用可能なドメイン名がOffice 365でフェデレーテッド・ドメインとして使用できること。一般に、このドメインは購入する必要があります。

ノート:

Webベースでないクライアント統合の場合は、次のことに注意してください。

  • パブリック・ネットワークからOAM IdPエンドポイントにアクセスできる必要があります。

  • 既知のエンティティにより発行された信頼できるSSL証明書を使用する必要があります。

次の各トピックでは、構成の詳細について説明します。

33.8.1 OAMの統合のためのMicrosoft Office 365の構成

OAMの統合のためにMicrosoft Office 365を構成するには、次のようにします。

  1. ドメイン名(test.comなど)を追加し、Office 365 Web管理センターを使用して検証します。
  2. Set-MsolDomainAuthentication PowerShellコマンドを実行して、ドメインの認証スキームをフェデレーテッドとして定義します。
    $dom="<domain name>"
    $url="https://server_host:port/oamfed/idp/samlv20"
    $uri="<entityID>"
    $ecpUrl=https:// server_host:port/oamfed/idp/soap
    $logouturl="https://server_host:port/oamfed/idp/samlv20"
    $cert="MIIB/DCCAWWgAwIBAgI......."
    Set-MsolDomainAuthentication -FederationBrandName $dom 
     -Authentication Federated -ActiveLogUri $ecpUrl -PassiveLogOnUri $url 
     -SigningCertificate $cert -IssuerUri $uri
    -LogOffUri $logouturl -PreferredAuthenticationProtocol SAMLP

    ノート:

    これらのパラメータの一部の値は、OAM アイデンティティ・プロバイダ・メタデータ内に見つかる場合があります。

  3. New-MsolUser PowerShellコマンドを実行して、フェデレーテッド・ドメイン内にユーザーを作成します。
    New-MsolUser -DisplayName <name> –UserPrincipalName 
     <name@domain_name> -UsageLocation <location> 
     -BlockCredential $false -ImmutableId <immutableid>

    Office 365のフェデレーションでは、UserPrincipalNameおよびImmutableIdの値が必要です。SAMLアサーションでは、ImmutableIdの値は、"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"という名前IDフォーマットを使用してSAMLサブジェクトに格納されます。UserPrincipalNameは、属性名IDPEmailを使用してSAML属性に格納されます。OAMユーザー・アイデンティティ・ストアでは、ユーザー・エントリは同じ属性を使用してUserPrincipalNameおよびImmutableIdの値を格納する必要があります。次を使用します。

    • mail=<name@domain_name (UserPrincipalName)>

    • uid=<immutableid>

    ノート:

    この統合の前にOffice 365が存在していた場合、既存のユーザーをテストに使用できます。既存のユーザーのUserPrincipalName属性とImmutableId属性の値がわかっている必要があります。

  4. Office 365が提供するアプリケーションをユーザーが使用できるように、ユーザーにライセンスを割り当てます。

33.8.2 Microsoft Office 365の統合のためのOAMの構成

次の各トピックでは、Microsoft Office 365との統合のためにOAMを構成する方法について説明します。

WLSTコマンドを使用する方法の詳細は、「Identity Federation WLSTコマンド」を参照してください。

33.8.2.1 Webクライアントおよび非Webクライアントの構成

Webクライアントおよび非Webクライアントを構成するには、次のようにします。

  1. Oracle Access Managementコンソールにログインします。
  2. 「使用可能なサービス」に移動し、Identity Federationサービスを有効にします。
  3. 「アイデンティティ・プロバイダ管理」に移動します。
  4. サービス・プロバイダ属性プロファイルのマッピングを作成します。

    表33-7 メッセージ属性のマッピング

    メッセージ属性名 常に送信

    IDPEmail

    $user.attr.mail

    true

  5. 属性と値を使用して、Office 365用のサービス・プロバイダ・パートナを作成します。

    詳細は、表33-8を参照してください。

    表33-8 Office 365サービス・プロバイダの属性値

    プロバイダ属性

    名前

    Office365

    プロトコル

    SAML 2.0

    サービスの詳細

    プロバイダ・メタデータからロードします。

    メタデータ・ファイル

    次からダウンロードできます。

    https://nexus.microsoftonline-p.com/federationmetadata/saml20/federationmetadata.xml

    中国の顧客がOffice 365の中国固有インスタンスを使用している場合は、次からダウンロードします。

    https://nexus.partner.microsoftonline-p.cn/federationmetadata/saml20/federationmetadata.xml

    名前IDフォーマット

    永続的

    NameID値

    ユーザーIDストア属性 + uid

    属性マッピング・プロファイル

    ステップ2で作成したプロファイル

    ユーザー・アイデンティティ・ストア

    使用されるアイデンティティ・ストア

    ユーザー検索ベースDN

    ユーザー検索のベースDN

    SSOレスポンス・バインディング

    HTTP POST

  6. オプションで、setSPPartnerDefaultScheme WLSTコマンドを使用して、サービス・プロバイダ・パートナのデフォルト認証スキームを設定します。

    デフォルトでは、OAMはユーザー認証にLDAPSchemeを使用します。別のスキームを使用するには、次のコマンドを実行します。

    setSPPartnerDefaultScheme(<partner>, <authnScheme>)

    非Webクライアントを使用する場合は、「非Webクライアントの追加構成」を参照してください。

33.8.2.2 非Webクライアントの追加構成

非Webクライアントを使用する場合は、次の追加構成を実行してください。これらのステップがWebベースの統合に影響を与えることはありません。

  1. setSPPartnerAlternateScheme WLSTコマンドを使用して、HTTP Basic認証を処理するサービス・プロバイダ・パートナの代替認証スキームを設定します。たとえば:

    setSPPartnerAlternateScheme(<partner>, "true", 
      httpHeaderName="X-MS-Client-Application", httpHeaderExpression=".* 
      Microsoft.Exchange..*", authnScheme="BasicScheme or BasicSessionlessScheme")

    httpHeaderNameおよびhttpHeaderExpressionの値は、Office365からOAMに送信されたHTTPリクエストから決定できます。他の値を使用する場合は、リッチ・クライアントを使用して電子メール・アカウントを接続し、OAMサーバー側のHTTPリクエストを取得します。

    ノート:

    Office 365ではアサーションの取得にユーザー資格証明の検証のみが行われるため、BasicSessionlessSchemeを使用することをお薦めします。

  2. updatePartnerProperty WLSTコマンドを使用して、XMLシグネチャで証明書を送信するように構成を更新します。

    updatePartnerProperty(<partner>,"sp","includecertinsignature","true","boolean")

    Basic認証の場合、リクエストの認証後でも再認証が必要になることがあります。

33.8.3 フェデレーション・シングル・サインオンの確認

次の各トピックでは、フェデレーションSSOの確認方法について説明します。

33.8.3.1 SPが開始するSSOの確認

SPが開始するSSOを確認するには、次のようにします。

  1. 次のいずれかのURLを開きます。
    • http://portal.microsoftonline.com: ログイン・ページから、ユーザー名フィールドに"xxx@test.com"と入力し、パスワード・フィールドをクリックします。この時点で、OAMログイン・ページに自動的にリダイレクトされます。

    • http://www.outlook.com/test.com: OAMログイン・ページに自動的にリダイレクトされます。

  2. 表示されたOAMログイン・ページでユーザー名とパスワードを入力し、「ログイン」をクリックします。

    SSOが成功すると、Office 365 Webポータルにログインできます。

33.8.3.2 IDPが開始するSSOの確認

IDPが開始するSSOを確認するには、次のようにします。

  1. ブラウザで、http://host:port/oamfed/idp/initiatesso?providerid=urn:federation:MicrosoftOnline&returnURL=http://portal.microsoftonline.comを開きます。
  2. 表示されたOAMログイン・ページでユーザー名とパスワードを入力し、「ログイン」をクリックします。

    SSOが成功すると、Office 365 Webポータルにログインできます。

33.8.3.3 非Webベース・クライアントを使用するフェデレーションの確認

非Webベース・クライアントを使用するフェデレーションを確認するには、次のようにします。

  1. 電子メール・クライアントの電子メール・アカウントを追加します。
    • デスクトップ電子メール・クライアント(Outlookクライアントなど)の場合は、http://help.outlook.com/en-ca/140/cc875899.aspxを参照してください。

    • Androidデバイスのネイティブ電子メール・アプリケーションの場合は、http://office.microsoft.com/client/15/help/preview?AssetId=HA102823196&lcid=1033&NS=O365ENTADMIN&Version=15&CTT=5&origin=HA103787372を参照してください。

    • IOSデバイスの場合は、http://office.microsoft.com/client/15/help/preview?AssetId=HA102818554&lcid=1033&NS=O365ENTADMIN&Version=15&CTT=5&origin=HA102828259を参照してください。

    ノート:

    Outlookクライアントを使用して電子メール・アカウントを追加する場合、「User Information」領域で「Your Name」と「Email Address」に入力すると、「Logon Information」領域の「User Name」値に「Your Name」の値が自動的に入力されます。電子メール・アドレスが反映されるように「Your Name」の値を変更することをお薦めします。

  2. 電子メールを正常に送受信できることを確認します。