Differenze tra SSO avviato da SP e SSO avviato da IDP


107

Qualcuno può spiegarmi quali sono le principali differenze tra SSO avviato da SP e SSO avviato da IDP , inclusa quale sarebbe la soluzione migliore per l'implementazione del Single Sign-On in combinazione con ADFS + OpenAM Federation?


2
Per chiarire ai nuovi concetti di Single Sign-On: SP = fornitore di servizi (il sistema che l'utente desidera utilizzare) e IdP = provider di identificazione (il sistema che autentica l'utente)
Seafish

Risposte:


72

In IDP Init SSO (Unsolicited Web SSO) il processo di federazione viene avviato dall'IDP che invia una risposta SAML non richiesta all'SP. In SP-Init, l'SP genera un AuthnRequest che viene inviato all'IDP come primo passaggio nel processo di federazione e l'IDP risponde quindi con una risposta SAML. Il supporto IMHO ADFSv2 per SAML2.0 Web SSO SP-Init è più forte del suo supporto IDP-Init re: integrazione con prodotti Fed di terze parti (principalmente ruotano attorno al supporto per RelayState) quindi se hai una scelta ti consigliamo di utilizzare SP- Iniziare perché probabilmente renderà la vita più facile con ADFSv2.

Ecco alcune semplici descrizioni SSO dalla Guida introduttiva di PingFederate 8.0 che puoi sfogliare che potrebbero essere utili: https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html


81

SSO avviato da IDP

Dalla documentazione di PingFederate: - https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html

In questo scenario, un utente è connesso all'IdP e tenta di accedere a una risorsa su un server SP remoto. L'asserzione SAML viene trasportata all'SP tramite HTTP POST.

Fasi di elaborazione:

  1. Un utente ha effettuato l'accesso all'IdP.
  2. L'utente richiede l'accesso a una risorsa SP protetta. L'utente non è connesso al sito SP.
  3. Facoltativamente, l'IdP recupera gli attributi dall'archivio dati utente.
  4. Il servizio SSO dell'IdP restituisce un modulo HTML al browser con una risposta SAML contenente l'asserzione di autenticazione e qualsiasi attributo aggiuntivo. Il browser invia automaticamente il modulo HTML all'SP.

SSO avviato da SP

Dalla documentazione di PingFederate: - http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST

In questo scenario un utente tenta di accedere a una risorsa protetta direttamente su un sito Web SP senza essere connesso. L'utente non dispone di un account sul sito SP, ma dispone di un account federato gestito da un IdP di terze parti. L'SP invia una richiesta di autenticazione all'IdP. Sia la richiesta che l'asserzione SAML restituita vengono inviate tramite il browser dell'utente tramite HTTP POST.

Fasi di elaborazione:

  1. L'utente richiede l'accesso a una risorsa SP protetta. La richiesta viene reindirizzata al server federativo per gestire l'autenticazione.
  2. Il server federativo invia un modulo HTML al browser con una richiesta SAML per l'autenticazione dall'IdP. Il modulo HTML viene automaticamente pubblicato nel servizio SSO dell'IdP.
  3. Se l'utente non è già connesso al sito IdP o se è richiesta una nuova autenticazione, l'IdP richiede le credenziali (ad esempio, ID e password) e l'utente accede.
  4. Ulteriori informazioni sull'utente possono essere recuperate dall'archivio dati utente per l'inclusione nella risposta SAML. (Questi attributi sono predeterminati come parte dell'accordo di federazione tra IdP e SP)

  5. Il servizio SSO dell'IdP restituisce un modulo HTML al browser con una risposta SAML contenente l'asserzione di autenticazione e qualsiasi attributo aggiuntivo. Il browser invia automaticamente il modulo HTML all'SP. NOTA: le specifiche SAML richiedono che le risposte POST siano firmate digitalmente.

  6. (Non mostrato) Se la firma e l'asserzione sono valide, l'SP stabilisce una sessione per l'utente e reindirizza il browser alla risorsa di destinazione.


1
Re SSO avviato da SP - il punto 3 sopra dice "Se l'utente non è già connesso al sito IdP o se è richiesta una nuova autenticazione, l'IdP richiede le credenziali (ad esempio, ID e password) e l'utente accede". In che modo il sistema determina se l'utente è connesso al sito IdP? Ad esempio, genera un cookie?
Edwardo

1
@Edwardo La tua ipotesi è corretta. Quando viene stabilita una sessione con un IdP, in genere l'IdP genera un cookie per mantenere quella sessione.
jekennedy

Ho un'altra domanda stackoverflow.com/questions/43861315/… . Puoi dargli un'occhiata?
kawadhiya21

49

SSO avviato da SP

Bill l'utente: "Hey Jimmy, mostrami quel rapporto"

Jimmy the SP: "Ehi, non sono ancora sicuro di chi sei. Abbiamo un processo qui, quindi vai prima a farti verificare con Bob l'IdP. Mi fido di lui."

Bob l'IDP: "Vedo che Jimmy ti ha mandato qui. Per favore, dammi le tue credenziali."

Bill l'utente: "Ciao sono Bill. Ecco le mie credenziali."

Bob the IdP: "Ciao Bill. Sembra che tu abbia controllato."

Bob the IdP: "Ehi Jimmy. Questo ragazzo Bill controlla ed ecco alcune informazioni aggiuntive su di lui. Fai quello che vuoi da qui."

Jimmy the SP: "Ok, fantastico. Sembra che Bill sia anche nella nostra lista di ospiti conosciuti. Lascio entrare Bill."

SSO avviato da IdP

Bill l'utente: "Ehi Bob. Voglio andare a casa di Jimmy. La sicurezza laggiù è stretta."

Bob l'IDP: "Ehi Jimmy. Mi fido di Bill. Controlla ed ecco alcune informazioni aggiuntive su di lui. Fai quello che vuoi da qui."

Jimmy the SP: "Ok, fantastico. Sembra che Bill sia anche nella nostra lista di ospiti conosciuti. Lascio entrare Bill."


Vado più in dettaglio qui, ma mantenendo le cose semplici: https://jorgecolonconsulting.com/saml-sso-in-simple-terms/ .


33
Non credo che la seconda conversazione sia giusta .... invece dovrebbe essere: IdP: "Ehi, ecco alcune informazioni su Sal, per favore falla entrare" / SP: "Ok, mi fido di te, la lascerò in "
Jeff Olson

4
anche la prima conversazione non è corretta: nella prima fase SP non sa ancora nulla di quale utente sia, solo su IdP l'utente accederà e si identificherà come "Sal"
Allie

4
La prima conversazione dovrebbe essere: SP: "Ehi, dov'è la tua carta d'identità?" IdP: "Aspetta, controllerò. Fammi vedere il tuo documento, per favore. Ok fratello, lasciala entrare, si chiama Sal e ha 21 anni (facoltativamente)" SP: "Fantastico amico, sei fantastico! Ehi tu, vieni dentro !"
Erdal G.

3
Credo che questa risposta non meriti i voti negativi che ha ottenuto. Risponde alla domanda in modo creativo, forse non così accurato come alcuni hanno sottolineato, ma comunque creativo.
Aaron C

2
Sarebbe interessante vedere la risposta corretta in questo formato. I miei occhi fissano la lettura delle risposte votate, questo formato aiuta ad afferrare il concetto generale molto rapidamente. Non ne so abbastanza per creare con sicurezza una risposta basata sui commenti.
Sean Connolly
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.