Como implementar SAML SSO
-
03-07-2019 - |
Pergunta
Como é SAML SSO normalmente implementado?
Eu li este (nb obsoleto) sobre o uso de SAML com o Google Apps, e a entrada da Wikipedia sobre SAML .
As conversas entrada wikipedia sobre respondendo com formulários contendo detalhes do SAMLRequest e SAMLResponse. Isso significa que o usuário tem de apresentar fisicamente o formulário, a fim de prosseguir com o single sign on?
Os google entrada fala sobre usar redirecionamentos, o que parece mais seemless para mim. No entanto, ele também fala sobre como usar um formulário para a resposta que o usuário deve enviar (embora não falar sobre o uso de JavaScript para enviar automaticamente o formulário).
Esta é a maneira padrão de fazer isso? Usando redirecionamentos e JavaScript para envio do formulário?
Alguém sabe de quaisquer outros recursos boas sobre como proceder para implementar SSO entre um domínio do Windows e uma aplicação J2EE web. A aplicação web está em uma rede / domínio separado. Meu cliente quer usar CA SiteMinder (com SAML).
Solução
A forma como isto funciona é que, depois de autenticar o usuário, o provedor de identidade SAML (IdP) torna um formulário para o navegador que contém a resposta SAML - o (alvo ou seja) a forma de 'ação' é o prestador de serviços (SP). No HTML, há um evento JavaScript onLoad que envia o formulário, de modo que o efeito líquido é que o usuário é automaticamente retirado do IdP para o SP, a resposta SAML na mão.
A única vez que um usuário teria que clicar em nada para enviar o formulário é se eles têm o JavaScript desativado. Neste caso, implementações SAML normalmente fornecem uma mensagem com um botão para imprensa na tag <noscript>
.
Para mais detalhes consulte este artigo que escrevi há alguns anos - mas nota, 'Lâmpada' é longo obsoleto agora -. para PHP SAML ver simpleSAMLphp
É uma pena o seu cliente quer usar CA SiteMinder - a fonte aberta OpenAM (anteriormente conhecido como OpenSSO ) faz isso muito facilmente.
Outras dicas
Este artigo explica está muito bem. Há exemplos para diferentes plataformas também.
Se Siteminder é a terceira parte confiável, então você precisa escrever um agente de costume levar um artefato SAML e criar um SM-Session. Caso contrário, você terá de comprar um produto que tem essa funcionalidade já construído.
Você pode ver neste link para entender melhor SAML SSO. Eu também quero dar-lhe alguns links. Esses links são o produto de empresas e têm um exemplo muito intuitiva de como SAML funciona: - https: // www .codeultimate.com / products / saml