2013-12-02 4 views
3

После прочтения этого поста http://leandrob.com/2012/02/request-a-token-from-adfs-using-ws-trust-from-ios-objective-c-iphone-ipad-android-java-node-js-or-any-platform-or-language/Попытки получить ADFS SAML утверждения маркеров с помощью завитка

Я попытался запросить маркер SAML с помощью завитка.

Вот что я передаю с помощью завиток:

curl https://server.com/adfs/services/trust/13/usernamemixed --data @request.txt -H "Content-Type:application/soap+xml" --verbose -o "output.txt" 

Вот мой request.txt файл

<?xml version="1.0" encoding="utf-8"?> 
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
    <s:Header> 
     <a:Action s:mustUnderstand="1"> 

http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue 

     </a:Action> 
     <a:To s:mustUnderstand="1">https://server.com/adfs/services/trust/13/UsernameMixed</a:To> 
     <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" > 
      <o:UsernameToken u:Id="uuid-6a13a244-dac6-42c1-84c5-cbb345b0c4c4-1"> 
       <o:Username>user</o:Username> 
       <o:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">pass</o:Password> 
      </o:UsernameToken> 
     </o:Security> 
    </s:Header> 
    <s: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>https://server.com</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> 
    </s:Body> 
</s:Envelope> 

Ответ Я получаю MSIS3127: Указанный запрос не удалось.

Любые идеи вещей, которые я могу проверить? Благодаря!

+0

У вас есть доступ к серверу ADFS? Если да, проверили ли вы конкретный журнал событий для ADFS? – beavel

+0

Служба федерации обнаружила ошибку при обработке запроса WS-Trust. Тип запроса: http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue Дополнительные данные Сведения об исключении: Microsoft.IdentityModel.Protocols.WSTrust.WSTrustSerializationException: ID3011: Unrecognized RequestType указан: 'http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue \t \t \t' – Brian

+0

выглядит так, что возникла проблема с пространством после docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue – Brian

ответ

4

После просмотра журналов событий я обнаружил, что проблема заключалась в том, что он собирал пробел или новую строку после docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue. Вероятно, в результате копирования xml с сайта!

+1

Это сработало и для меня, но после того, как я понял (после траулирования по стандартам оазиса), что: ' https://server.com' должен был быть идентификатор ретрансляционной стороны, такой как 'urn: amazon: webservices', а не фактический сервер ADFS. – lantrix

Смежные вопросы