1

我需要将 SSO 与使用 SAML2 的客户集成。不幸的是,我使用的是稍旧版本的库(Kentor)。

我几乎已经让 SSO 流程正常工作了。我网页中的登录按钮正确地将我带到客户登录页面。输入用户名/密码后,客户端系统进行身份验证并返回有效响应。

不幸的是,从客户端返回到我们的身份验证端点的重定向失败,并显示“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>

4

1 回答 1

1

硬编码的响应很难做到,因为它会

  1. 无效(响应包含时间限制)和
  2. 触发重放检测。

因此,为了进行测试,我在https://stubidp.sustainsys.com创建了 stubidp 。您可以通过创建自己的租户并编辑 json 设置文件来配置它,以提供包含与您在示例中列出的相同属性的响应。诸如 NameFormat 之类的可选内容不会出现在其中 - 但由于库忽略了它,因此没有必要将其用于测试。

于 2018-12-23T18:38:48.590 回答