我需要将SSO与使用SAML2的客户端集成在一起。不幸的是,我正在使用库的稍旧版本(Kentor)。
我几乎可以完成SSO流程。我网页上的登录按钮正确地将我带到客户端登录页面。输入用户名/密码后,客户端系统将进行身份验证并发送回有效响应。
不幸的是,从客户端到我们的auth端点的重定向失败,并显示“ 403-禁止访问被拒绝。”
我想对saml响应(在chrome调试工具中可以看到)进行硬编码,然后直接打我的auth localhost来调试正在发生的事情。我尝试使用POSTMAN无济于事。有办法吗?
这是我要发布到以下网址的经过编码的SAML:http://localhost:11996/AuthServices/Acs
<samlp:Response Destination="http://localhost:11996/AuthServices/Acs"
ID="fbrVm-Lw67Z-Q7uihwClM5N_EXC" IssueInstant="2018-12-20T22:00:30.665Z" Version="2.0"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">xyz:abc:saml20:idp</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<ds:Reference URI="#fbrVm-Lw67Z-Q7uihwClM5N_EXC">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>RYTG1QX8X/Jyu1BbnFbyeQvb0ZQjhfP7nbA7tdNLbfE=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
EAIb9VfZ+ywNJGrMYfDGiYvgKo1UTiUB0yeDIZWsSvj4htvGPDTOwssyDdaFBSwB0B9/LjZB0GDD
Bg3KR/ObpkW07t6Aoy0lSUt8pGJLvuXIcftsXGPeZTEt8ukNm66CZ7O2nGlalXBXvwBWHIUAJQ5j
4tLkFJvGl/Ku0GF5madBgHrJq0023cjf5rb6+gksAOaSDawpbiXaRtQaluHyCkhgD8PuRoZRudCJ
OW/1e70FZUb07EE5ZsN8cBXrERAfgECZc27GQ1l2v4ELlEdzNpnPJHugF+bgHowjeED/H0Hza4nl
IriW+h8kAd2nyn5Kv6KnKG04DqoN+o0PsGGGaw==
</ds:SignatureValue>
</ds:Signature>
<samlp:Status><samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status>
<saml:Assertion ID="mS8eJV.gG4EXybyBs4uYWJsK2Es" IssueInstant="2018-12-20T22:00:32.250Z"
Version="2.0" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<saml:Issuer>xyz:abc:saml20:idp</saml:Issuer>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">10035094</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"><saml:SubjectConfirmationData NotOnOrAfter="2018-12-20T22:05:32.250Z"
Recipient="https://mvauth-staging.mvtransit.com/AuthServices/Acs"/></saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2018-12-20T21:55:32.250Z" NotOnOrAfter="2018-12-20T22:05:32.250Z">
<saml:AudienceRestriction>
<saml:Audience>xyz:abc:saml20:sp</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2018-12-20T22:00:30.665Z"
SessionIndex="mS8eJV.gG4EXybyBs4uYWJsK2Es">
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AttributeStatement>
<saml:Attribute Name="firstname"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">John</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="adLogon" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">jsmith</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="lastname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Smith</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="upi" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">20181220</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
答案 0 :(得分:1)
很难进行硬编码的响应,因为它会
因此,为了进行测试,我创建了https://stubidp.sustainsys.com可用的stubidp。您可以通过创建自己的租户并编辑json设置文件进行配置,以提供包含与示例中列出的属性相同的响应。诸如NameFormat之类的可选内容将不在其中-但是由于库忽略了它,因此没有必要进行测试。