Bonjour À Tous,
Ma société développe actuellement une application web Java. Un couple de nos clients internes SAML serveurs (fournisseurs d'identité?) et ont de nous demander d'intégrer avec eux. Ainsi, récemment, j'ai lu sur elle et jouer avec OpenAM. Après environ 3 jours de cela, j'ai une compréhension générale, mais il ya encore quelques lacunes dans mes connaissances. Mon espoir est que quelqu'un peut éclaircir ce point pour moi.
Alors, voici comment j'imagine le flux de travail d'un utilisateur connecté. Nous allons définir nos clients SAML serveur en tant que https://their.samlserver.com. De sorte qu'un utilisateur vient à notre application web pour une ressource qui est protégé. Disons que l'URL est http://my.app.com/something. Donc, si je suis correct, "my.app.com" est ce que SAML définit comme un "Fournisseur de Services". Notre application se rend compte que cet utilisateur doit ouvrir une session. Nous présentons ensuite une page de ce genre pour l'utilisateur...
<script>JQuery Script to auto submit this form on ready</script>
<form method="post" action="https://their.samlserver.com/Post/Servlet">
<input type="hidden" name="SAMLRequest" value="someBase64Data" />
<input type="submit" value="Submit" />
</form>
Et que someBase64Data doivent être encodées en base64 version de ce...
<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_1"
Version="2.0"
IssueInstant="2004-12-05T09:21:59Z"
AssertionConsumerServiceIndex="0">
<saml:Issuer>http://my.app.com</saml:Issuer>
<samlp:NameIDPolicy
AllowCreate="true"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
</samlp:AuthnRequest>
Donc, mon premier couple de questions. Qu'est-ce que le "ID" de la valeur suppose d'être? Et pourquoi ne puis-je me déclarer comme un "Émetteur"? Le Fournisseur d'Identité à savoir sur moi? C'est peut-être que le "Cercle de confiance" j'ai été voir sur OpenAM. Et si il le fait savoir sur moi, comment fait-il savoir à propos de moi et qu'est-il besoin de savoir?
Donc, une fois que l'utilisateur est transmis cette page, ils sont pris à une page fournie par l'IDP https://their.samlserver.com. Ils s'authentifier sur cette page et de l'IDP est-il de la magie pour valider l'authentification et de rechercher l'utilisateur. Après la réussite de l'authentification, de l'IDP envoie en retour un <samlp:Response>
défini ici.
Un peu plus de questions. Tout d'abord, comment l' <samlp:Response>
revenir à mon application web afin que je puisse vérifier? Et que dois-je être à la recherche dans cette réponse, afin de valider qu'il a réussi? Ce n'est un échec?
Nous utilisons actuellement adresse e-mail (LDAP) pour identifier les utilisateurs, de sorte que nous allons probablement saisir qu'à partir de la réponse et de l'utiliser de la même manière que nous le faisons maintenant. Autre chose que je devrais être attentif dans cette réponse?
Alors, maintenant que nous avons vérifié que la réponse de validité, nous pouvons accorder à l'utilisateur d'une session comme nous le faisons actuellement. Mais quand ils veulent pour vous déconnecter, il y a un flux de travail pour qui? Dois-je informer de l'IDP, que l'utilisateur a quitté?
Et enfin, il y a un couple de sujets qui ont été jetés dans ma lecture et je ne suis pas sûr de savoir comment ils s'insèrent dans ce flux de travail. Ils sont "Cercle de confiance", "Jetons", et des "Artefacts".
Merci pour toute aide tout le monde. J'ai trouvé beaucoup d'informations dans les deux derniers jours, et il est possible que j'ai pu les reconstituer après un peu plus de jeu. Mais je n'ai pas encore trouver d'un simple "Voici le Post" flux de travail article encore. Peut-être que c'est parce que je me trompe sur la façon dont cela fonctionne. C'est peut-être parce que ce n'est pas que populaire encore. Mais je voulais vraiment vous assurer que j'ai eu le flux de travail donc je n'ai pas manqué une étape cruciale dans quelque chose d'aussi important que l'authentification de l'utilisateur.