ヘッダーをスキップ
Oracle Fusion Middlewareリリース・ノート
11gリリース1(11.1.1) for AIX Based Systems(64-Bit)
B55935-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

27 Oracle Identity Federation

この章では、Oracle Identity Federationに関連する問題について説明します。内容は次のとおりです。

27.1 一般的な問題および回避方法

この項では、一般的な問題および回避方法について説明します。内容は次のとおりです。

27.1.1 認証エンジン用データベース表はbase64形式である必要がある

データベース表を認証エンジンとして使用し、パスワードがMD5またはSHAのいずれかでハッシュされて格納されている場合、base64形式である必要があります。

ハッシュされたパスワードはbase64でエンコードされた形式であるか、{SHA}または{MD5}の接頭辞を持ちます。次に例を示します。

{SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M=

27.2 構成の問題および回避方法

この項では、構成に関する問題およびその回避方法について説明します。内容は次のとおりです。

27.2.1 SOAとOIFが同じドメインにある場合のWLST環境変数

サイトで同じドメインにOracle SOA SuiteとOracle Identity Federationが含まれている場合、『Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation』WLSTの設定手順は、WLSTでOracle Identity Federationコマンドを正常に実行するには不十分です。

これは、IdMドメインをインストールし、Oracle SOAインストールで拡張した場合に起こります。SOAインストールによってORACLE_HOME環境変数が変更されます。Oracle Identity FederationのWLST環境はORACLE_HOMEのIdM値に依存するため、これによって環境が損われます。

WLSTコマンドを使用できるようにするには、次の手順に従います。

  1. 『Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation』のWLST環境の設定に関する項に記載されている手順を実行します。

  2. OIF-ORACLE_HOME/fed/script/*.pyWL_HOME/common/wlstへコピーします。

  3. CLASSPATH環境変数をOIF-ORACLE_HOME/fed/scriptsに追加します。

27.2.2 Oracle Virtual DirectoryにはLSAアダプタが必要

Oracle Virtual DirectoryをOracle Identity Federationのユーザー・ストアまたは認証エンジンとして使用するには、ローカル・ストレージ・アダプタを構成し、インストール時またはインストール後の構成時に必要に応じてコンテキスト・ルートを作成する必要があります。

このタスクの詳細は、『Oracle Fusion Middleware Oracle Virtual Directory管理者ガイド』の「Oracle Virtual Directoryアダプタの作成と構成」を参照してください。

27.2.3 リモートWSフェデレーションSPの設定は動的に変更される必要がある

フェデレーションの編集ページで、リモートWSフェデレーション・サービス・プロバイダのOracle Identity Federation(OIF)設定に「SSOトークン・タイプ」というプロパティが含まれています。IdP共通設定ページから値を継承するか、これをオーバーライドするかを選択できます。OIFの設定に表示されるプロパティの数は「SSOトークン・タイプ」の値に依存します。

「SSOトークン・タイプ」を別の値でオーバーライドする(SAML2.0からSAML1.1へ変更するなど)よう選択した場合、OIFの設定に表示されるプロパティの数は、「適用」ボタンをクリックするまで変わりません。

また、「デフォルト名前IDフォーマット」の値を永続識別子または一時/単発識別子にオーバーライドして「SSOトークン・タイプ」の値をSAML2.0からSAML1.1またはSAML1.0に変更した場合、「デフォルト名前IDフォーマット」の値が空になることに注意してください。続行するには、このプロパティをリストの有効な値に再設定します。

27.2.4 WSフェデレーションの信頼できるサービス・プロバイダの作成時に必要なプロパティ

WSフェデレーションの信頼できるサービス・プロバイダを作成する場合、次の手順で「Microsoft Webブラウザ・フェデレーテッド・サインオンの使用」に値を設定する必要があります。

  1. Fusion Middleware Controlで、「フェデレーション」「フェデレーションの編集」と移動します。

  2. WSフェデレーションの信頼できるサービス・プロバイダを新規に作成するよう選択し、「編集」をクリックします。

  3. 「信頼できるプロバイダ設定」セクションでチェック・ボックスを選択または選択解除して「Microsoft Webブラウザ・フェデレーテッド・サインオンの使用」に値を設定します。

  4. 「適用」をクリックします。

27.2.5 レコードの削除後フェデレーテッド・アイデンティティ表がリフレッシュされない

フェデレーション・ストアがXMLベースの場合、レコードの削除後、そのレコードがフェデレーテッド・アイデンティティ表に表示され続けます。

次のシナリオで問題について説明します。

  1. フェデレーション・データ・ストアはXMLです。

  2. 「フェデレーテッド・アイデンティティによるユーザーのマップ」を使用してフェデレーテッドSSOを実行します。

  3. Fusion Middleware ControlでOracle Identity Federationインスタンスを特定し、「管理」「アイデンティティ」「フェデレーテッド・アイデンティティ」と移動します。

  4. 作成されたフェデレーション・レコードをクリックし、削除します。

削除後も、フェデレーテッド・レコードが表にあります。レコードの削除をさらに試みると、エラーになります。

回避方法は、「検索」をクリックして表を手動でリフレッシュすることです。

27.2.6 デフォルト認証スキームが保存されない

問題

この問題は、Fusion Middleware ControlでOracle Access Managerをサービス・プロバイダ統合モジュールとして構成した場合に起こります。スキーム(OIF-password-protectedなど)にデフォルトが設定されていますが、ラジオ・ボタンが無効なため、デフォルト認証スキームを設定できません。

解決策

優先使用するデフォルトの認証スキームを設定するには、次の手順に従います。

  1. 現在デフォルトとして設定されているが、無効なスキームの「作成」チェック・ボックスを選択します。

  2. 作成する認証スキームの「作成」チェック・ボックスを選択します。

  3. デフォルトとして設定するスキームのラジオ・ボタンをクリックします。

  4. スキームを作成しない場合のみステップ1のスキームの「作成」チェック・ボックスを選択解除します。

  5. ページで、すべての必要なプロパティを指定します。

  6. 「Oracle Access Managerの構成」ボタンをクリックして変更を適用します。

これで、デフォルト認証スキームが選択したものに設定されました。


注意:

また、認証スキームを削除する場合、デフォルト・スキームを削除しないようにしてください。スキームを削除する必要がある場合、削除前にデフォルトを別の認証スキームに変更します。

27.2.7 アーティファクト・プロファイルを使用して10gと11gのOracle Identity Federationが連携するよう構成

SAML 1.xプロトコルで、アーティファクト・プロファイルを使用して10g Oracle Identity Federationサーバーと11g Oracle Identity Federationサーバーを連携させるには、2つのサーバーの間にBasic認証またはクライアント証明書認証を設定する必要があります。

手順は次を参照してください。

  • 11gリリース1(11.1.1)の『Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation』のSOAPエンドポイントの保護に関する項

  • 10g(10.1.4.0.1)の『Oracle Identity Federation管理者ガイド』のOracle Identity FederationがSPである場合に関する項

27.3 ドキュメントの訂正箇所

この項では、『Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation』(部品番号E13400-01)の訂正箇所を示します。内容は次のとおりです。

27.3.1 間違ったSP統合エンジンのコード例

『Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation』のカスタマイズされたシングル・サインオン統合のサンプル統合モジュールに関する項には、domainapplication.jspの実装についての間違ったサンプル・コードが含まれています。

このコードを次の正しいコードに置き換えてください。

<%@page buffer="5" autoFlush="true" session="false"%>
<%@page language="java" import="java.net.*, java.util.*"%>
<%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "Thu, 29 Oct 1969 17:04:19 GMT");

Cookie[] cookies = request.getCookies();
String userid = null;
Date timeout = null;
for(int i = 0, size = (cookies != null ? cookies.length : 0); i < size; i++) {
   String name = cookies[i].getName();
   if ("spintegrationcookie".equals(name)){
      String value = cookies[i].getValue();
      StringTokenizer st = new StringTokenizer(value, "*");
      userid = st.nextToken();
      timeout = new Date(Long.parseLong(st.nextToken()));
      break;
   }
}
if (userid == null || userid.length() == 0) {
request.setAttribute("oracle.security.fed.sp.engineid", TEST_ENGINE_ID);
request.setAttribute("oracle.security.fed.sp.usedefault", Boolean.TRUE);
request.setAttribute("oracle.security.fed.sp.relaystate", "/engine/domainapplication.jsp");
request.getSession().getServletContext().getContext("/fed").getRequestDispatcher("
/sp/startsso").forward(request, response);
   return;
}
%>
Welcome <%=userid%>. You are logged until <%=timeout%>

27.3.2 間違ったログアウト・サービスのコード例

『Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation』のログアウト・サービスの1つ目の例に関する項には、logout.jspの実装についての間違ったサンプル・コードが含まれています。

このコードを次の正しいコードに置き換えてください。

<%@page buffer="5" autoFlush="true" session="false"%>
<%@page language="java" import="java.net.*"%>
<%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "Thu, 29 Oct 1969 17:04:19 GMT");

request.getSession().removeAttribute("feduserid");

request.setAttribute("oracle.security.fed.sp.engineid", TEST_ENGINE_ID);

request.getSession().getServletContext().getContext("/fed").getRequestDispatcher("
/user/logoutretsso").forward(request, response);
%>

ログアウト・サービスの2つ目の例に関する項には、domainlogout.jsp.jspの実装についての間違ったサンプル・コードが含まれています。

このコードを次の正しいコードに置き換えてください。

<%@page buffer="5" autoFlush="true" session="false"%>
<%@page language="java" import="java.net.*"%>
<%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "Thu, 29 Oct 1969 17:04:19 GMT");

Cookie cookie = new Cookie("spintegrationcookie", "");
cookie.setDomain(".us.oracle.com");
cookie.setPath("/");
cookie.setMaxAge(0);
response.addCookie(cookie);

request.setAttribute("oracle.security.fed.sp.engineid", TEST_ENGINE_ID);

request.getSession().getServletContext().getContext("/fed").getRequestDispatcher("
/user/logoutretsso").forward(request, response);
%>

27.3.3 SAML 1.xとWSフェデレーションに対するシングル・サインオンの設定に関する説明

『Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation』のSAML 1.xおよびWS-Federation用のシングル・サインオンの設定に関する項にあるSAML 1.xの必須属性の入力手順には、明確な説明が必要です。

この手順の4dを次のように読み替えます。

「SSOプロバイダIDパラメータの開始」フィールドに、ピア・プロバイダでサービス・プロバイダのプロバイダIDの識別に使用するパラメータの名前を入力します。Oracle Identity Federationピア・アイデンティティ・プロバイダの場合、パラメータ名はprovideridです。

このすぐ後のステップ4eに次の追加をします。

たとえば、Oracle Identity Federationピア・アイデンティティ・プロバイダは、前述のステップb、c、dで入力した構成を使用する次の「SSO URLの開始」を持つ場合があります。

http://saml.example.com/fed/idp/initiatesso?TARGET=<protected-resource-url>&providerid=<sp-provider-id-uri>

27.3.4 管理対象サーバーの起動スクリプト名とWindowsでの手順

『Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation』のSP統合モジュールとしてのOracle Access Managerの統合に関する項で、Oracle WebLogic Server環境の更新手順には、次のスクリプトを使用するように記載されています。

$DOMAIN/bin/startManagedServer.sh

このスクリプト名は正しくありません。正しいスクリプト名は次のとおりです。

startManagedWebLogic.sh(Linuxの場合)

startManagedWebLogic.cmd(Windowsの場合)

また、Linuxの手順のみ記載されています。Windowsには次のテキストが必要です。

  • $DOMAIN/bin/startManagedWebLogic.cmdファイルを開きます。次の追加を行います。

    set PATH=%PATH%;AccessSDK_InstallDir/oblix/lib
    
  • (管理コンソールではなく)コマンドラインから管理対象サーバーを起動します。

27.3.5 間違ったURLエラー・プロパティ名

『Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation』のエラー発生時のターゲットURLへのリダイレクトに関する項に、次の記載があります。

serverconfig構成グループの文字列プロパティornnnを、Oracle Identity Federationからエラーが返された場合のユーザーのリダイレクト先のURLに設定します。ここで、nnnは401、404または500です(つまり、or401、or404およびor500プロパティを設定できます)。

これを次のものに置き換えます。

serverconfig構成グループの文字列プロパティまたはurlerrornnnを、Oracle Identity Federationからエラーが返された場合のユーザーのリダイレクト先のURLに設定します。ここで、nnnは401、404または500です(つまり、urlerror401、urlerror404およびurlerror500プロパティを設定できます)。

27.3.6 Sun Oneプロキシ・サーバーの構成

Sun Oneプロキシ・サーバーのOracle Identity Federation用構成の詳細は、『Oracle Fusion Middleware Using Web Server Plug-Ins with Oracle WebLogic Server』(部品番号E14395-01)のobj.confファイルの変更に関するガイドラインを参照してください。

27.3.7 センサーの重みのプロパティの設定

『Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation』のセンサーの重みに関する項は、センサーの重みを設定する手順に誤植があります。

"-oracle.dms.sensors=level"を"-Doracle.dms.sensors=level"と読み替えます。この変更は2箇所行う必要があることに注意してください。

27.3.8 キーストアと秘密鍵に対する別々のパスワードはサポートされない

Oracle Identity Federationでは、署名と暗号化キーストアに対する1つのパスワードの構成のみサポートされ、そのパスワードを使用してキーストアと秘密鍵の両方を開きます。これは、キーストアが異なるストア・パスワードとキー・パスワードで構成されている場合、Oracle Identity Federationで秘密鍵にアクセスしようとすると、エラーになるということです。

このエラーを回避するには、構成されているキーの別名の秘密鍵パスワードをキーストア・パスワードと同じにします。


注意:

Oracle Identity Federation 11gリリース1(11.1.1)では、キーストア・パスワードに合せてキー・パスワードを変更する場合、古いキーストアやウォレットを構成から削除する必要があります。