Différences entre SSO initié par le SP et SSO initié par IDP

107

Quelqu'un peut-il m'expliquer quelles sont les principales différences entre SSO initié par SP et SSO initié par IDP , y compris quelle serait la meilleure solution pour implémenter l'authentification unique en conjonction avec ADFS + OpenAM Federation?

pbhle
la source
2
Pour clarifier pour tous ceux qui découvrent les concepts d'authentification unique: SP = fournisseur de services (le système que l'utilisateur souhaite utiliser) et IdP = identifier le fournisseur (le système qui authentifie l'utilisateur)
Seafish

Réponses:

72

Dans IDP Init SSO (SSO Web non sollicité), le processus de fédération est lancé par l'IDP qui envoie une réponse SAML non sollicitée au SP. Dans SP-Init, le SP génère une AuthnRequest qui est envoyée à l'IDP comme première étape du processus de fédération et l'IDP répond alors avec une réponse SAML. Le support IMHO ADFSv2 pour SAML2.0 Web SSO SP-Init est plus fort que son support IDP-Init concernant l'intégration avec les produits tiers Fed (principalement tourné autour du support pour RelayState) donc si vous avez le choix, vous voudrez utiliser SP- Init car cela vous facilitera probablement la vie avec ADFSv2.

Voici quelques descriptions SSO simples du Guide de démarrage de PingFederate 8.0 que vous pouvez parcourir et qui peuvent également aider - https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html

Ian
la source
81

SSO initiée par IDP

Depuis la documentation PingFederate: - https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html

Dans ce scénario, un utilisateur est connecté à l'IdP et tente d'accéder à une ressource sur un serveur SP distant. L'assertion SAML est transportée vers le SP via HTTP POST.

Étapes de traitement:

  1. Un utilisateur s'est connecté à l'IdP.
  2. L'utilisateur demande l'accès à une ressource SP protégée. L'utilisateur n'est pas connecté au site SP.
  3. Le cas échéant, l'IdP récupère les attributs du magasin de données utilisateur.
  4. Le service SSO de l'IdP renvoie un formulaire HTML au navigateur avec une réponse SAML contenant l'assertion d'authentification et tout attribut supplémentaire. Le navigateur envoie automatiquement le formulaire HTML au SP.

SSO initié par le SP

Depuis la documentation PingFederate: - http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST

Dans ce scénario, un utilisateur tente d'accéder à une ressource protégée directement sur un site Web SP sans être connecté. L'utilisateur ne possède pas de compte sur le site SP, mais dispose d'un compte fédéré géré par un IdP tiers. Le SP envoie une demande d'authentification à l'IdP. La demande et l'assertion SAML renvoyée sont envoyées via le navigateur de l'utilisateur via HTTP POST.

Étapes de traitement:

  1. L'utilisateur demande l'accès à une ressource SP protégée. La demande est redirigée vers le serveur de fédération pour gérer l'authentification.
  2. Le serveur de fédération renvoie un formulaire HTML au navigateur avec une demande d'authentification SAML de l'IdP. Le formulaire HTML est automatiquement publié sur le service SSO de l'IdP.
  3. Si l'utilisateur n'est pas déjà connecté au site IdP ou si une ré-authentification est requise, l'IdP demande des informations d'identification (par exemple, ID et mot de passe) et l'utilisateur se connecte.
  4. Des informations supplémentaires sur l'utilisateur peuvent être extraites du magasin de données utilisateur pour être incluses dans la réponse SAML. (Ces attributs sont prédéterminés dans le cadre de l'accord de fédération entre l'IdP et le SP)

  5. Le service SSO de l'IdP renvoie un formulaire HTML au navigateur avec une réponse SAML contenant l'assertion d'authentification et tout attribut supplémentaire. Le navigateur envoie automatiquement le formulaire HTML au SP. REMARQUE: les spécifications SAML exigent que les réponses POST soient signées numériquement.

  6. (Non illustré) Si la signature et l'assertion sont valides, le SP établit une session pour l'utilisateur et redirige le navigateur vers la ressource cible.

utilisateur3061250
la source
1
Re SP Initiated SSO - le point 3 ci-dessus indique "Si l'utilisateur n'est pas déjà connecté au site IdP ou si une ré-authentification est requise, l'IdP demande des informations d'identification (par exemple, ID et mot de passe) et l'utilisateur se connecte." Comment le système détermine-t-il si l'utilisateur est connecté au site IdP? Génère-t-il un cookie, par exemple?
Edwardo
1
@Edwardo Votre hypothèse est correcte. Lorsqu'une session est établie avec un IdP, l'IdP génère généralement un cookie pour maintenir cette session.
jekennedy
J'ai une autre question stackoverflow.com/questions/43861315/… . Pouvez-vous y jeter un œil?
kawadhiya21
49

SSO initié par le SP

Bill l'utilisateur: "Hey Jimmy, montre-moi ce rapport"

Jimmy the SP: "Hé, je ne sais pas encore qui vous êtes. Nous avons un processus ici donc vous allez d'abord vous faire vérifier auprès de Bob l'IdP. Je lui fais confiance."

Bob l'IdP: "Je vois que Jimmy vous a envoyé ici. Veuillez me donner vos informations d'identification."

Bill l'utilisateur: "Bonjour, je suis Bill. Voici mes informations d'identification."

Bob l'IdP: "Salut Bill. On dirait que vous avez vérifié."

Bob l'IdP: "Salut Jimmy. Ce type Bill vérifie et voici quelques informations supplémentaires sur lui. Vous faites ce que vous voulez à partir d'ici."

Jimmy the SP: "Ok cool. On dirait que Bill est également dans notre liste d'invités connus. Je vais laisser Bill entrer."

Authentification unique initiée par IdP

Bill l'utilisateur: "Salut Bob. Je veux aller chez Jimmy. La sécurité est stricte là-bas."

Bob l'IdP: "Hé Jimmy. Je fais confiance à Bill. Il vérifie et voici quelques informations supplémentaires sur lui. Tu fais ce que tu veux d'ici."

Jimmy the SP: "Ok cool. On dirait que Bill est également dans notre liste d'invités connus. Je vais laisser Bill entrer."


Je vais plus en détail ici, mais en gardant les choses simples: https://jorgecolonconsulting.com/saml-sso-in-simple-terms/ .

2upmédia
la source
33
Je ne pense pas que la deuxième conversation soit la bonne ... à la place, elle devrait être: IdP: "Hé, voici quelques informations sur Sal, merci de la laisser entrer" / SP: "Ok, je te fais confiance, je vais la laisser dans "
Jeff Olson
4
la première conversation n'est pas non plus correcte: dans la première étape, SP ne sait encore rien de quel utilisateur il s'agit, ce n'est qu'au niveau de l'IdP que l'utilisateur se connectera et s'identifiera comme "Sal"
Allie
4
La première conversation devrait être: SP: "Hey, où est ton identifiant?" IdP: "Attendez, je vais vérifier. Laissez-moi voir votre pièce d'identité s'il vous plaît. Ok, laissez-la entrer, elle s'appelle Sal et elle a 21 ans (facultatif)" SP: "Cool mec, tu es génial! Salut toi, entre ! "
Erdal G.
3
Je pense que cette réponse ne mérite pas les votes négatifs qu'elle a obtenus. Il répond à la question d'une manière créative, peut-être pas aussi précise que certains l'ont souligné, mais créative non moins.
Aaron C
2
Il serait intéressant de voir la bonne réponse dans ce format. Mes yeux brillent sur la lecture des réponses votées, ce format permet de saisir très rapidement le concept général. Je ne sais pas assez pour créer en toute confiance une réponse basée sur les commentaires moi-même.
Sean Connolly