Как отправить жестко запрограммированный ответ SAML2 конечной точке AuthServices / Acs для тестирования - PullRequest
0 голосов
/ 21 декабря 2018

Мне нужно интегрировать SSO с нашим клиентом, который использует SAML2.К сожалению, я использую немного более старую версию (Кентор) библиотеки.

У меня почти работает поток 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>

1 Ответ

0 голосов
/ 23 декабря 2018

Сложно закодированный ответ сделать трудно, потому что он

  1. будет недействительным (ответ содержит ограничения по времени) и
  2. вызовет обнаружение воспроизведения.

Итак, для тестирования я создал stubidp, доступный по адресу https://stubidp.sustainsys.com.. Вы можете настроить его, создав собственный клиент и отредактировав файл настроек json, чтобы предоставить ответ, содержащий те же атрибуты, что и в списке вваш образец.Дополнительного материала, такого как NameFormat, там не будет, но поскольку библиотека игнорирует его, нет смысла его использовать для тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...