고객이 Ping 페더 레이트 설치를 사용하고 있으며 호환되지 않는 인증 응답 문서를 생성하는 것으로 보입니다. 문서의 형식이 올바르지 않으며 불법 문자가 포함되어 있지 않습니다.고객의 PingFederate SSO가 부적합한 것으로 나타납니다
큰 문제는 문서의 노드에 노드 이름에 "ds :"가 포함되어 있지 않다는 것입니다. 이것은 나의 인증 라이브러리 (omniauth-saml)가 ds 이름을 독점적으로 찾는 것처럼 불행하다. when validating.
라이브러리에 문제가 있습니까? Ping 연합 SAML 문서에 문제가 있습니까? 나는 matchers에 XPath의 "contains"도우미를 사용하기 위해 패치를 시작했으나 문서의 다이제스트와 인증서는 올바른 값으로 계산하지 않습니다.
- 라이브러리에 문제가 있습니까?
- Ping 연합 SAML 문서에 문제가 있습니까?
- Ping Federate 문서를 정규화 할 때 여전히 확인해야합니까?
여기
내가 코드 줄의 당신의 해석이 정확하지 않을 수 있습니다 생각 ...이 더 공식적인 답변 만들기 자신의 SAML 응답<samlp:Response Destination="http://a/dest" IssueInstant="2012-07-12T18:21:28.011Z" ID="a.valid.rand.id" Version="2.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://their/issuer</saml:Issuer>
<Signature>
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<Reference URI="#vZZQnHjOx1.u8c3uupdxDb_cmRu">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>some_digest_value</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>some_signature_value</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>their_well_formed_x509_cert</X509Certificate>
</X509Data>
<KeyValue>
<RSAKeyValue>
<Modulus>a_modulus</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
</KeyValue>
</KeyInfo>
</Signature>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion Version="2.0" IssueInstant="2012-07-12T18:21:28.058Z" ID="SOME_ID">
<saml:Issuer>http://their/issuer</saml:Issuer>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">14096079</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2012-07-12T18:26:28.058Z" Recipient="http://link/back/to/me"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotOnOrAfter="2012-07-12T18:26:28.058Z" NotBefore="2012-07-12T18:16:28.058Z">
<saml:AudienceRestriction>
<saml:Audience>http://an/audience/restriction</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2012-07-12T18:21:28.058Z" SessionIndex="SOME_ID">
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AttributeStatement xmlns:xs="http://www.w3.org/2001/XMLSchema">
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" Name="uid">
<saml:AttributeValue xsi:type="xs:string">a_uid</saml:AttributeValue>
</saml:Attribute>
<!-- removed all the other attributes -->
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>
전체 응답을 게시 할 수 있습니까? 방금 샘플을 포함 시켰습니다. 기본 네임 스페이스는 접두어 (ds :)가 필요하지 않음을 의미하는 dsig 일 수 있습니다. 800 명이 넘는 고객과 수백 가지의 상호 운용 가능한 SAML 제품으로 인해 PingFederate가 가장 적합하다는 사실에 대해서는 매우 놀랐습니다. (참고 : 나는 Ping을 위해 일한다) –
Hey Scott, 코드 블록이 나의 첫 번째 라인을 먹었다. 지금보십시오. – xrl
감사! 예상 한대로 - samlp 최상위 수준의 xmlns 특성을 참조하십시오. Response 태그 - dsig 스키마를 기본 네임 스페이스로 참조합니다. 먼저 다른 도구/SAML 파트너와의 상호 운용성을 테스트하여 문제를 디버그하는 데 도움을 받으시기 바랍니다. –