Как использовать выданную tokenmixedasymmetricbasic256sha256 конечную точку ADFS?
У меня настроено 2 доверия доверяющих сторон (App1, App2) в ADFS, после аутентификации пользователя в соответствии с веб-потоком SAML, наконец, App1 получил токен SAML: SamlToken1.
В настоящее время браузер пользователя не может посетить приложение 2 из-за брандмауэра, поэтому приложение 2 не может получить токен SAML.
Решение, которое я думал, заключалось в использовании WS-Trust через выпущенную tokenmixedasymmetricbasic256sha256 Endpoint ADFS, обеспечивающую:
Шаг 1. Заставьте App1 выступать в качестве клиента WS-Trust, отправьте RST (запрос токена безопасности) в ADFS (конечная точка, выданная tokenmixedasymmetricbasic256sha256), с SAMLToken1 в заголовке безопасности SOAP, установите ApplyTo в качестве App2.
Шаг 2. ADFS возвращает зашифрованное утверждение SAML в RSTR в App1
Шаг 3. App1 отправляет другой RST в App2, в качестве заголовка безопасности установите зашифрованное утверждение SAML.
Шаг 4. App2 может получить токен SAML.
При выполнении первого шага ADFS возвращает "Произошла ошибка при проверке безопасности сообщения", журнал трассировки ADFS выдал только "Токен типа" urn: oasis: names: tc: SAML: 2.0: утверждение "успешно прошел проверку подлинности", дальнейший журнал не отображается в ADFS.
Я использую пользовательский интерфейс SOAP для выполнения вызовов SOAP, я хочу знать, как использовать Команду totokenmixedasymmetricbasic256sha256 для отправки 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>