Pregunta

Es posible el registro de un usuario de una aplicación que utiliza la autenticación SAML, pero mantenerlos registra en el IDP para que puedan seguir teniendo acceso a otros proveedores de servicios?

Quiero ser capaz de iniciar la sesión de un usuario de una aplicación, y autenticar al volver a la aplicación sin necesidad de registro fuera de los DESPLAZADOS internos (es decir,No quiero utilizar inicio de sesión único de salida).Es esto posible con SAML?

¿Fue útil?

Solución

No hay una manera estándar para excluir la terminación de los DESPLAZADOS internos de la sesión, cuando el desempeño de cierre de sesión Único.También la terminación de una sesión con una sesión individual participante (un solo Proveedor de Servicios), manteniendo los demás abrieron explícitamente fuera del ámbito de la SAML 2.0 cierre de sesión Único perfil (ver saml-perfiles-2.0-os.pdf, líneas 1139-1143).Así que ese no es el camino a seguir.

Pero hay otra solución.Usted puede utilizar el local de desconexión de su proveedor de servicio (por ejemplo,simplemente invalidar local sesión HTTP) y combinarlo con el atributo ForceAuthn cuando el envío de la AuthnRequest a los DESPLAZADOS internos (ver saml-core-2.0-os, línea 2042).Ajuste de la ForceAuthn atributo en true, se obliga al Proveedor de Identidad para autenticar el usuario, incluso en el caso cuando existe un IDP sesión.

Todo el flujo podría tener este aspecto:

  1. El usuario accede a SP y es necesaria para autenticar
  2. SP envía un SAML 2.0 AuthnRequest los DESPLAZADOS internos y de los conjuntos de la ForceAuthn flag a true
  3. IDP fuerzas de usuario para autenticar y responde a la SP
  4. SP crea una sesión local después de la validación de la respuesta
  5. Registros de usuario de la SP aplicación con la que termina sólo en el local de la sesión y que no interfiere con el IDP de la sesión o sesiones en otros SPs

Ajuste de la ForceAuthn bandera de la verdadera efectivamente desactiva el inicio de sesión único, así que puede que desee utilizar algunos SP-lógica de determinar si el uso de la bandera o no.

Un ejemplo de una solicitud válida con el indicador establecido de la siguiente manera:

<?xml version="1.0" encoding="UTF-8"?>
<saml2p:AuthnRequest AssertionConsumerServiceIndex="0"
    AttributeConsumingServiceIndex="myServiceID"
    Destination="https://idp.ssocircle.com:443/sso/SSOPOST/metaAlias/ssocircle"
    ForceAuthn="true" ID="a228aje276h0id1g48eihj5gfj9h8bi"
    IsPassive="false" IssueInstant="2014-04-11T22:07:05.438Z"
    Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">urn:test:sp</saml2:Issuer>
</saml2p:AuthnRequest>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top