如何将硬编码的SAML2响应发送到AuthServices / Acs端点进行测试

时间:2018-12-20 22:58:57

标签: saml-2.0 kentor-authservices sustainsys-saml2

我需要将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>

1 个答案:

答案 0 :(得分:1)

很难进行硬编码的响应,因为它会

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

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