2016-03-25 3 views
2

В учетной записи разработчика Okta я включил SAML Single Logout и получил URL-адрес одиночного URL-адреса поставщика идентификационных данных. Я создал следующий запрос на выход с использованием NameID и SessionIndex, полученный из ответа SAML, который мы получаем во время процесса единого входа.Как реализовать одиночный выход с использованием okta как IDP?

Выход Запрос:

<?xml version="1.0" encoding="UTF-8"?> 
<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Destination="https://dev-6#####.oktapreview.com/app/nepasoftdev660864_spdemo_1/exk606bnr5BZOBF7z0h7/slo/saml" ID="_b2be5dbd-928a-4554-a879-25a179e36ee2" IssueInstant="2016-03-25T10:20:47Z" Version="2.0"> 
    <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://192.###.###.##/spdemo</saml:Issuer> 
    <saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">[email protected]</saml:NameID> 
    <samlp:SessionIndex>id14589.94596883</samlp:SessionIndex> 
</samlp:LogoutRequest> 

Я получаю следующее сообщение Выход Ответ с кодом состояния RequestDenied

<?xml version="1.0" encoding="UTF-8"?> 
<saml2p:LogoutResponse xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Destination="http://localhost:10262/Logout.aspx" ID="id1846510753301801884197562" InResponseTo="_b2be5dbd-928a-4554-a879-25a179e36ee2" IssueInstant="2016-03-25T10:22:40.389Z" Version="2.0"> 
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">http://192.###.###.##/spdemo</saml2: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/2000/09/xmldsig#rsa-sha1" /> 
     <ds:Reference URI="#id1846510753301801884197562"> 
      <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/2000/09/xmldsig#sha1" /> 
      <ds:DigestValue>LQwvto+ERXvrQRUB7LOUUznSXII=</ds:DigestValue> 
     </ds:Reference> 
     </ds:SignedInfo> 
     <ds:SignatureValue>P+T1K.....ZYvCw==</ds:SignatureValue> 
     <ds:KeyInfo> 
     <ds:X509Data> 
      <ds:X509Certificate>MIID.....7zK0rH</ds:X509Certificate> 
     </ds:X509Data> 
     </ds:KeyInfo> 
    </ds:Signature> 
    <saml2p:Status> 
     <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:RequestDenied" /> 
    </saml2p:Status> 
</saml2p:LogoutResponse> 

Почему может быть причиной для получения RequestDenied статус? Пропустил ли я что-то при запросе на выход или неправильно сконфигурировал во время однократного выхода в Okta?

Спасибо в продвижении.

ответ

0

Вам также необходимо подписать LogoutRequest, поэтому вам нужно будет добавить элемент Signature (аналогично тому, как вы возвращаетесь в LogoutResponse).

Тем не менее, я столкнулся с тем же вопросом, что и вы. Я подписал мой LogoutRequest, но все равно получаю LogoutResponse со статусом RequestDenied.

Я нашел эту нить (https://support.okta.com/help/answers?id=906F0000000I07YIAS) на странице поддержки Okta, которая указывает, что привязка HTTP-Redirect не поддерживается для выхода из системы, поэтому вам может понадобиться HTTP-сообщение. Я еще не пробовал.

Смежные вопросы