logon único para vários SPs do SAML com um IdP

2

Parte de nosso site, digamos link , é protegida por mod_auth_mellon, que fornece um SP que autentica com nosso IdP. Isso funciona bem.

O restante do site é o Drupal com o módulo samplesamlphp_auth. Esse módulo cria outro SP que autentica com o mesmo IdP. Isso também funciona bem.

O problema é que o login não é compartilhado entre esses dois SPs. Você precisa fazer o login separadamente para cada um, mesmo que o usuário esteja autenticando no mesmo IdP. Obviamente isso não é desejável. Quando eu faço login, eu quero que o outro detecte e use os dados da sessão SAML para me logar também.

Isso é algo razoável de se esperar? Eu estava pensando que dois SPs diferentes no mesmo host compartilhariam as informações da sessão automaticamente, mas agora acho que não é assim que funciona. Cada controladora armazena informações da sessão em cookies no agente do usuário. Os cookies têm nomes diferentes, mas, mais importante, eles se referem a sessões dos diferentes SPs. Então eles não podem ser compartilhados.

Este tópico tem algumas discussões sobre o problema. Com base nisso, o que eu acho necessário é que o IdP reconheça as informações de estado salvas no agente do usuário e não peça ao usuário que efetue login novamente. Isso esta certo? Como posso enquadrar esse problema para os administradores do IdP?

    
por Andrew Schulman 11.01.2018 / 20:38

1 resposta

2

Como o SSO geralmente faz parte de uma configuração de SAML, sugiro verificar o IdP. É o trabalho do IdP verificar se o cliente já está conectado e relatar a mesma sessão para outro SP.

Pode ser útil saber com que IdP e com qual perfil do SAML você está lidando, minha experiência é limitada ao perfil do WebSSO e ao Shibboleth como IdP e SP.

Ok, vou tentar elaborar um pouco sobre o perfil do WebSSO:

  1. Visitas do usuário SP
  2. O usuário é direcionado para a página do iniciador do SP (por exemplo, /Shibboleth.sso/Login)
  3. O usuário usa o Discovery Service (DS) para escolher o IdP desejado ou foi direcionado para a página do iniciador de login com um parâmetro de ajuste
  4. O usuário é redirecionado para o IdP para autenticação com a solicitação de autenticação SAML
  5. O IdP usa cookies para verificar se o usuário tem uma sessão, se estiver usando o fluxo de nome de usuário / senha.
  6. O IdP redireciona o usuário de volta ao SP com uma resposta SAML
  7. O SP verifica a resposta SAML e inicia seu próprio tratamento de sessão.

Encontre os documentos do Shibboleth sobre este aqui .

    
por 11.01.2018 / 22:01

Tags