ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Access Management管理者ガイド
11gリリース2 (11.1.2.2) for All Platforms
B69533-09
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

この章では、Oracle Access Management Identity Federation用に構成が必要なフェデレーション関連の認証スキームとポリシーについて説明します。

この章には次の項が含まれます:

33.1 前提条件

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

Identity Federationの概念、背景および大まかなフローについては、『Oracle Fusion Middleware Oracle Identity Federation管理者ガイド』の「Oracle Identity Federationのデプロイ」の章を参照してください。

33.2 Identity FederationとAccess Managerの併用

Access Managerとフェデレーション機能を併用する方法はリリースによって異なります。Identity Federationと統合する場合は次のとおりです。

  • 11gリリース1 (11.1.1)のサイト、および11gリリース1 (11.1.1)から11gリリース2 (11.1.2)にアップグレードしたサイトでは、Oracle Fusion Middleware Oracle Identity Management Suite統合ガイドに記載されている統合を使用できます。

  • 新しい11gリリース2 (11.1.2)インストールを使用するサイトでは、Oracle Access Managementコンソールを使用してフェデレーション機能を利用できます。

33.3 Identity Federation 11gリリース2 (11.1.2.2)の認証スキームおよび認証モジュールの使用

この項の内容は次のとおりです。

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

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

図33-1に、AccessコンソールのFederationSchemeのページを示します。

図33-1 FederationScheme

図33-1については周囲のテキストで説明しています。

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

表33-1 FederationSchemeの要素の定義

要素 説明

名前

スキーム名です。

説明

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

認証レベル

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

デフォルト

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

チャレンジ・メソッド

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

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

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

認証モジュール

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

チャレンジURL

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

コンテキスト・タイプ

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

コンテキスト値

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

チャレンジ・パラメータ

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



関連項目:

FederationSchemeの指定については、表19-21を参照してください。

スキームFederationMTSchemeについて

認証スキームFederationMTSchemeは、11gリリース2 (11.1.2.2)で使用するために設計されたもう一つのスキームです。これはマルチテナント環境で使用します。

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

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

図33-2 FederationPlugin

図33-2については周囲のテキストで説明しています。

表33-2では、FederationPluginのステップについて説明します。

表33-2 FederationPluginのステップ

要素 説明

ステップ名

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

説明

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

プラグイン名

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

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


図33-3に、FederationPluginの編成を示します。これは、表19-14「ステップ編成」サブタブに記載されている編成と同じものです。

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

図33-3 FederationPluginの編成

図33-3については周囲のテキストで説明しています。

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

表33-3 FederationPluginの編成

要素 説明

名前

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

説明

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

成功時

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

エラー発生時

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

失敗時

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


33.3.3 11gリリース2のIdentity Federationでの認証の管理

この項では、FederationSchemeおよびカスタム認証モジュールであるFederationプラグインの管理方法について説明します。

前提条件

ありません。

FederationSchemeを表示または変更する手順

  1. Oracle Access Managementコンソールから、「認証スキーム」をクリックし、FederationSchemeを開きます。

  2. FederationSchemeの詳細が、デプロイメントで必要な要件を満たしていることを確認します。フィールドの詳細は、表33-1を参照してください。

  3. 「保存」ボタンをクリックします。

FederationPluginを表示または変更する手順

  1. Oracle Access Managementコンソールから、「認証モジュール」、「カスタム認証モジュール」、「FederationPlugin」の順にクリックします。

  2. FederationPluginの詳細が、デプロイメントで必要な要件を満たしていることを確認します。プラグインのステップの詳細は、表33-2を参照してください。

  3. ステップの表の上にあるアイコンを使用して、ステップを追加(+)または削除(x)します。

  4. 必要に応じて「ステップ編成」を使用して、ステップの順序を変更します。編成の詳細は、表33-3を参照してください。

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

FederationSchemeを使用する認証ポリシーを追加する手順

前提条件: ポリシーに追加するリソースは、ポリシーと同じアプリケーション・ドメイン内で定義されている必要があります。

次の手順に従って、FederationSchemeを使用する認証ポリシーを設定し、このポリシーを使用して保護対象のリソースを関連付けます。

  1. Oracle Access Managementコンソールで「アプリケーション・ドメイン」をクリックし、目的のドメインを検索します。

  2. 再び、コンソールから、「認証ポリシー」をクリックし、次に「作成」ボタンをクリックして、新しいページを開きます。

  3. 次に示すポリシーの一般詳細を追加します(表20-9「認証ポリシーの要素および説明」を参照してください)。

    • 名前

    • 認証スキーム

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

    • 説明(オプション)

    • 成功URL

    • 失敗URL

  5. 次の手順に従ってリソースを追加します。

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

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

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

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

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

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

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

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

図33-4については周囲のテキストで説明しています。

33.4 Oracle Identity Federation 11gリリース1の認証スキームおよび認証モジュールの使用

この項では、Oracle Fusion Middlewareリリース11g R1 (11.1.1)のOracle Identity Federationサーバーで使用可能な認証スキームおよび認証モジュールについて説明します。


注意:

11gリリース2 (11.1.2.2)のIdentity Federationで使用するスキームについては、第33.3項を参照してください。

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


関連項目:

スキームの詳細は、第19.9項を参照してください。

33.4.1 スキームOIFSchemeについて

OIFSchemeおよびOIFMTSchemeは、Oracle Identity Federation 11gリリース1 (11.1.1)との統合で使用されます。


注意:

Identity Federation 11g リリース2 (11.1.2.1)で使用可能なスキームについては、第33.3項を参照してください。

図33-5 OIFScheme

図33-5については周囲のテキストで説明しています。

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

表33-4 OIFSchemeの定義

要素 説明

名前

スキーム名です。

説明

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

認証レベル

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

デフォルト

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

チャレンジ・メソッド

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

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

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

認証モジュール

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

チャレンジURL

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

コンテキスト・タイプ

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

チャレンジ・パラメータ

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



関連項目:

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

33.4.2 モジュールOIFMTLDAPPluginについて

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

図33-6 OIFMTLDAPPlugin

図33-6については周囲のテキストで説明しています。

表33-5では、OIFMTLDAPPluginのステップについて説明します。

表33-5 OIFMTLDAPPluginのステップ

要素 説明

ステップ名

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

説明

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

プラグイン名

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

プラグイン・パラメータ

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


33.4.3 Oracle Identity Federationリリース11gR1での認証の管理

この項では、OIFSchemeおよびIdentity Federation 11gリリース1 (11.1.1)のカスタム認証モジュールであるOIFMTLDAPPluginの管理方法について説明します。

前提条件

なし

OIFSchemeを表示または変更する手順

  1. Oracle Access Managementコンソールから、「認証スキーム」をクリックし、OIFSchemeを開きます。

  2. OIFschemeの詳細が、デプロイメントで必要な要件を満たしていることを確認します。フィールドの詳細は、表33-4を参照してください。

  3. 「保存」ボタンをクリックします。

前提条件

ありません。

OIFMTLDAPPluginを表示または変更する手順

  1. Oracle Access Managementコンソールから、「認証モジュール」、「カスタム認証モジュール」の順にクリックして、OIFMTLDAPPluginを開きます。

  2. OIFMTLDAPPluginの詳細を確認し、デプロイ対象として構成されていることを確認します。フィールドの詳細は、表33-5を参照してください。

  3. 「保存」ボタンをクリックします。

OIFSchemeを使用する認証ポリシーを追加する手順

このタスクの手順は、「FederationSchemeを使用する認証ポリシーを追加する手順」に記載されているものと同じです。

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

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

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

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

アサーション属性は、次のようなコンテキストで使用します。

  • 認可ポリシーの条件

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

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

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

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

図33-7については周囲のテキストで説明しています。

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

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

要素 説明

名前

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

タイプ

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

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

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

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


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

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

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

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

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

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

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

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

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

  • 値は「sales」です。


注意:

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

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


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

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

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

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

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

前提条件

ありません。

アサーション属性を含むポリシー・レスポンスを表示する手順

  1. Oracle Access Managementコンソールから、認証ドメインをクリックし、目的のドメインを検索して、レスポンスを表示または構成する目的のポリシーを開きます。

  2. 「レスポンス」タブを選択します。

  3. 該当するアイコンをクリックして、レスポンスを追加、削除、更新します。

  4. 更新する場合は、そのレスポンスの詳細が、デプロイメントで必要な要件を満たしていることを確認します。フィールドの詳細は、表33-6を参照してください。

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

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

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

図33-8については周囲のテキストで説明しています。

33.6 Identity Federationの構成のテスト

前のセクションで説明した手順を実行すると、SPモードのフェデレーションを構成するためのすべての手順が完了します。この手順を要約すると、次のようになります。

  1. Oracle Access Managementコンソールを使用してIdentity Federationのサービスを有効にします。

  2. IdPパートナを作成するか、既存のIdPパートナを使用します。

  3. IdPの設定(SAML属性、グローバル・ログアウトおよび名前IDフォーマットなど)が構成されていることを確認します。

  4. FederationSchemeおよびフェデレーションのレスポンス属性を使用する認証/認可ポリシーを構成します。

  5. このポリシーでリソースを保護します。

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

テストSPモジュール

Identity Federationには、テストSPモジュールが用意されています。このモジュールを使用すると次のことが可能になります。

  • フェデレーションSSOとIdPパートナのテスト

  • フェデレーションSSO操作の結果およびアイデンティティ・プロバイダが送信したアサーションの確認

テストSPモジュールを有効または無効にするには、次の手順に従います。

  1. WLST環境を入力します。

    $OH/common/bin/wlst.sh
    
  2. 管理サーバーに接続します。

    connect()
    
  3. ドメイン・ランタイムの場所に移動します。

    domainRuntime()
    
  4. テストSPモジュールを有効にするには、次のWLSTコマンドを実行します。

    configureTestSPEngine("true")
    
  5. テストSPモジュールを無効にするには、次のWLSTコマンドを実行します。

    configureTestSPEngine("false")
    

注意:

本番環境では、テストSPモジュールを無効にする必要があります。

テスト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.7 デフォルト・アイデンティティ・プロビジョニング・プラグインの使用

11gリリース2 (11.1.2.2)が提供するプラグインを使用すると、フェデレーテッドSSO操作時に存在しないアイデンティティを必要に応じてプロビジョニングできます。

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

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

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

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

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

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

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

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

ユーザーは、IdPパートナに関連付けられたアイデンティティ・ストア内にプロビジョニングされます。

次の項で説明するように、プラグインのプロビジョニングで使用される属性のリストを指定できます。

33.7.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.7.4 カスタム・プロビジョニング・プラグインへの切替え

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

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

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

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

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

アイデンティティ・プロバイダ検出は、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.8.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.8.2 カスタムIdP検出サービスの作成

リモートでデプロイされたカスタム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検出サービス・ページの例を次に示します。このページでは、ユーザーがアイデンティティ・プロバイダを(プロバイダIDのリストhttp://idp1.com, http://idp2.com, http://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.8.3 IdP検出サービスの使用の無効化

IdP検出サービスの使用を停止するようにIdentity Federationを構成するには、次の手順に従います。

  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.9 フェデレーション・ユーザー自己登録モジュールの構成

Identity Federationがサービス・プロバイダ(SP)モードで動作している場合、LDAPディレクトリ内のローカル・ユーザー・レコードにユーザー・アサーションがマップされ、フェデレーテッド・シングル・サインオンが完了します。フェデレーションSSO操作を実行するユーザーのローカル・アカウントが存在しないためにマッピングが失敗した場合に、ユーザー自己登録フローを起動してユーザーがローカルにアカウントを作成できるようにIdentity Federationを構成できます。

実行時にアサーション・マッピング操作に失敗した場合に、自己登録が有効な場合は、ユーザー自己登録フレームは次のことを実行します。

  • 自己登録ページにユーザーをリダイレクトします。

  • 自己登録ページには次のフィールドがあります。

    • username

    • password

    • confirm password

    • first name

    • last name

    • email address

    これらのフィールドには、アサーションからのデータを事前に移入しておくことができます。また、アサーション・マッピング処理で使用されるフィールドを編集することはできません。セキュリティ上の理由により、アサーション・マッピング操作で使用する情報をユーザーが変更することはできません。

  • ユーザーがアカウントを作成すると、フェデレーションSSOフローが再開され、Access Managerセッションが作成されます。この時点で、ユーザーは保護されたリソースにリダイレクトされます。

ユーザー自己登録モジュールを有効または無効にするには、次の手順に従います。

  1. WLST環境を入力します。

    $OH/common/bin/wlst.sh
    
  2. 管理サーバーに接続します。

    connect()
    
  3. ドメイン・ランタイムの場所に移動します。

    domainRuntime()
    
  4. ユーザー自己登録モジュールを有効にするには、次のWLSTコマンドを実行します。

    putBooleanProperty("/fedserverconfig/userregistrationenabled", "true")
            putStringProperty("/fedserverconfig/userregistrationurl", "/oamfed/registration.jsp")
    
  5. ユーザー自己登録モジュールを無効にするには、次のWLSTコマンドを実行します。

    putBooleanProperty("/fedserverconfig/userregistrationenabled", "false")
            putStringProperty("/fedserverconfig/userregistrationurl", "/oamfed/registration.jsp")
    

アサーションに含まれるデータが自己登録ページの各フィールドに事前に移入されるようにIdentity Federationを構成できます。デフォルトでは、自己登録ページのそれらのフィールドは、次の内容に基づいて移入されます。

  • firstname: Identity Federationは、アサーションに含まれるfirstname属性またはgivenname属性のいずれかを使用します。userregistrationfirstnameattr構成プロパティには、このフィールドの移入時に使用されるカンマ区切り属性のリストを指定します。デフォルトでは、このフィールドにはfirstname,givennameが設定されます。

  • last name: Identity Federationは、アサーションに含まれるlastname属性またはsn属性のいずれかを使用します。userregistrationlastnameattr構成プロパティには、このフィールドの移入時に使用されるカンマ区切り属性のリストを指定します。デフォルトでは、この設定にはlastname,snが設定されます。

  • email address: Identity Federationは、アサーションに含まれるmail属性またはアサーションの名前ID (fed.nameidvalueで参照される)のいずれかを使用します。userregistrationemailattr構成プロパティには、このフィールドの移入時に使用されるカンマ区切り属性のリストを指定します。デフォルトでは、この設定にはmail,fed.nameidvalueが設定されます。

  • username: Identity Federationは、アサーション属性を使用してこのフィールドに移入するように構成されていません。userregistrationusernameattr構成プロパティには、このフィールドの移入時に使用されるカンマ区切り属性のリストを指定します。デフォルトでは、この設定は空です。

アサーションの属性または名前IDが欠落している場合、フィールドは空になります。

userregistrationfirstnameattr、userregistrationlastnameattr、userregistrationemailattrおよびuserregistrationusernameattrの各プロパティを構成する手順

  1. WLST環境を入力します。

    $OH/common/bin/wlst.sh
    
  2. 管理サーバーに接続します。

    connect()
    
  3. ドメイン・ランタイムの場所に移動します。

    domainRuntime()
    
  4. first nameフィールドのルールを設定するには、次のWLSTコマンドを実行します。

    putStringProperty("/fedserverconfig/userregistrationfirstnameattr", "firstname,givenname")
    
  5. last nameフィールドのルールを設定するには、次のWLSTコマンドを実行します。

    putStringProperty("/fedserverconfig/userregistrationlastnameattr", "lastname,sn")
    
  6. email addressフィールドのルールを設定するには、次のWLSTコマンドを実行します。

    putStringProperty("/fedserverconfig/userregistrationemailattr", "mail,fed.nameidvalue")
    
  7. usernameフィールドのルールを設定するには、次のWLSTコマンドを実行します。

    putStringProperty("/fedserverconfig/userregistrationusernameattr", "uid,fed.nameidvalue")