web-dev-qa-db-fra.com

Comment implémenter SAML SSO

Comment SAML SSO est-il généralement implémenté?

J'ai lu this (n.b. obsolète) sur l'utilisation de SAML avec Google Apps, et l'entrée wikipedia sur SAML .

L'entrée wikipedia parle de répondre avec des formulaires contenant des détails sur SAMLRequest et SAMLResponse. Cela signifie-t-il que l'utilisateur doit soumettre physiquement le formulaire afin de procéder à l'authentification unique?

L'entrée Google parle de l'utilisation des redirections, ce qui me semble plus banal. Cependant, il parle également d'utiliser un formulaire pour la réponse que l'utilisateur doit soumettre (bien qu'il parle d'utiliser JavaScript pour soumettre automatiquement le formulaire).

Est-ce la façon standard de procéder? Vous utilisez des redirections et JavaScript pour la soumission de formulaires?

Quelqu'un connaît-il d'autres bonnes ressources sur la façon d'implémenter l'authentification unique entre un domaine Windows et une application Web J2EE? L'application Web se trouve sur un réseau/domaine distinct. Mon client souhaite utiliser CA Siteminder (avec SAML).

39
A_M

La façon dont cela fonctionne est qu'après l'authentification de l'utilisateur, le fournisseur d'identité SAML (IdP) rend un formulaire au navigateur contenant la réponse SAML - `` l'action '' (c'est-à-dire la cible) du formulaire est le fournisseur de services (SP). Dans le HTML, il y a un événement JavaScript onLoad qui soumet le formulaire, donc l'effet net est que l'utilisateur est automatiquement transféré de l'IdP vers le SP, la réponse SAML en main.

Le seul moment où un utilisateur devrait cliquer sur quoi que ce soit pour envoyer le formulaire est s'il a désactivé JavaScript. Dans ce cas, les implémentations SAML fournissent généralement un message avec un bouton à appuyer dans le <noscript> tag.

Pour plus de détails, voir cet article que j'ai écrit il y a quelques années - mais notez que 'Lightbulb' est depuis longtemps obsolète - pour PHP SAML voir simpleSAMLphp .

C'est dommage que votre client veuille utiliser CA SiteMinder - l'open source OpenAM (anciennement OpenSSO) le fait assez facilement.

30
metadaddy

Cet article explique très bien. Il existe également des exemples pour différentes plates-formes.

6
Farhan

Si Siteminder est la partie de confiance, vous devez alors écrire un agent personnalisé pour prendre un artefact SAML et créer une session SM. Sinon, vous devrez acheter un produit qui possède déjà cette fonctionnalité.

0
McGovernTheory