L'authentification basée sur SAML SP a suivi un flux de travail court. P>
Ma question est la suivante: comment SP consommez ce jeton Samlresponse. Quelle est la logique? Si je peux obtenir une aide du code Java, cela sera bénéfique. P>
3 Réponses :
Demander le code est un peu, mais le traitement de base est que le SP valide la samlreesponse, y compris pour la formation bien en forme, la présence de valeurs requises, le protocole correct et toute autre validation spécifique SP (contraintes de temps, correspondance des données. , etc.), Maps Utilisateur identifié en jeton à l'utilisateur sur SP (pourrait impliquer la création d'un utilisateur) et transfère l'utilisateur à une ressource demandée. P>
Merci pour cette aide. Sure SP vérifiera tous ceux-ci. Pouvez-vous s'il vous plaît me donner un soupçon de classes qui impliqueront toutes ces opérations. Ou n'importe quel site Web à côté de OpenSaml où je peux obtenir de l'aide.
Voici comment je le fais en Java. J'utilise Xmlbeans pour analyser la samlreesponse, puis le déchiffrer (s'il est crypté), puis vérifiez la signature: p>
La prochaine recette fonctionne pour moi:
Obtenez le jeton Samlresponse et décodez-le et gonflez: P>
Analyser le XML résultant. Ici, vous pouvez obtenir les informations dont vous avez besoin et par exemple, créer un pojo em> avec elle (il s'agit d'un exemple de code pour analyser le logouTRequest, mais serait analogue aux réponses): P>
Pour mon cas d'utilisation, je suis intéressant dans quelques éléments seulement, j'utilise donc sax em>: p> espère qu'il espère aide, p> luis p> ps: vous pouvez également utiliser une bibliothèque comme OpenSamL P> DefaultBootstrap.bootstrap();
HTTPRedirectDeflateDecoder decode = new HTTPRedirectDeflateDecoder(new BasicParserPool());
BasicSAMLMessageContext<LogoutRequest, ?, ?> messageContext = new BasicSAMLMessageContext<LogoutRequest, SAMLObject, SAMLObject>();
messageContext.setInboundMessageTransport(new HttpServletRequestAdapter(request));
decode.decode(messageContext);
XMLObjectBuilderFactory builderFactory = org.opensaml.Configuration.getBuilderFactory();
LogoutRequestBuilder logoutRequestBuilder = (LogoutRequestBuilder) builderFactory.getBuilder(LogoutRequest.DEFAULT_ELEMENT_NAME);
LogoutRequest logoutRequest = logoutRequestBuilder.buildObject();
logoutRequest = (LogoutRequest) messageContext.getInboundMessage();
Cela m'aide vraiment. Veuillez également ajouter Samlvo pour référence.
Sûr! github.com/cerndb/wls-cern-sso/blob/master/saml2slo/src/ch/c ern / ...
Merci, ça m'a vraiment aidé. Comment utilisez-vous l'identifiant et la destination après les avoir extraites de XML?
Heureux d'entendre que cela vous a aidé @manuela je les ajoutes à la samlreesponse, voir GITUB.COM/CERNDB/WLS-CERN-SSO/BLOB/MASTER/SAML2SLO/SRC/CH/CR / ...