Nous avons un client essayant d'utiliser ADFS pour SSO sur notre application Web. Nous utilisons la bibliothèque ComponentSpace SAML 2.0. L'affirmation d'être envoyé à nous ressemble:Quel est le format correct pour les assertions SAML 2.0?
<Assertion ID="_b8a24809-ab6b-4acd-ad6a-8bcb97bb1889" IssueInstant="2012-05-24T13:30:33.917Z" Version="2.0" xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
<Issuer>http://example.com/adfs/services/trust</Issuer>
<Subject>
<NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">[email protected]</NameID>
<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<SubjectConfirmationData NotOnOrAfter="2012-05-24T13:35:33.920Z" Recipient="https://example.com/default.aspx" />
</SubjectConfirmation>
</Subject>
<Conditions NotBefore="2012-05-24T13:30:33.907Z" NotOnOrAfter="2012-05-24T14:30:33.907Z">
<AudienceRestriction>
<Audience>https://example.com</Audience>
</AudienceRestriction>
</Conditions>
<AttributeStatement>
<Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress">
<AttributeValue>[email protected]</AttributeValue>
</Attribute>
</AttributeStatement>
<AuthnStatement AuthnInstant="2012-05-24T13:30:33.756Z" SessionIndex="_b8a24809-ab6b-4acd-ad6a-8bcb97bb1889">
<AuthnContext>
<AuthnContextClassRef>urn:federation:authentication:windows</AuthnContextClassRef>
</AuthnContext>
</AuthnStatement>
</Assertion>
La bibliothèque ComponentSpace tire pleinement SAMLResponse du poste HTTP mais il ne signale aucun Assertions (c.-à-samlResponse.GetAssertions() == 0 Count.). Si j'utilise les exemples ComponentSpace cela fonctionne mais je remarque que tous les éléments que je construis avec la bibliothèque ComponentSpace sont préfixés avec "saml:" (comme je crois que cela devrait être).
La bibliothèque ComponentSpace doit-elle pouvoir trouver l'assertion sans le préfixe saml: ou existe-t-il un moyen de configurer ADFS pour l'envoyer correctement?
Nos composants SAML (http://www.componentspace.com/saml) ignorent le préfixe lors de l'accès aux éléments XML, etc. Au lieu de cela, les éléments sont identifiés par un nom de balise et un espace de noms, ce qui est la bonne façon de faire les choses en XML. Par conséquent, nous ne répondons pas sur le nom de la balise étant saml mais recherchons plutôt l'élément Assertion sous l'urne: oasis: names: tc: SAML: 2.0: namespace assertion etc. –