この章では、Oracle Identity Federationに関連する問題について説明します。内容は次のとおりです。
この項では、一般的な問題および回避方法について説明します。内容は次のとおりです。
データベース表を認証エンジンとして使用し、パスワードがMD5またはSHAのいずれかでハッシュされて格納されている場合、base64形式である必要があります。
ハッシュされたパスワードはbase64でエンコードされた形式であるか、{SHA}または{MD5}の接頭辞を持ちます。次に例を示します。
{SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M=
相互にミラー化されている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に接続するためです。
問題
セッションおよびメッセージ・データ・ストアにデータベース・ストアを使用するようOracle Identity Federationが構成されている場合、IDPPROVIDEDNAMEID
が200文字より長いと、次のエラーが表示されます。
ORA-12899: value too large for column "WDO_OIF"."ORAFEDTMPPROVIDERFED"."IDPPROVIDEDNAMEIDVALUE" (actual: 240, maximum: 200)\n]
回避方法
表ORAFEDTMPPROVIDERFEDを変更してidpProvidedNameIDValueの列サイズを240に上げてください。
この項では、構成に関する問題およびその回避方法について説明します。内容は次のとおりです。
サイトで同じドメインに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
コマンドを使用できるようにするには、次の手順に従います。
『Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation』のWLST環境の設定に関する項に記載されている手順を実行します。
OIF-ORACLE_HOME/fed/script/*.py
をWL_HOME/common/wlst
へコピーします。
CLASSPATH
環境変数をOIF-ORACLE_HOME/fed/scripts
に追加します。
Oracle Virtual DirectoryをOracle Identity Federationのユーザー・ストアまたは認証エンジンとして使用するには、ローカル・ストレージ・アダプタを構成し、インストール時またはインストール後の構成時に必要に応じてコンテキスト・ルートを作成する必要があります。
このタスクの詳細は、『Oracle Fusion Middleware Oracle Virtual Directory管理者ガイド』の「Oracle Virtual Directoryアダプタの作成と構成」を参照してください。
「フェデレーションの編集」ページで、リモート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フォーマット」の値が空になることに注意してください。続行するには、このプロパティをリストの有効な値に再設定します。
WSフェデレーションの信頼できるサービス・プロバイダを作成する場合、次の手順で「Microsoft Webブラウザ・フェデレーテッド・サインオンの使用」に値を設定する必要があります。
Fusion Middleware Controlで、「フェデレーション」→「フェデレーションの編集」と移動します。
WSフェデレーションの信頼できるサービス・プロバイダを新規に作成するよう選択し、「編集」をクリックします。
「信頼できるプロバイダ設定」セクションでチェック・ボックスを選択または選択解除して「Microsoft Webブラウザ・フェデレーテッド・サインオンの使用」に値を設定します。
「適用」をクリックします。
フェデレーション・ストアがXMLベースの場合、レコードの削除後、そのレコードがフェデレーテッド・アイデンティティ表に表示され続けます。
次のシナリオで問題について説明します。
フェデレーション・データ・ストアはXMLです。
「フェデレーテッド・アイデンティティによるユーザーのマップ」を使用してフェデレーテッドSSOを実行します。
Fusion Middleware ControlでOracle Identity Federationインスタンスを特定し、「管理」→「アイデンティティ」→「フェデレーテッド・アイデンティティ」と移動します。
作成されたフェデレーション・レコードをクリックし、削除します。
削除後も、フェデレーテッド・レコードが表にあります。レコードの削除をさらに試みると、エラーになります。
回避方法は、「検索」をクリックして表を手動でリフレッシュすることです。
問題
この問題は、Fusion Middleware ControlでOracle Access Managerをサービス・プロバイダ統合モジュールとして構成した場合に起こります。スキーム(OIF-password-protected
など)にデフォルトが設定されていますが、ラジオ・ボタンが無効なため、デフォルト認証スキームを設定できません。
解決策
優先使用するデフォルトの認証スキームを設定するには、次の手順に従います。
現在デフォルトとして設定されているが、無効なスキームの「作成」チェック・ボックスを選択します。
作成する認証スキームの「作成」チェック・ボックスを選択します。
デフォルトとして設定するスキームのラジオ・ボタンをクリックします。
スキームを作成しない場合のみステップ1のスキームの「作成」チェック・ボックスを選択解除します。
ページで、すべての必要なプロパティを指定します。
「Oracle Access Managerの構成」ボタンをクリックして変更を適用します。
これで、デフォルト認証スキームが選択したものに設定されました。
注意: また、認証スキームを削除する場合、デフォルト・スキームを削除しないようにしてください。スキームを削除する必要がある場合、削除前にデフォルトを別の認証スキームに変更します。 |
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である場合に関する項
この項では、Oracle Fusion Middleware Oracle Identity Federation管理者ガイド(部品番号E13400-01)の訂正箇所を示します。内容は次のとおりです。
注意: Oracle Identity FederationとOracle Access Manager 11gの統合に関するドキュメントの訂正箇所および他のリリース・ノートは、「Oracle Access Manager」を参照してください。 |
Oracle Identity Federationでは、署名と暗号化キーストアに対する1つのパスワードの構成のみサポートされ、そのパスワードを使用してキーストアと秘密鍵の両方を開きます。これは、キーストアが異なるストア・パスワードとキー・パスワードで構成されている場合、Oracle Identity Federationで秘密鍵にアクセスしようとすると、エラーになるということです。
このエラーを回避するには、構成されているキーの別名の秘密鍵パスワードをキーストア・パスワードと同じにします。
注意: Oracle Identity Federation 11gリリース1(11.1.1)では、キーストア・パスワードに合せてキー・パスワードを変更する場合、古いキーストアやウォレットを構成から削除する必要があります。 |
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>
5.10.3項「セキュリティおよび信頼 - 信頼性のあるCAおよびCRL」に含まれる次の文を変更してください。
「証明書検証ストアが有効化されている場合、Oracle Identity Federationでは、これを使用して受信メッセージの署名検証が必要な証明書が検証されます。」
正しい文は次のとおりです。
「証明書検証ストアが有効化されている場合、Oracle Identity Federationでは、これを使用してSAML/WSフェデレーション受信メッセージの署名検証が必要な証明書が検証されます。」
8.2.2項「SSLクライアントとしてのOracle Identity Federationの構成」に、次の下位項目を追加してください。この追加項目は、管理サーバーおよびOracle Identity Federationをホストする管理対象サーバーに対してSSLが有効化された後も、引き続きFusion Middleware ControlによってOracle Identity Federationサーバーが管理されることを確実にするための手順を示すものです。
Fusion Middleware ControlによるOracle Identity Federationターゲットの管理を確実にする方法
次の手順を行います。
$INSTANCE_HOME/EMAGENT/EMAGENT/sysman/emd/targets.xmlを探します。
'serviceURL'プロパティのプロトコルを正しいプロトコルに変更します。Oracle Identity Federationターゲットが(ホストとoracle_emd以外に)複数ある場合は、各ターゲットの'serviceURL'を変更する必要があります。
$INSTANCE_HOME/EMAGENT/EMAGENT/sysman/config/emd.propertiesを探します。
必要に応じて、'REPOSITORY_URL'のプロトコルを正しいプロトコルに更新します。EMエージェントは、このプロパティを使用してFusion Middleware Controlに接続します。
次のコマンドを使用してEMエージェントを停止します。
$INSTANCE_HOME/bin/opmnctl stopproc ias-component=EMAGNET
次のコマンドを使用してEMエージェントを保護します。
$INSTANCE_HOME/EMAGENT/EMAGENT/bin/emctl secure fmagent -admin_host <host> -admin_port <port> -admin_user <username> [-admin_pwd <pwd>]
次のコマンドを使用してEMエージェントを再起動します。
$INSTANCE_HOME/bin/opmnctl startproc ias-component=EMAGNET
インストール後、構成アシスタントでは、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
にアクセスできる)場合、このメッセージは無害で、サーバーの安定性に影響しません。構成の変更は正常に実行され、すべてのサーバーに変更が通知されます。
Oracle Access Managerと統合されたOracle Identity Federationのデプロイに関する項に次の注意を追加してください。
注意: Oracle Access Manager 10g認証エンジンと統合した場合、Oracle Identity Federationでは、資格証明をユーザーに再要求する機能がサポートされません。このため、Oracle Identity Federationでは、再認証を要求する必要があるユース・ケースをサポートできません。たとえば、 |
Oracle Access Manager 10gサーバーと統合される場合、Oracle Identity FederationはOracle Access Managerバージョン10.1.4.3をサポートします。
認証エンジンとしてのOracle Access Managerの統合に関する項で、「要件の検証」という見出しの下で、コンポーネントのバージョンを検証する最初のステップを次のように変更してください。
Oracle Access Managerサーバーのバージョンが10.1.4.3であることを確認します。
OpenID IdPのプロパティの構成に関する項には、即時利用可能なOracle Identity Federation OpenIDプロバイダの有効化方法が記載されています。
また、外部OpenIDプロバイダを構成することにより、Oracle Identity Federationがリライイング・パーティ(RP/SP)として機能し、外部リソースがOpenIDプロバイダ(OP)として機能するようにすることもできます。外部OpenIDプロバイダの例にはGoogleやYahooなどがあります。
次の手順は、外部OpenIDプロバイダを構成する方法を示します。
Oracle Enterprise Manager Fusion Middleware Controlにログインします。
Oracle Identity Federationインスタンスにナビゲートします。
「管理」→「フェデレーション」を選択します。
「追加」をクリックして新しいOpenIDプロバイダを追加します。
ポップアップ・ボックスで、「プロバイダの手動追加」を選択します。
次の形式のURLを使用してプロバイダIDを入力します。
http://node123.us.example.com:7777/fed/idp
プロトコル・バージョンとして「OpenID2.0」を選択します。
プロバイダ・タイプとして「アイデンティティ・プロバイダ」を選択します。
「OK」をクリックし、プロバイダを作成します。
新しいプロバイダを編集します。次の形式でプロバイダの検出URLを入力します。
http://node123.us.example.com:7777/fed/idp
また、IdPがOpenID検出をサポートしていない場合は、プロバイダのOpenIDエンドポイントURLを入力します。
「適用」をクリックし、編集をコミットします。
Oracle Identity Federation MBeanへのアクセスに関する項で、MBean名が表A-1およびサンプル・コード内で「Oracle Identity FederationConfigMBean
」と記載されていますが、これらは「OIFConfigMBean
」に修正する必要があります。