У нас есть система, реализованная с использованием 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>
Есть что-то, что мне не хватает? Пожалуйста, вернись ко мне.
Спасибо.
С уважением, Амит Камбинул