Diferenças entre SSO iniciado por SP e SSO iniciado por IDP

107

Alguém pode me explicar quais são as principais diferenças entre SSO iniciado por SP e SSO iniciado por IDP , incluindo qual seria a melhor solução para implementar o logon único em conjunto com ADFS + OpenAM Federation?

pbhle
fonte
2
Para esclarecer para qualquer novato os conceitos de logon único: SP = provedor de serviços (o sistema que o usuário deseja utilizar) e IdP = identificar o provedor (o sistema que autentica o usuário)
Seafish

Respostas:

72

No IDP Init SSO (SSO da Web não solicitado), o processo de Federação é iniciado pelo IDP, enviando uma resposta SAML não solicitada ao SP. No SP-Init, o SP gera um AuthnRequest que é enviado ao IDP como a primeira etapa do processo de Federação e o IDP então responde com uma Resposta SAML. O suporte IMHO ADFSv2 para SAML2.0 Web SSO SP-Init é mais forte do que o suporte IDP-Init em relação à integração com produtos Fed de terceiros (principalmente em torno do suporte para RelayState), portanto, se você tiver a opção de usar o SP- Init, pois provavelmente tornará a vida mais fácil com ADFSv2.

Aqui estão algumas descrições simples de SSO do Guia de introdução do PingFederate 8.0 que você pode consultar e que também podem ajudar - https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html

Ian
fonte
81

SSO iniciado por IDP

Da documentação do PingFederate: - https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html

Nesse cenário, um usuário está conectado ao IdP e tenta acessar um recurso em um servidor SP remoto. A asserção SAML é transportada para o SP via HTTP POST.

Etapas de processamento:

  1. Um usuário fez logon no IdP.
  2. O usuário solicita acesso a um recurso de SP protegido. O usuário não está conectado ao site do SP.
  3. Opcionalmente, o IdP recupera atributos do armazenamento de dados do usuário.
  4. O serviço SSO do IdP retorna um formulário HTML ao navegador com uma resposta SAML contendo a asserção de autenticação e quaisquer atributos adicionais. O navegador envia automaticamente o formulário HTML de volta ao SP.

SSO iniciado por SP

Da documentação do PingFederate: - http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST

Nesse cenário, um usuário tenta acessar um recurso protegido diretamente em um site do SP, sem estar conectado. O usuário não tem uma conta no site do SP, mas tem uma conta federada gerenciada por um IdP de terceiros. O SP envia uma solicitação de autenticação ao IdP. Tanto a solicitação quanto a asserção SAML retornada são enviadas por meio do navegador do usuário via HTTP POST.

Etapas de processamento:

  1. O usuário solicita acesso a um recurso de SP protegido. A solicitação é redirecionada ao servidor de federação para tratar da autenticação.
  2. O servidor de federação envia um formulário HTML de volta ao navegador com uma solicitação SAML para autenticação do IdP. O formulário HTML é postado automaticamente no serviço SSO do IdP.
  3. Se o usuário ainda não estiver conectado ao site do IdP ou se a reautenticação for necessária, o IdP solicitará as credenciais (por exemplo, ID e senha) e o usuário fará logon.
  4. Informações adicionais sobre o usuário podem ser recuperadas do armazenamento de dados do usuário para inclusão na resposta SAML. (Esses atributos são pré-determinados como parte do acordo de federação entre o IdP e o SP)

  5. O serviço SSO do IdP retorna um formulário HTML ao navegador com uma resposta SAML contendo a asserção de autenticação e quaisquer atributos adicionais. O navegador envia automaticamente o formulário HTML de volta ao SP. NOTA: As especificações SAML exigem que as respostas do POST sejam assinadas digitalmente.

  6. (Não mostrado) Se a assinatura e a declaração forem válidas, o SP estabelece uma sessão para o usuário e redireciona o navegador para o recurso de destino.

user3061250
fonte
1
SSO iniciado com Re SP - ponto 3 acima diz "Se o usuário ainda não estiver conectado ao site do IdP ou se for necessária uma nova autenticação, o IdP solicitará as credenciais (por exemplo, ID e senha) e o usuário fará logon." Como o sistema determina se o usuário está conectado ao site IdP? Gera um cookie, por exemplo?
Edwardo
1
@Edwardo Sua suposição está correta. Quando uma sessão é estabelecida com um IdP, normalmente o IdP gera um cookie para manter essa sessão.
jekennedy
Tenho outra pergunta stackoverflow.com/questions/43861315/… . Você pode dar uma olhada nisso?
kawadhiya21
49

SSO iniciado por SP

Bill o usuário: "Ei Jimmy, mostre-me esse relatório"

Jimmy, o SP: "Ei, ainda não tenho certeza de quem você é. Temos um processo aqui, então primeiro faça a verificação com Bob, o IdP. Eu confio nele."

Bob, o IdP: "Vejo que Jimmy o enviou aqui. Por favor, me dê suas credenciais."

Cobrar o usuário: "Olá, sou o Bill. Aqui estão minhas credenciais."

Bob, o IdP: "Olá, Bill. Parece que você deu uma olhada."

Bob, o IdP: "Ei Jimmy. Esse cara, Bill, verifica e aqui estão algumas informações adicionais sobre ele. Faça o que quiser a partir daqui."

Jimmy the SP: "Ok legal. Parece que Bill também está em nossa lista de convidados conhecidos. Vou deixar Bill entrar."

SSO iniciado por IdP

Bill para o usuário: "Ei, Bob. Quero ir para a casa de Jimmy. A segurança é rigorosa lá."

Bob, o IdP: "Ei Jimmy. Eu confio no Bill. Ele verifica e aqui estão algumas informações adicionais sobre ele. Faça o que quiser a partir daqui."

Jimmy the SP: "Ok legal. Parece que Bill também está em nossa lista de convidados conhecidos. Vou deixar Bill entrar."


Entrarei em mais detalhes aqui, mas mantendo as coisas simples: https://jorgecolonconsulting.com/saml-sso-in-simple-terms/ .

2upmedia
fonte
33
Não acho que a segunda conversa esteja certa .... ao invés, deveria ser: IdP: "Ei, aqui estão algumas informações sobre Sal, por favor, deixe-a entrar" / SP: "Ok, eu confio em você, vou deixar ela in "
Jeff Olson
4
a primeira conversa também não está certa: na primeira etapa o SP ainda não sabe nada sobre qual usuário é, apenas no IdP o usuário irá logar e se identificar como "Sal"
Allie
4
A primeira conversa deve ser: SP: "Ei, cadê a sua carteira?" IdP: "Espere, vou verificar. Deixe-me ver sua identidade, por favor. Ok, mano, deixe-a entrar, ela se chama Sal e tem 21 (opcionalmente)" SP: "Legal cara, você é incrível! Ei você, entre ! "
Erdal G.
3
Creio que esta resposta não merece os votos negativos que obteve. Ele responde à pergunta de uma forma criativa, talvez não tão precisa como alguns apontaram, mas criativa ainda assim.
Aaron C
2
Seria interessante ver a resposta correta neste formato. Meus olhos estão vidrados ao ler as respostas votadas, este formato ajuda a entender o conceito geral muito rapidamente. Não sei o suficiente para criar uma resposta com confiança com base nos comentários.
Sean Connolly de