Medidas para implementar SSO para aplicação php

sou um novato na implementação SSO. Estamos olhando para a implementação SSO para um cliente que usa uma aplicação php (suportado por nós), para que seus funcionários se login para a aplicação. Estamos no processo de criação de SAML simples para isso .. Tenho lido artigos sobre SSO, muitos dos quais são úteis. Peço desculpa por perguntar isto, eu sei que é estúpido. Neste cenário, quem é o IDP e quem será o provedor de serviços. O cliente aparentemente usa SSO para outros aplicações também. Alguém pode iluminar o que preciso para preparar do nosso lado?. Vou pesquisar como fazer cada um deles..alguém pode ajudar, por favor, mencionando as coisas que precisam ser implementadas.

Author: Mvc Learner, 2017-05-11

2 answers

Quem é o PID e quem será o prestador de serviços.

IDP (provedor de identidade) é aquele que cria, armazena, mantém e autentica a identidade do usuário ou principal em termos saml. Então, no seu caso é a aplicação de clientes.

SP (prestador de Serviços) é aquele que fornece o serviço ou recurso a um utilizador (autenticado pelo IDP) por isso, no seu caso, é a sua aplicação.

SSO workflow

Alguém pode, por favor? ajuda mencionando as coisas que precisam ser implementadas.

Como pode ver no diagrama acima, quando o utilizador tentar aceder a um recurso no seu site, terá de os redireccionar para o IDP para confirmar se este Utilizador está autenticado e se deve devolver-lhes o recurso/resposta que procuram. O URL SSO e outros detalhes são trocados entre IDP e SP através de metadados.

Assim que o IDP autenticar o Utilizador, irá publicar uma resposta na sua aplicação endereco. Esta resposta contém uma afirmação através da qual irá conhecer os detalhes do utilizador e se o Utilizador está autenticado ou não. Terá de analisar esta resposta (xml). Além disso, estas afirmações são geralmente assinadas com certificado e são codificadas base 64.

Você também terá que pensar sobre SLO para que quando um usuário clica no logout em seu site você pode ter que limpar a sua sessão a partir de sua aplicação e redirecioná-los para o IDP para que eles sejam registrados a partir de lá como bem.

Como sugerido por smartin, você pode usar alguma biblioteca que tornará mais fácil implementar o SAML. Estou também a aprender sobre o SAML, pois estamos a trabalhar na conversão da nossa aplicação actual em IDP:)

Achei esta documentação oficial do SAML e alguns dos diagramas muito úteis. http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html
 8
Author: Vbp, 2020-04-24 21:21:28

O seu aplicativo é o SP, e o cliente irá fornecer-lhe os metadados do IdP para se registar no seu SP.

Para adicionar suporte de SAML a uma aplicação de PHP, tem 2 alternativas:

Todos eles estão bem documentados, você precisará passar algum tempo lendo / aprendendo.
 5
Author: smartin, 2017-05-11 23:54:16