2012-02-01 3 views
0

Я новичок в этой концепции претензий и SAML. Я использую WIF из ASP.NET и получаю запрос ниже от моего IDP. Я отправил имя пользователя/пароль с помощью HTTP-запроса и получил этот ответ SAML. Что я сейчас делаю? Я слышал, что мне нужно проверить подпись и ключ, и если да, то как (.NET) и почему?SAML 2.0 и EncryptedAssertion

<EncryptedAssertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion"> 
- <xenc:EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> 
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> 
- <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> 
- <e:EncryptedKey xmlns:e="http://www.w3.org/2001/04/xmlenc#"> 
- <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"> 
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> 
</e:EncryptionMethod> 
- <KeyInfo> 
- <o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
- <X509Data> 
- <X509IssuerSerial> 
<X509IssuerName>CN=LeastPrivilegeCA</X509IssuerName> 
<X509SerialNumber>458206499362374248562711</X509SerialNumber> 
</X509IssuerSerial> 
</X509Data> 
</o:SecurityTokenReference> 
</KeyInfo> 
- <e:CipherData> 
<e:CipherValue>SOME DATA</e:CipherValue> 
</e:CipherData> 
</e:EncryptedKey> 
</KeyInfo> 
- <xenc:CipherData> 
<xenc:CipherValue>SOME DATA</xenc:CipherValue> 
</xenc:CipherData> 
</xenc:EncryptedData> 
</EncryptedAssertion> 

ответ

1

Чтобы использовать SAML 2.0 с Windows Identity Foundation (WIF), вы будете нуждаться в WIF Extension for the SAML 2.0 Protocol. После его загрузки вы найдете несколько хороших примеров того, как использовать токен SAML для аутентификации.

Вам действительно не нужно ничего делать вручную, чтобы проанализировать этот токен, поскольку WIF должен управлять всем этим для вас. Вам просто нужно убедиться, что у вас есть правильный сертификат, установленный и настроенный для расшифровки сообщения. Если вы используете расширение SAML 2.0, это будет установка в конфигурации поставщика услуг, который ссылается в web.config:

<microsoft.identityModel.saml metadata="bin\App_Data\serviceprovider.xml"> 
    <!-- The location of the configuration files of all the partners this service trusts. --> 
    <identityProviders> 
     <metadata file="bin\App_Data\identityprovider.xml"/> 
    </identityProviders> 
</microsoft.identityModel.saml> 

Надеется, что это помогает.

+0

Это немного помогает. SAML/XML выше, чем я получил от IDP через запрос REST. –

+0

SAML может ссылаться как на протокол, так и на формат токена. Расширения WIF необходимы для протокола. WIF поддерживает токены SAML из коробки. –

+0

Вопрос был помечен как SAML 2.0, поэтому я предположил, что ему потребуется расширение. –