ADFS で 2 つの証明書利用者信頼 (App1、App2) を構成しました。SAML Web フローに従ってユーザーを認証した後、最終的に App1 は SAML トークン (SamlToken1) を取得しました。
現在の状況では、ユーザーのブラウザーはファイアウォールが原因で App2 にアクセスできないため、App2 は SAML トークンを取得できません。
私が考えた解決策は、提供された issuedtokenmixedasymmetricbasic256sha256 エンドポイント ADFS を介して WS-Trust を使用することでした。
手順 1. App1 を WS-Trust クライアントとして機能させ、RST (セキュリティ トークンの要求) を ADFS (エンドポイントに発行されたtokenmixedasymmetricbasic256sha256) に送信し、SOAP セキュリティ ヘッダーに SAMLToken1 を指定して、App2 として ApplyTo を設定します。
ステップ 2. ADFS は、RSTR 内の暗号化された SAML アサーションを App1 に返します。
ステップ 3. App1 は別の RST を App2 に送信し、暗号化された SAML アサーションをセキュリティ ヘッダーとして設定します。
ステップ 4. App2 は SAML トークンを取得できます。
最初のステップの ADFS を実行すると、「メッセージのセキュリティを検証中にエラーが発生しました」が返されますが、ADFS のトレース ログには「タイプ 'urn:oasis:names:tc:SAML:2.0:assertion' のトークンが正常に認証されました」のみが表示されます。 、ADFS にそれ以上のログは表示されません。
SOAP UI を使用して SOAP 呼び出しを行っています。issuedtokenmixedasymmetricbasic256sha256 を使用して ADFS に SAML トークンを送信し、別の SAML トークンを交換する方法を知りたいです。
RST:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:ns="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
<soap:Header>
<a:Action soap:mustUnderstand="1">http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue</a:Action>
<a:To soap:mustUnderstand="1">https://ADFS_URL/adfs/services/trust/13/issuedtokenasymmetricbasic256sha256</a:To>
<o:Security soap:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion" ID="_7d723310-961e-417a-bb94-ee32dad0a48c" IssueInstant="2016-11-22T06:03:43.454Z" Version="2.0">**SAML Token 1</Assertion>
</o:Security>
</soap:Header>
<soap:Body>
<trust:RequestSecurityToken xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
<wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<a:EndpointReference>
<a:Address>App2</a:Address>
</a:EndpointReference>
</wsp:AppliesTo>
<trust:KeyType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer</trust:KeyType>
<trust:RequestType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue</trust:RequestType>
<trust:TokenType>urn:oasis:names:tc:SAML:2.0:assertion</trust:TokenType>
</trust:RequestSecurityToken>
</soap:Body>
</soap:Envelope>