/ / Quali sono le principali tecnologie di identità federate? - oauth, openid, saml, identità basata sulle attestazioni, identità federata

Quali sono le principali tecnologie di identità federate? - oauth, openid, saml, identità basata sulle attestazioni, identità federata

Devo capire come faremoAutorizzazione e autenticazione per la nostra applicazione. Quali sono le 3 principali tecnologie per l'implementazione dell'autorizzazione e dell'autenticazione? Vorremmo che la nostra applicazione non si basasse su sessioni, sarebbe più desiderabile utilizzare i token. Devo creare un fornitore di identità e non ho mai fatto nulla di simile. Per favore aiuto!

risposte:

4 per risposta № 1

Come dice OhadR, sei riuscito a taggare il tuo postcon i 3 principali standard: OAuth, OpenID e SAML. Tuttavia, non sono d'accordo con la sua affermazione sul livello di complessità di SAML. Inoltre, le vostre dichiarazioni: "Vorremmo che la nostra applicazione non si basasse su sessioni, sarebbe più desiderabile utilizzare i token. Ho bisogno di creare un fornitore di identità ... "sono un po 'in disaccordo con l'altro: parli della" tua applicazione "in un soffio, ma poi dici che devi" creare un fornitore di identità "in un altro ... Quindi, io Parlerò solo in termini generali. Per essere aperto, lavoro per Ping Identity - vendiamo un prodotto chiamato PingFederate che fa tutto questo.

Con OpenID e OAuth, ce ne sono moltisomiglianza (soprattutto dal momento che OpenID Connect è essenzialmente OAuth2 con un'estensione o due). Diverse aziende li utilizzano in modi diversi (ad esempio, Google, Facebook e Twitter). Tutti loro stanno cercando di essere il fornitore di identità di scelta, ovviamente, ma di questi tre, Google ti consentirà anche di utilizzarlo come fornitore di servizi. Entrambe queste tecnologie sono "basate su token", ovvero la tua applicazione genera e conferma i token per l'autenticazione (e forse l'autorizzazione) quando sei il provider di identità, oppure verifica la validità di quel token con il provider di identità entro un determinato periodo di momento in cui sei il fornitore di servizi.

Con SAML, stai parlando sessioni (che tuindica che NON VOGLIONO). L'utente si presenta alla tua applicazione e invia l'utente per ottenere l'autenticazione per quella sessione e restituire con una sessione autenticata e possibilmente alcuni attributi per aiutare la tua applicazione a fare l'autorizzazione.

Per quanto riguarda l'uso ... Questo è dove diventa più difficile. SAML è sicuramente là fuori. Quasi tutti i veri fornitori di servizi ti permetteranno di usare SAML. Molte aziende hanno implementato provider di identità. Se stai costruendo un'applicazione per le imprese da utilizzare, sarai sicuro nel far sì che la tua applicazione consumi SAML. OpenID e OAuth sono più recenti, per essere sicuri, così poche imprese li hanno resi disponibili dal punto di vista dell'IdP - c'è molto da configurare (archiviazione dei token e degli ambiti). Mi azzarderei a indovinare e dire che solo uno su cinque (o forse meno) le imprese che eseguono SAML come IdP eseguono anche OAuth o OpenID, lo stesso vale per le aziende che fungono da fornitori di servizi.

In definitiva, devi basare la tua decisionesul tuo caso d'uso. Stai agendo come fornitore di servizi o provider di identità? Che cosa vuoi collegare? Cosa offrono queste imprese come fornitori di servizi o provider di identità? Cominci con SAML e si diramano più tardi su OAuth / OpenID man mano che le tue connessioni lo rendono disponibile?

Buona fortuna, e spero di averlo aiutato.


1 per risposta № 2

AFAIK i tre che hai taggato sono i più comuni: oAuth, SAML e OpenID. Queste 3 non sono "tecnologie", ma sono specifiche. Ognuno ha pro e contro ...

Se stai per implementare la tua identitàProvider, preferirei oAuth: sarà più facile da implementare. SAML IDP è molto più complicato - Shioboleth non è facile da implementare. Puoi usare l'estensione Spring per l'implementazione di oAuth 2.0.

HTH.