7
votes

Afin de mettre en œuvre Saml, j'ai besoin de Shibboleth SP installé sur mon hôte?

J'ai quelques questions de mise en œuvre SAML pour effacer ma confusion ...

Je dois implémenter SSO dans une application Web Java.

  1. Pour ce faire, ai-je besoin de shibboleth sp installée sur mon hôte Comme si , ou puis-je fournir la fonctionnalité SP via OpenSaml?

  2. Je suppose que Shibboleth fait la même chose que OpenSaml, mais juste sur un niveau Web du serveur Web, alors que OpenSamL le fera du côté logiciel. Est-ce que cette hypothèse est correcte?

    EDIT: Shibboleth (Selon Scott Cantor) est construit avec opensaml ... Est-ce que mon hypothèse est toujours tenue?

    1. Que sera nécessaire pour utiliser openaml? Juste l'URL IDP et une inscription avec le PDI?

    2. dois-je fournir un répertoire SP, par exemple ActiveDirectory / LDAP?

      edit: Merci pour les réponses, mais quelqu'un peut-il répondre directement aux questions ci-dessus et élaborer sur eux ...


0 commentaires

4 Réponses :


2
votes

Vous devriez poster de telles questions aux listes de diffusion concernées exécutées par le projet Shibboleth.

OpenSaml est une boîte à outils de niveau très basse pour la mise en œuvre de solutions SAML, ShibBoleth est un package SSO pour les applications Web prenant en charge SAML qui se construit avec OpenSAML. Les solutions de sécurité de la construction sont complexes et nécessitent une expertise. Si vous n'avez pas cette expertise, vous y ferez un mauvais travail, et OpenSamL n'est pas documenté de sorte qu'un développeur typique puisse créer une solution à partir de zéro.

envisagez d'utiliser une implémentation complète, que ce soit Shibboleth ou autre chose. Si vous ne pouvez pas vivre avec Apache et Code natif et avez besoin de Java, vous devriez essayer l'une des options d'existant Java SP qui existent. Même s'ils étaient insuffisants, vous devriez les construire et ne pas les dupliquer.


1 commentaires

Pouvez-vous donner des exemples d'options de 'existantes Java SP'?



14
votes

Mises à jour pour adresser vos modifications:

Voici quelques options SAML 2 que vous pouvez utiliser.

  • pingfederate https://www.pididentity.com/ bonnes choses pour vous aider à comprendre SAML et SSO. Commercial et utilisé par beaucoup d'entreprises.
  • Josso All-Java http: // www.josso.org/confluence/display/josso1/josso+-+java+open+Single+Sign-on+Project+Home , LGPL 2.1 ou version ultérieure
  • API de Lasso Java sur la mise en œuvre native. http://lasso.entrouvert.org/ Dual sous licence (gratuit uniquement pour une utilisation non commerciale).
  • Openam All-Java http://java.net/projects/opensso/ , CDDL 1.0
  • shibboleth sp C ++, http://shibboleth.internet2.edu/ , licence Apache, version 2.0.
  • OpenSAML Bibliothèques Java ou C ++, https://wiki.shibboleth.net/confluence/display/opensaml/ Accueil / Licence Apache, version 2.0.
  • Defunct OpenSSO (est devenu Openam) All-Java http://java.net/projects/opensso/ , CDDL 1.0
  • Shibboleth IDP All-Java Ce n'est pas un SP, juste un mot d'identité, qui est utile pour tester votre sp.

    shibboleth sp est un produit qui implémente Saml 2.0 pour vous, mais OpenSaml n'est qu'une bibliothèque avec laquelle vous pouvez implémenter une solution SAML 2.0. La bibliothèque elle-même est de faible niveau et n'est même pas proche d'être une solution SSO. Opensaml n'est pas une solution saml 2.0 par lui-même.

    utiliser openaml ou toute solution saml 2.0, vous devrez échanger des métadonnées comme indiqué ci-dessous. Avec OpenSamL, vous devrez également générer un fichier XML pour vos propres métadonnées. Ce sera beaucoup de travail comme indiqué ci-dessous. Les produits SAML 2.0 généreront ce fichier de métadonnées XML pour vous et généreront également les clés RSA requises utilisées pour le cryptage et la signature des affirmations SAML 2.0. Avec OpenSamL, vous aurez une assistance API pour charger des parties des fichiers XML et des API pour générer et analyser vos affirmations, mais vous écrirez le code Java qui construit l'interaction SSO.

    Le SP fait pas nécessite nécessairement une activationDirectory / LDAP, mais vous aurez besoin d'un type de répertoire dans votre application Web qui tient une trace des utilisateurs. Si votre application Web possède déjà une notion d'utilisateurs avec certaines informations d'identification que vous pouvez utiliser pour les corréler avec la notion d'utilisateurs de l'IDP, vous pouvez simplement mapper ceux de votre application Web en fonction des valeurs d'attribut dans vos assertions SAML 2.0. (Si votre application Web ne se soucie pas de qui les utilisateurs sont, vous pouvez simplement autoriser l'accès à l'application en fonction de l'utilisateur «valide».)

    -

    Intégrer ShibBoleth2 SSO avec une application Web Java n'est pas trop difficile. Utiliser OpenSamL pour mettre en œuvre le SSO fonctionnerait, mais ce serait beaucoup plus d'effort que d'intégrer un serveur Apache avec Shibboleth.

    Utilisation de Shibboleth exige que vous ayez Apache2 avec le module Shibboleth, activé et que vous avez le démon ShibBoleth SP installé. Typiquement, ceux-ci seraient ensemble sur la même boîte. Si vous utilisez Tomcat pour héberger l'application Web Java, je vous recommande d'utiliser mod_proxy_ajp pour communiquer entre le serveur HTTP Apache2 et Tomcat. De cette façon, vous pouvez récupérer les variables SHIBOLLETH fourni en tant qu'attributs de demande de servlet. (Vous devez définir le préfixe variable sur "AJP_" dans shibboleth2.xml.)

    Le package Shibboleth SP gère déjà tous les scénarios standard SAML SSO que vous pouvez vous attendre à rencontrer, mais à essayer de mettre en œuvre même l'un de ceux avec OpenSaml directement dans votre application Java. le rendre sécurisé. Vous augmenterez également la taille de votre application Web si vous utilisez openaml. Il convient de noter que le shibboleth sp n'est pas écrit en Java. Vous n'aurez donc pas d'exemples d'utiliser openaml pour cela, mais vous pourrez peut-être obtenir une idée en regardant le code Shibboleth IDP, qui est une application Web Java. < / p>

    Dans les deux cas, vous devrez échanger vos métadonnées SP (facilement créées avec le paquet Shibboleth SP) avec votre fournisseur d'identité et obtenez également les métadonnées du fournisseur d'identité sur votre SP (également facile avec le package Shibboleth sp mettre en place un métadataprovider).

    La documentation Shibboleth en ligne vous aidera beaucoup une fois que vous vous êtes habitué à l'utiliser.

    Je pense que vous aurez des chances de réussite beaucoup plus grandes si vous pouvez utiliser le package Shibboleth SP plutôt que de mettre en place une solution SAML 2 SSO avec les bibliothèques OpenSAML. Je ne peux pas parler aux autres solutions AL-Java Saml 2 SSO, mais elles semblent toutes grandes et trop entreprises par rapport à un simple shibboleth 2 sp.


0 commentaires

3
votes

Que sera nécessaire pour utiliser opensaml? Juste l'URL IDP et une inscription avec le PDI?

Vous avez besoin de Java et d'un conteneur Web et incluez la bibliothèque OpenSAML en votre guerre.

Vous devez mettre en cache des métadonnées IDP localement ou le regarder à chaque fois que vous souhaitez envoyer Authnrequest ou Process Samlresponse. Vous devez également enregistrer vos métadonnées SP sur le côté IDP.

Si vous utilisez Shibboleth comme IDP, les métadonnées SP doivent être configurées dans le fichier Conf / Relying-Party.xml.

Dois-je fournir un répertoire SP, par exemple ActiveDirectory / LDAP?

Pour vous connecter à IDP, vous devez configurer LDAP ou serveur de base de données sur le côté IDP et la configurer dans Conf / Attribute-Resolver.xml et Conf / Login.config.


0 commentaires

-3
votes

Oui, vous devez installer SP sur votre serveur ou votre machine. Et cela dépend de votre serveur Web, tel que IIS ou Apache.


0 commentaires