ヘッダーをスキップ
Oracle Fusion Middlewareリリース・ノート
11gリリース1(11.1.1) for Linux x86-64
B55934-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

21 Oracle Identity Federation

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

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

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

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

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

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

{SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M= 

21.1.2 SSLモードのOracle Identity Federation HAに関する考慮事項

相互にミラー化されている2つ以上のOracle Identity Federationサーバーがあり、フロントエンドにロード・バランサがある高可用性環境でSSLを設定する場合、次の2つの方法があります。

  • SSL接続がユーザーとロード・バランサの間をつなぐように、ロード・バランサでSSLを構成します。この場合、ロード・バランサによって使用されるキーストアおよび証明書には、ロード・バランサのアドレスを参照するCNが含まれます。

    ロード・バランサとWLS/Oracle Identity Federation間の通信では、SSLの使用は任意です(SSLを使用する場合、Oracle WebLogic Serverでは、キーストアおよび証明書がロード・バランサによって信頼されているかぎり、どのキーストアや証明書でも使用できます)。

  • Oracle Identity FederationサーバーでSSLが構成されているため、SSL接続はユーザーとOracle Identity Federationサーバー間のものです。この場合、ユーザーがロード・バランサのホスト名を使用して接続するため、Oracle WebLogic Server/Oracle Identity Federationのキーストアおよび証明書のCNはロード・バランサのアドレスを参照する必要があり、証明書CNがロード・バランサのアドレスと一致している必要があります。

    つまり、ユーザーに接続されるSSLエンドポイント(ロード・バランサまたはOracle WebLogic Server/Oracle Identity Federation)のキーストアおよび証明書には、ロード・バランサのホスト名に設定されたCNが含まれる必要があります。ユーザーは、そのアドレスを使用してOracle Identity Federationに接続するためです。

21.1.3 IDPPROVIDEDNAMEIDVALUEでデータベース列が短すぎるエラー

問題

セッションおよびメッセージ・データ・ストアにデータベース・ストアを使用するようOracle Identity Federationが構成されている場合、IDPPROVIDEDNAMEIDが200文字より長いと、次のエラーが表示されます。

 ORA-12899: value too large for column
"WDO_OIF"."ORAFEDTMPPROVIDERFED"."IDPPROVIDEDNAMEIDVALUE" (actual: 240,
maximum: 200)\n]

回避方法

表ORAFEDTMPPROVIDERFEDを変更してidpProvidedNameIDValueの列サイズを240に上げてください。

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

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

21.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に追加します。

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

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

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

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

「フェデレーションの編集」ページで、リモートWS-Fedサービス・プロバイダのOracle Identity Federation (OIF)設定には、「SSOトークン・タイプ」と呼ばれるプロパティが含まれます。「IdP共通設定」ページから値を継承することも、これをここで上書きすることもできます。OIF設定に表示されているプロパティの数は、「SSOトークン・タイプ」の値によって異なります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

問題

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

解決策

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

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

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

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

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

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

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

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


注意:

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


21.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である場合に関する項

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

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


注意:

Oracle Identity FederationとOracle Access Manager 11gの統合に関するドキュメントの訂正箇所および他のリリース・ノートは、「Oracle Access Manager」を参照してください。


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

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

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


注意:

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


21.3.2 Oracle Identity Federationのデプロイに関するドキュメントの訂正箇所

3.2.2.2項「Oracle Single Sign-OnとOHSの統合」に含まれる次の一連の手順を置き換えてください。

$AS_INST/config/OHS/$OHS_NAME/disabled/mod_osso.conf$AS_INST/config/OHS/$OHS_NAME/moduleconfにコピーします。OHSの起動時に、moduleconfディレクトリ内のすべてのファイルが読み込まれます。

$AS_INST/config/OHS/$OHS_NAME/moduleconf/mod_osso.confファイルを開き、作成後に次のOHS configディレクトリにコピーされたOracle Single Sign-On構成ファイルを参照するように、OssoConfigFileディレクティブを設定します。

OssoConfigFile ${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/${COMPONENT_NAME}/oif.server.com.osso.conf

正しいテキストは次のとおりです。

$AS_INST/config/OHS/$OHS_NAME/disabled/mod_osso.conf$AS_INST/config/OHS/$OHS_NAME/moduleconfにコピーします。OHSの起動時に、moduleconfディレクトリ内のすべてのファイルが読み込まれます。

$AS_INST/config/OHS/$OHS_NAME/moduleconf/mod_osso.confファイルを開きます。作成後に次のOHS configディレクトリにコピーされたOracle Single Sign-On構成ファイルを参照するように、OssoConfigFileディレクティブを設定します。

OssoConfigFile ${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/ ${COMPONENT_NAME}/oif.server.com.osso.conf

Location要素を介して、Oracle SSOサーバーで保護する/fed/user/authnosso URLを追加します。

mod_osso.confの例は次のようになります。

LoadModule osso_module ${ORACLE_HOME}/ohs/modules/mod_osso.so
 
<IfModule mod_osso.c>
    OssoIpCheck off
    OssoIdleTimeout off
    OssoConfigFile ${ORACLE_INSTANCE}/config/${COMPONENT_TYPE}/
    ${COMPONENT_NAME}/oif.server.com.osso.conf
 
    <Location /fed/user/authnosso>
       require valid-user
       AuthType Osso
    </Location>
</IfModule> 

21.3.3 セキュリティおよび信頼の構成に関するドキュメントの訂正箇所

5.10.3項「セキュリティおよび信頼 - 信頼性のあるCAおよびCRL」に含まれる次の文を変更してください。

「証明書検証ストアが有効化されている場合、Oracle Identity Federationでは、これを使用して受信メッセージの署名検証が必要な証明書が検証されます。」

正しい文は次のとおりです。

「証明書検証ストアが有効化されている場合、Oracle Identity Federationでは、これを使用してSAML/WSフェデレーション受信メッセージの署名検証が必要な証明書が検証されます。」

21.3.4 SSL構成の追加の手順

8.2.2項「SSLクライアントとしてのOracle Identity Federationの構成」に、次の下位項目を追加してください。この追加項目は、管理サーバーおよびOracle Identity Federationをホストする管理対象サーバーに対してSSLが有効化された後も、引き続きFusion Middleware ControlによってOracle Identity Federationサーバーが管理されることを確実にするための手順を示すものです。

Fusion Middleware ControlによるOracle Identity Federationターゲットの管理を確実にする方法

次の手順を行います。

  1. $INSTANCE_HOME/EMAGENT/EMAGENT/sysman/emd/targets.xmlを探します。

    'serviceURL'プロパティのプロトコルを正しいプロトコルに変更します。Oracle Identity Federationターゲットが(ホストとoracle_emd以外に)複数ある場合は、各ターゲットの'serviceURL'を変更する必要があります。

  2. $INSTANCE_HOME/EMAGENT/EMAGENT/sysman/config/emd.propertiesを探します。

    必要に応じて、'REPOSITORY_URL'のプロトコルを正しいプロトコルに更新します。EMエージェントは、このプロパティを使用してFusion Middleware Controlに接続します。

  3. 次のコマンドを使用してEMエージェントを停止します。

    $INSTANCE_HOME/bin/opmnctl stopproc ias-component=EMAGNET
    
  4. 次のコマンドを使用してEMエージェントを保護します。

    $INSTANCE_HOME/EMAGENT/EMAGENT/bin/emctl secure fmagent -admin_host
    <host> -admin_port <port> -admin_user <username> [-admin_pwd <pwd>]
    
  5. 次のコマンドを使用してEMエージェントを再起動します。

    $INSTANCE_HOME/bin/opmnctl startproc ias-component=EMAGNET
    

21.3.5 診断ログのParseExceptionメッセージ

インストール後、構成アシスタントでは、MBeansを使用してOracle Identity Federationサーバーへの大量の構成の更新が実行されます。このサーバーへの通知が行われるように、別のタスクによって、構成ファイルが変更されているかどうかが定期的にチェックされます。

この手順の実行中に解析エラーが発生すると、診断ログ・ファイルに次のようなメッセージが記録されます。

$DOMAIN_HOME/servers/wls_oif1/logs/wls_oif1-diagnostic.log
.
[org.xml.sax.SAXParseException: XML document structures must start and end
within the same entity.]
at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalExcept
ion(AbstractUnmarshallerImpl.java:315)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmar
shalException(UnmarshallerImpl.java:514)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
UnmarshallerImpl.java:215)
at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(U
nmarshallerImpl.java:184)
at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnm
arshallerImpl.java:137)
at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnm
arshallerImpl.java:184)
at
oracle.as.config.persistence.jaxb.JAXBXmlPersistenceManagerImpl.load(
JAXBXmlPersistenceManagerImpl.java:156)
... 10 more
Caused by: org.xml.sax.SAXParseException: XML document structures must start
and
 end within the same entity.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAX
ParseException(ErrorHandlerWrapper.java:195)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalErro
r(ErrorHandlerWrapper.java:174)
.

Oracle Identity Federationサーバーが稼働している(エラーなしで/fed/idp/metadataにアクセスできる)場合、このメッセージは無害で、サーバーの安定性に影響しません。構成の変更は正常に実行され、すべてのサーバーに変更が通知されます。

21.3.6 Oracle Access Managerと統合されている場合の再認証の要求

Oracle Access Managerと統合されたOracle Identity Federationのデプロイに関する項に次の注意を追加してください。


注意:

Oracle Access Manager 10g認証エンジンと統合した場合、Oracle Identity Federationでは、資格証明をユーザーに再要求する機能がサポートされません。このため、Oracle Identity Federationでは、再認証を要求する必要があるユース・ケースをサポートできません。

たとえば、ForceAuthn="true"AuthnRequestがSPからOracle Identity Federation IdPに送信され、Oracle Identity FederationがOracle Access Managerと統合されている場合、ForceAuthnフラグは無視されます。


21.3.7 サポートされているOracle Access Manager 10gのバージョン

Oracle Access Manager 10gサーバーと統合される場合、Oracle Identity FederationはOracle Access Managerバージョン10.1.4.3をサポートします。

認証エンジンとしてのOracle Access Managerの統合に関する項で、「要件の検証」という見出しの下で、コンポーネントのバージョンを検証する最初のステップを次のように変更してください。

  1. Oracle Access Managerサーバーのバージョンが10.1.4.3であることを確認します。

21.3.8 OpenID構成の追加の手順

OpenID IdPのプロパティの構成に関する項には、即時利用可能なOracle Identity Federation OpenIDプロバイダの有効化方法が記載されています。

また、外部OpenIDプロバイダを構成することにより、Oracle Identity Federationがリライイング・パーティ(RP/SP)として機能し、外部リソースがOpenIDプロバイダ(OP)として機能するようにすることもできます。外部OpenIDプロバイダの例にはGoogleやYahooなどがあります。

次の手順は、外部OpenIDプロバイダを構成する方法を示します。

  1. Oracle Enterprise Manager Fusion Middleware Controlにログインします。

  2. Oracle Identity Federationインスタンスにナビゲートします。

  3. 「管理」「フェデレーション」を選択します。

  4. 「追加」をクリックして新しいOpenIDプロバイダを追加します。

  5. ポップアップ・ボックスで、「プロバイダの手動追加」を選択します。

  6. 次の形式のURLを使用してプロバイダIDを入力します。

    http://node123.us.example.com:7777/fed/idp
    
  7. プロトコル・バージョンとして「OpenID2.0」を選択します。

  8. プロバイダ・タイプとして「アイデンティティ・プロバイダ」を選択します。

  9. 「OK」をクリックし、プロバイダを作成します。

  10. 新しいプロバイダを編集します。次の形式でプロバイダの検出URLを入力します。

    http://node123.us.example.com:7777/fed/idp
    

    また、IdPがOpenID検出をサポートしていない場合は、プロバイダのOpenIDエンドポイントURLを入力します。

  11. 「適用」をクリックし、編集をコミットします。

21.3.9 Oracle Identity Federation MBeanのドキュメントの訂正箇所

Oracle Identity Federation MBeanへのアクセスに関する項で、MBean名が表A-1およびサンプル・コード内で「Oracle Identity FederationConfigMBean」と記載されていますが、これらは「OIFConfigMBean」に修正する必要があります。