SAML Logout работает только в первый раз - PullRequest
0 голосов
/ 10 октября 2019

У нас есть система, реализованная с использованием ColdFusion-9, работающая на IIS, для которой аутентификация и доступ определяются с помощью базы данных SQL. Мы внедряем аутентификацию SAML 2.0 с помощью ADFS.

Я создаю запрос и получаю код статуса успеха при попытке войти. Тем не менее, когда я пытаюсь выйти, работает только в первый раз. Я получаю либо код состояния Requester, либо LogoutRequest из конечной точки SAML Single-logout.

Я пробовал перестановку и сочетание с атрибутами Format, NameQualifier и SPNameQualifier в теге NameID для LogoutRequest, заканчиваясь тем же результатом.

<samlp:LogoutRequest Destination="DESTINATION_URL"
                     ID="_23C7D50D-B941-66B0-46931822F57A983C"
                     IssueInstant="2019-10-10T13:46:10.744Z"
                     Version="2.0"
                     xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
                     xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                     >
    <saml:Issuer>ISSUER_URL</saml:Issuer>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    ...
    </ds:Signature>
    <saml:NameID>NAMEID</saml:NameID>
</samlp:LogoutRequest>

Я получаю следующий ответ в самый первый раз.

<samlp:LogoutResponse ID="_7765d632-ac68-49ba-87ad-9fa1678fe89b"
                      Version="2.0"
                      IssueInstant="2019-10-10T17:46:37.593Z"
                      Destination="DestinationURL"
                      Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
                      InResponseTo="_23CBEC9D-A3A6-AB1A-B726E908DED5B21B"
                      xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                      >
    <Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">issuerURL</Issuer>
    <samlp:Status>
        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
    </samlp:Status>
</samlp:LogoutResponse>

К сожалению, я застрял со следующим ответом на следующий запрос на выход из системы

<samlp:LogoutResponse ID="_7765d632-ac68-49ba-87ad-9fa1678fe89b"
                      Version="2.0"
                      IssueInstant="2019-10-10T17:46:37.593Z"
                      Destination="DestinationURL"
                      Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
                      InResponseTo="_23CBEC9D-A3A6-AB1A-B726E908DED5B21B"
                      xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                      >
    <Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">issuerURL</Issuer>
    <samlp:Status>
        <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Requester"/>
    </samlp:Status>
</samlp:LogoutResponse>

Есть что-то, что мне не хватает? Пожалуйста, вернись ко мне.

Спасибо.

С уважением, Амит Камбинул

...