103 votes

SAML vs federated login avec OAuth

Quelle est la différence entre SAML et connexion fédérée avec OAuth ? Quelle solution est la plus logique, si une entreprise veut utiliser une application Web de tierces parties, et mais aussi veut single sign-on et l’autorité d’authentification ?

128voto

Nix Points 22944

Ils résoudre les différents problèmes.

SAML est un ensemble de normes qui ont été définies afin de partager des informations sur un utilisateur qui est, quel est son ensemble d'attributs, et vous donner un moyen d'accorder ou de refuser l'accès à quelque chose ou même de demande d'authentification.

OAuth est plus une question de la délégation de l'accès à quelque chose. Vous êtes essentiellement en permettant à quelqu'un de "loi" comme vous. Son plus couramment utilisé pour accorder l'accès de l'api qui peut faire quelque chose en votre nom.

Ils sont deux choses complètement différentes.


Quelques exemples qui pourraient vous aider.

OAuth penser à un twitter. Disons que vous êtes à l'aide de Google Buzz et Twitter, et vous voulez écrire une application pour être en mesure de garder les deux synchronisée. En gros, vous pouvez établir une relation de confiance entre votre application et twitter. La première fois que vous allez au lien de l'application de twitter, de vous faire le classique invite à vous connecter sur twitter, et alors que la boîte de dialogue de confirmation s'affiche et vous demande "voulez-vous accorder l'accès à «le nom de votre appli»?" une fois que vous cliquez sur "oui", la fiducie a été établie, et maintenant, votre application peut agir comme vous sur Twitter. Il peut lire vos messages, ainsi que d'en faire de nouveaux.

SAML Pour SAML penser à un certain type de "contrat" entre les deux indépendants de l'appartenance des systèmes. Dans notre cas, nous pouvons utiliser US Airways et Hertz. Il n'est pas partagé ensemble d'informations d'identification que vous pouvez prendre à partir d'un site à l'autre, mais disons que Hertz veut proposer un "deal" pour US Airways. (Certes, je sais que c'est un exemple extrême, mais nu avec moi). Après l'achat d'un vol, ils vous offrent gratuitement une voiture de location à son Président les membres. US Airways et Hertz serait l'installation d'une certaine forme de confiance, et un moyen d'identification de l'utilisateur. Dans notre cas, notre "fédéré id" serait l'adresse e-mail, et il serait un ensemble de fiducie Hertz fiducies de US Airways fournisseur d'identité de livrer un jeton qui est précis et d'une manière sécurisée. Après la réservation du vol US Airways fournisseur d'identité permettrait de générer un jeton et remplir la façon dont ils ont authentifié l'utilisateur, ainsi que des "attributs" au sujet de la personne dans notre cas, l'attribut le plus important serait son statut de US Airways. Une fois le jeton a été peuplée il passe par un certain type de référence, ou codée dans une url et une fois que nous obtenons auprès de Hertz, il regarde le jeton, le valide et maintenant peut permettre la libre voiture de location.

Le problème avec cette SAML exemple est-ce qu'une seule spécialisées cas d'utilisation de plusieurs. SAML est un standard et il n'y a presque trop de façons que vous pouvez la mettre en œuvre.


Alternativement, si vous n'avez pas de soins sur l'autorisation d', on pourrait presque soutenir que d'affirmer l'authentification SAML et OpenID.

43voto

quickshiftin Points 6379

Jetez un oeil à cette simple explication

Beaucoup de gens sont confus au sujet des différences entre SAML, OpenID et OAuth, mais c'est en fait très simple. Bien qu'il existe certaines chevaucher, voici une façon très simple de faire la distinction entre les trois.

OpenID – single sign-on pour les consommateurs

SAML – single sign-on pour les utilisateurs en entreprise

OAuth API d'autorisation entre les applications

Pour les gens à l'aise avec OO modèles de conception, je pense qu'il y a une belle corollaire de wrapper modèles. Pense que de Façade, Décorateur et Proxy modèles. Fondamentalement, ce sont tous les mêmes, ils sont juste des wrappers... La différence est de l' intention de chaque modèle.

De même, SAML, OAuth et OpenID tous les faciliter des intentions différentes par l'intermédiaire d'un commun mécanisme sous-jacent, qui est la redirection vers un fournisseur de service/de l'identité de l'autorité pour certains interaction privée, suivie par la redirection à l'origine de l'application tierce.

En regardant autour sur le net, vous trouverez de chevauchement entre les protocoles' capacités. L'authentification via OAuth est parfaitement raisonnable. L'authentification unique sur OAuth ne peut pas faire beaucoup de sens, bien que SAML et OpenID sont spécifiquement orientées vers l'identité fédérée.

À la question elle-même, dans un contexte commercial, SAML semble plus approprié que OAuth pour l'authentification unique. Je parie que si vous regardez la troisième partie applications que vous souhaitez intégrer à votre identité d'entreprise, vous trouverez qu'ils sont déjà conçus pour s'intégrer avec SAML/LDAP/Radius, etc. OMI OAuth est plus approprié pour Internet de l'interaction entre les applications ou peut-être les demandes comportant une Architecture Orientée Service dans une grande entreprise.

Les règles d'autorisation peut être spécifié dans un environnement d'entreprise dans d'autres façons aussi. LDAP est un outil pour cela. L'organisation des utilisateurs en groupes et en associant les privilèges de l'application à l'encontre de l'appartenance à un groupe est une approche très répandue. Arrive LDAP peut être utilisé pour l'authentification. Active Directory est un bon exemple, mais je préfère OpenLDAP.

3voto

yudis Points 31

Ils gèrent un cas d’utilisation subtile

SAML - partage d’informations d’identification (p. ex., SSO) d’un utilisateur à divers fournisseurs de services (p. ex., service web ou web) OAuth - un utilisateur déléguant une appli pour accéder à une ressource sur être la moitié de son

2voto

makerofthings7 Points 10028

SAML a une variété de "profils" de choisir d'autoriser d'autres utilisateurs à "ouvrir une session" à votre site. SAML-P ou SAML Passive est très commun et assez simple à mettre en place. WS-Trust est similaire et il permet pour la fédération parmi les sites web.

OAuth est conçu pour l'autorisation. Vous pouvez en lire plus ici:

http://stackoverflow.com/questions/1087031/whats-the-difference-between-openid-and-oauth

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X