33.1 OIFおよびSPでのテストSPアプリケーションの使用

この章で説明するのは、Oracle Identity Federation (OIF)/サービス・プロバイダ(SP)でテストSPアプリケーションを有効化して使用する方法ですが、これはOIFがSPで、フェデレーション承諾が設定されている場合に便利です。テストSPアプリケーションはWebベースのアプリケーションで、次のタスクを実行できます。
  • フェデレーションSSOフローのテスト
  • 指定されたアイデンティティ・プロバイダ(IdP)とのフェデレーションSSOの開始
  • IdPでの認証
  • マッピング・ルールが機能するかどうかの検証
  • IdPによって送信される属性、それらの属性の名付け方法、およびOIF/SPでの処理方法の確認
  • フェデレーション・トークンの表示(SAMLアサーションまたはOpenID SSOレスポンス)
  • フェデレーションSSOをロールアウトする前のSAML/OpenIDフローの問題の診断
  • OIFのSP機能のブラウザ経由での実装(OAMセッションは作成しない)
  • テストSP操作の結果とSAMLアサーション/OpenId SSOレスポンスの表示

33.1.1 テストSPエンジンの有効化

テストSPアプリケーションは、デフォルトで無効になっています。使用するには、アプリケーションを有効にする必要があります。

ノート:

テストSPアプリケーションは、使用が終了したら無効にする必要があります。

次のOIF WLSTコマンドを使用して、テストSPアプリケーションを有効にします:

  1. WLST環境を入力します。
    $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. WLS管理サーバーに接続します:
    connect()
  3. ドメイン・ランタイム・ブランチに移動します:
    doimanRuntime()
  4. テストSPエンジンを有効化します:
    configureTestSPEngine("true")

    ノート:

    configureTestSPEngine("false")コマンドを使用して、テストSPエンジンを無効にします。
  5. WLST環境を終了します:
    exit()

33.1.2 テストSPエンジンの使用

33.1.2.1 フェデレーションSSOフローの開始

フェデレーションSSOフローを開始するには、次のステップを実行します。
  1. ブラウザを使用したテストSPアプリケーションへの移動
  2. フェデレーションSSOを実行するIdPの選択
  3. 操作の開始

フェデレーションSSOを開始するには:

  1. 次のURLを使用して、テストSPアプリケーションにアクセスします:

    https://oam-runtime-host:oam-runtime-port/oamfed/user/testspsso

    テストSPアプリケーションには、フェデレーションを実行するIdPがリストされたドロップダウン・リストが表示されます。
  2. OIF/SPのIdPを選択するか、「デフォルト」を選択して、デフォルトのSSO IdPを使用します。

    フェデレーションSSOの開始

  3. 「SSOの開始」をクリックして、指定したIdPでのフェデレーションSSOをトリガーします。
    通常のフェデレーションSSO操作と同様に、IdPにリダイレクトされます。IdPでは、次のことが行われます:
    • ユーザーに資格証明のチャレンジが行われた後、SAML/OpenIDレスポンスが送信されます。
    • または、SAML/OpenIDレスポンスが送信されます(すでに認証されているか、エラーが発生したため)。

33.1.2.2 テストSP操作の結果の表示

IdPにより、SAMLアサーション/OpenIDレスポンスを使用してユーザーがOIF/SPにリダイレクトされると、サーバーではレスポンスが検証され、LDAPユーザー・レコードにマップされます。
フェデレーションSSO操作結果

テストSP操作の結果には、次の情報が表示されます。
  • 認証操作の結果。
  • アイデンティティ・ストア名、ユーザーDNおよびユーザーIDを含むレスポンスがマップされた正規のユーザーID。
  • 認証インスタント。
  • IdPパートナ名。
  • OAMセッションに格納されているSSOレスポンスの属性。
  • 復号化/デコードされたSSOレスポンス。

33.1.2.3 マッピングおよびレスポンス検証の問題の診断

IdPとOIF/SPの間のフェデレーションSSOが機能しない場合は、テストSPエンジンをOracle Access Manager (OAM)とともに使用して問題を診断します。次の問題を診断できます:

33.1.2.3.1 マッピングの問題
受信SSOアサーションをローカルのLDAPユーザー・レコードにマップできない場合、テストSPアプリケーションには次の情報が表示されます。
  • エラー・メッセージ
  • IdPから送信されるNameID/属性
  • IdPから送信される、NameID/属性を含むSSOメッセージ

次の例では、IdPおよびOIF/SPの管理者は、SAML 2.0の使用に同意しており、電子メール・アドレスでユーザーが識別されています。問題は、IdPでのAliceの電子メール・アドレスがalice.appleton@oralce.comであるのに、LDAPディレクトリのOIF/SPで使用されている電子メール・アドレスがalice@oracle.comであることです。
フェデレーションSSO操作の結果 - マッピングの問題

テストSPアプリケーションでは、フローの最後に、フェデレーションSSO操作の結果に次の情報が表示されます。
  • 認証操作が失敗したというメッセージ。
  • アサーションをローカル・ユーザー・レコードにマップできなかったというメッセージ。
  • アサーションおよびSAMLからデータを抽出したというメッセージ。
OIFログ・ファイルには、次のエラー・メッセージとSAMLメッセージが表示されます。
<Feb 28, 2014 7:18:05 AM PST> <Warning>
<oracle.security.fed.eventhandler.fed.profiles.sp.sso.assertion.Saml20AssertionProcessor>
<FED-15108> <User was not found during attribute based authentication using NameID mapping for name identifier: alice.appleton@oracle.com name identifier format :
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress and message :
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
Destination="http://adc00pcc.us.oracle.com:23002/oam/server/fed/sp/sso" ID="idaWfL5-
f37nhQWh0WWjHbobsVetM-" InResponseTo="id-hqkZGMV-wEO5-
CulpYxArIvr91Y14dA-WSRYZ8zP" IssueInstant="2014-02-28T15:18:05Z"
Version="2.0"><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:
entity">http://adc00peq.us.oracle.com:7499/fed/idp</saml:Issuer>
<samlp:Status><samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status><saml:Assertion
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="id-PoODBDUeoiSY4ajPCQ86yjZWkw-"
IssueInstant="2014-02-28T15:18:05Z" Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameidformat:
entity">http://adc00peq.us.oracle.com:7499/fed/idp</saml:Issuer>
<dsig:Signature xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><dsig:SignedInfo>
<dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"
/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<dsig:Reference URI="#id-PoOD-BDUeoiSY4ajPCQ86yjZWkw-"><dsig:Transforms>
<dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"
/><dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"
/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09
/xmldsig#sha1"/><dsig:DigestValue>X5ojFxrpBOS4klosM5jcBOF8Bqg=
</dsig:DigestValue></dsig:Reference></dsig:SignedInfo>
<dsig:SignatureValue>VJKJOBOowHZ4lVkHjX4w2YHi+0ZAa4ez
/+D+ketAQcOxxtwOZPcBYERwkMgazudMh0XEMbIkwsBTVwb4tX+uV327Gjlp1hXc0uYnm2n8mZfen9Ppru6jTES4N7PoD3mOpCfFEHBUJg118DihWGLfzBWw7LMLaN2A
</dsig:SignatureValue></dsig:Signature><saml:Subject><saml:NameID
Format="urn:oasis:names:tc:SAML:1.1:nameidformat:
emailAddress">alice.appleton@oracle.com</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData InResponseTo="id-hqkZGMV-wEO5-
CulpYxArIvr91Y14dA-WSRYZ8zP" NotOnOrAfter="2014-02-28T15:23:05Z" Recipient="http://adc00pcc.us.oracle.com:23002/oam/server/fed/sp/sso"/>
</saml:SubjectConVrmation></saml:Subject><saml:Conditions
NotBefore="2014-02-28T15:18:05Z" NotOnOrAfter="2014-02-28T15:23:05Z">
<saml:AudienceRestriction><saml:Audience>http://adc00pcc.us.oracle.com:23002
/oam/fed</saml:Audience></saml:AudienceRestriction></saml:Conditions>
<saml:AuthnStatement AuthnInstant="2014-02-28T15:18:05Z" SessionIndex="id-
2i7BY1gGnhukoBSDmrvkBIaG-NI-" SessionNotOnOrAfter="2014-02-28T16:18:05Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
</saml:AuthnContext></saml:AuthnStatement></saml:Assertion></samlp:Response>
33.1.2.3.2 レスポンス検証の問題
受信SSOアサーションを検証できない場合、テストSPアプリケーションには次の情報が表示されます。
  • エラー・メッセージ
  • IdPから送信されるSSOメッセージ

次の例では、IdPおよびOIF/SPの管理者はSAML 2.0の使用に同意していますが、IdPでは、OIF/SPでの要求に従ったアサーションへの署名が行われていません。


フェデレーションSSO操作の結果 - 検証の問題

テストSPアプリケーションでは、フローの最後に、フェデレーションSSO操作の結果に次の情報が表示されます:
  • 認証操作が失敗したというメッセージ。
  • アサーションを検証できなかったというメッセージ。
  • SAMLメッセージ。
OIFログ・ファイルには、次のエラー・メッセージとSAMLメッセージが表示されます。
<Feb 28, 2014 7:23:05 AM PST> <Error>
<oracle.security.fed.eventhandler.fed.profiles.utils.CheckUtils> <FEDSTS-18003>
<Assertion is not signed.>
<Feb 28, 2014 7:23:05 AM PST> <Error>
<oracle.security.fed.eventhandler.fed.profiles.sp.sso.v20.ProcessResponseEventHandler>
<FED-18012> <Assertion cannot be validated: <samlp:Response
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
Destination="http://adc00pcc.us.oracle.com:23002/oam/server/fed/sp/sso" ID="id-
De7M27k5CWpBsuGzgaxwHgwqV1g-" InResponseTo="id-fX4nHKLCMcAZjHvsKfCORDZLmIDcQMpVYjqmxQb"
IssueInstant="2014-02-28T15:23:05Z"
Version="2.0"><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:
entity">http://adc00peq.us.oracle.com:7499/fed/idp</saml:Issuer>
<samlp:Status><samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status><saml:Assertion
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="id-EAdQSXjroyYNuuWbaBWZVdBtu8-"
IssueInstant="2014-02-28T15:23:05Z" Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameidformat:
entity">http://adc00peq.us.oracle.com:7499/fed/idp</saml:Issuer>
<saml:Subject><saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameidformat:
emailAddress">alice@oracle.com</saml:NameID><saml:SubjectConfirmation
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"><saml:SubjectConfirmationData
InResponseTo="id-fX4nHKLCMcA-ZjHvsKfCORDZLmIDcQMpVYjqmxQb"
NotOnOrAfter="2014-02-28T15:28:05Z"
Recipient="http://adc00pcc.us.oracle.com:23002/oam/server/fed/sp/sso"/>
</saml:SubjectConfirmation></saml:Subject><saml:Conditions
NotBefore="2014-02-28T15:23:05Z" NotOnOrAfter="2014-02-28T15:28:05Z">
<saml:AudienceRestriction><saml:Audience>http://adc00pcc.us.oracle.com:23002
/oam/fed</saml:Audience></saml:AudienceRestriction></saml:Conditions>
<saml:AuthnStatement AuthnInstant="2014-02-28T15:23:05Z" SessionIndex="id--
0QWpaU2AV-L7UpNvLH5Bn7Z5Xk-" SessionNotOnOrAfter="2014-02-28T16:23:05Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
</saml:AuthnContext></saml:AuthnStatement></saml:Assertion></samlp:Response>