Spiega "l'autenticazione basata sulle attestazioni" a un bambino di 5 anni


189

Beh, non esattamente per un bambino di 5 anni, ma per favore evita le parole d'ordine e le imprese, se possibile.

L'autenticazione basata sui reclami sembra essere di gran moda ora, ma non sono riuscito a trovare una spiegazione semplice e concreta di ciò che è in realtà, in che modo è diverso da ciò che abbiamo ora (presumo "ciò che abbiamo ora" essere autenticazione basata sui ruoli), quali sono i vantaggi del suo utilizzo, ecc.


1
Sono d'accordo con @Marnix. Ora che hai una conoscenza di base, puoi collegarti più facilmente alla definizione / spiegazione di Microsoft .
FrankO

Ho anche trovato questo white paper semplice se vuoi dedicare un po 'più di attenzione e tempo. L'introduzione risponde alla domanda e gli schemi parlano di mille parole: download.microsoft.com/download/7/D/0/…
Paweł Bulwan

Kentico ha anche una spiegazione piuttosto leggera su tale terminologia docs.kentico.com/k9/managing-users/…
Hoan Dang

Risposte:


215

@Marnix ha una risposta abbastanza buona, ma per allontanarsi dall'aspetto tecnico di esso:

L'autenticazione basata sui reclami si basa sulla definizione di chi ti fidi per darti informazioni precise sull'identità e solo e sempre utilizzando tali informazioni fornite. Il mio (il) esempio di riferimento è in un bar. Immagina per un momento che vuoi prendere una birra al bar. In teoria il barista dovrebbe chiederti una prova dell'età. Come lo provi? Bene, un'opzione è quella di farti tagliare a metà il barista e contare il numero di squilli, ma potrebbero esserci dei problemi. L'altra opzione è quella di scrivere il tuo compleanno su un pezzo di carta su cui il barista approva o disapprova. La terza opzione è quella di andare al governo, ottenere una carta d'identità e quindi presentare l'ID al barista.

Alcuni potrebbero ridere all'idea di scrivere il tuo compleanno su un pezzo di carta, ma questo è ciò che sta accadendo quando si autenticano gli utenti all'interno dell'applicazione stessa perché spetta al barista (o alla tua applicazione) fidarsi del pezzo di carta . Tuttavia, ci fidiamo dell'affermazione del governo secondo cui il compleanno sull'ID è valido e l'ID è per la persona che richiede la bevanda. A tutti gli effetti, al barista (o all'applicazione) non importa davvero come è avvenuta l'autenticazione a causa della fiducia. Il barista non sa nulla di te tranne la tua data di nascita perché è tutto ciò che il barista deve sapere. Ora, il barista potrebbe archiviare informazioni che ritengono importanti per loro, come il tuo drink preferito, ma al governo non importa (in quanto non è la fonte autorevole),

La chiave per CBA è "chi è la fonte autorevole dell'identità?"


20
Eccellente analogia! Vorrei poter dare punti extra per il metodo "tagliarti a metà e contare gli anelli" per determinare l'età di una persona. Dovrò provarlo. :-)
Keith Robertson,

8
Vedo "per tutti gli scopi intensivi" così spesso che apprezzo davvero molto quando le persone dicono, "a tutti gli effetti"
JoeBrockhaus,

3
Semplice: spiega loro che le analogie su argomenti complessi non possono essere facilmente descritte in concetti semplici, indipendentemente da quanto bene li capisca. E ... perché mai un bambino di 5 anni dovrebbe davvero preoccuparsi dell'autenticazione basata sui sinistri?
Steve,

2
ho letto questo articolo e sembra che l'autenticazione basata su attestazioni sia un sistema di autenticazione di terze parti come un'autenticazione aperta o accessi social come account Microsoft, Facebook, Twitter, Google. qualcuno può dirmi in che modo l'autenticazione basata sulle attestazioni è diversa dall'autenticazione aperta? perché open auth è un sistema di autenticazione di terze parti.
Thomas

1
@Thomas OAuth riguarda in realtà l'autorizzazione, non l'autenticazione, e questo si trasforma in una conversazione completamente diversa. Forniscono informazioni di identificazione, ma l'intento è quello di utilizzare il token per accedere al loro servizio, non per identificare l'utente. Un'estensione su questo è OpenID che è destinato a identificare. In entrambi i casi, il modo semplice di pensarci (se non accurati al 100%) è che sono solo implementazioni di CBA.
Steve,

131

(Questa è la mia opinione personale su questo, gli altri possono differire. Si prega di pubblicare altri punti di vista come risposte separate.)

L'identità / autenticazione / autorizzazione basata sui reclami consiste nel separare il mantenimento delle autorizzazioni degli utenti e l'accesso degli utenti da un'applicazione (web), trasformando l'autenticazione / autorizzazione in un servizio (web) separato.

Ad esempio, quando esco per la prima volta verso un'applicazione Web abilitata alle attestazioni, reindirizzerà il mio browser a un "servizio di accesso" di cui si fida. Autenticherò a quel servizio (usando l'autenticazione di Windows, una smart card o qualsiasi altra cosa), e in risposta restituirà un 'token', che il browser rimanda all'applicazione web. Ora l'applicazione Web verifica che il token sia firmato digitalmente dal suo servizio di accesso affidabile e quindi esamina le "attestazioni" nel token. Basandosi esclusivamente su tali affermazioni, l'applicazione decide quale funzionalità viene offerta all'utente.

I reclami includeranno quasi sempre l'identità dell'utente, spesso ci sono anche reclami relativi all'autorizzazione ("questo utente può visualizzare i dati sulle vendite, ma non aggiornarli") e talvolta anche altre informazioni ("numero di scarpe = 42").

Il punto chiave è che l'applicazione non sa né si preoccupa di come l'utente è stato autenticato, né di come sono gestite le autorizzazioni: utilizza solo le informazioni delle rivendicazioni nel token firmato per determinare chi è l'utente e / o cosa l'utente può vedere o fare e / o qualsiasi altra informazione sull'utente.

(Sì, presumo che qui sia un bambino di 5 anni piuttosto intelligente e ben informato. :-)


5
Ci sono esempi come "Accedi con Facebook / Google / ..." di autenticazione basata su reclami in azione?
Wes,

1
Sono sicuro che il mio bambino di 5 anni capirà tutto ciò.
Sinaesthetic,

@questa tua domanda è un po 'vaga. Il semplice atto di accedere con Facebook o Google non è un esempio di autenticazione basata su attestazioni, no. Direi anche che l' autenticazione basata su attestazioni non è una cosa. Sarebbe un'autorizzazione se non altro. Il momento in cui CBA entrerà in gioco è durante la fase di autorizzazione dell'accesso con tali fornitori. Quando viene richiesta l'autorizzazione e si accetta, verrà aggiunto ambito al token di accesso. Questo è semanticamente diverso da un reclamo ma è spesso usato in modo molto simile.
Sinaesthetic,

40

Il seguente esempio reale è tratto da A Guide to Claims-based Identity and Access Control (2nd Edition) .

Un'analogia molto familiare è il protocollo di autenticazione che segui ogni volta che visiti un aeroporto . Non puoi semplicemente camminare fino al cancello e presentare il passaporto o la patente di guida. Invece, devi prima fare il check-in presso la biglietteria. Qui, presenti qualunque credenziale abbia senso. Se vai all'estero, mostri il passaporto. Per i voli nazionali, si presenta la patente di guida. Dopo aver verificato che il tuo ID immagine corrisponde al tuo viso ( autenticazione ), l'agente cerca il tuo volo e verifica che hai pagato per un biglietto ( autorizzazione ). Supponendo che tutto sia in ordine, ricevi una carta d'imbarco che porti al gate.

Una carta d'imbarco è molto istruttiva. Gli agenti del gate conoscono il tuo nome e il numero del frequent flyer (autenticazione e personalizzazione), il numero del tuo volo e la priorità dei posti (autorizzazione) e forse anche di più. Gli agenti di gate hanno tutto ciò di cui hanno bisogno per svolgere il proprio lavoro in modo efficiente.

Ci sono anche informazioni speciali sulla carta d'imbarco. È codificato nel codice a barre e / o nella striscia magnetica sul retro. Queste informazioni (come un numero di serie dell'imbarco) dimostrano che il pass è stato emesso dalla compagnia aerea e non è un falso.

In sostanza, una carta d'imbarco è una serie firmata di reclami presentati dalla compagnia aerea su di te . Indica che è consentito salire a bordo di un determinato volo in un determinato momento e sedersi in un determinato posto. Ovviamente, gli agenti non devono pensarci molto a fondo. Convalidano semplicemente la carta d'imbarco, leggono i reclami e ti permettono di salire a bordo dell'aereo.

È anche importante notare che potrebbe esserci più di un modo per ottenere il set di richieste firmato che è la carta d'imbarco. Potresti andare allo sportello dei biglietti all'aeroporto o utilizzare il sito web della compagnia aerea e stampare la carta d'imbarco a casa. Gli agenti di gate che si imbarcano sul volo non si preoccupano di come è stata creata la carta d'imbarco; a loro non importa quale emittente hai utilizzato, a condizione che sia considerato attendibile dalla compagnia aerea. A loro importa solo che si tratta di una serie autentica di richieste che ti danno il permesso di salire sull'aereo.

Nel software, questo pacchetto di attestazioni è chiamato token di sicurezza . Ogni token di sicurezza è firmato dall'emittente che lo ha creato. Un'applicazione basata su attestazioni considera gli utenti autenticati se presentano un token di sicurezza valido e firmato da un emittente di fiducia .


18

Per un bambino di 5 anni, chiedigli di presumere che si sia iscritto a una nuova scuola firmando la domanda dei suoi genitori. Dopo l'approvazione da parte della direzione della scuola per la sua domanda, ottiene una carta di accesso che contiene tutte le informazioni di seguito che possiamo chiamare RECLAMI per entrare nella scuola.

  1. NOME del RAGAZZO è BOB.
  2. IL NOME DELLA SCUOLA È ALTA SCUOLA MONTISSORI
  3. LA CLASSE È 8 ° GRADO

Il primo giorno della sua scuola mentre entra nella scuola, ha fatto scorrere la sua carta di accesso e le porte si sono aperte, il che significa che è stato RECESSO come una delle persone della scuola. In questo modo è una PERSONA AUTENTICATA per entrare nella scuola.

Dopo aver raggiunto la sua classe, ha usato la carta di accesso per entrare in ogni classe, ma all'ottava classe le porte si sono aperte come ha affermato di essere dall'ottava norma.

Nella scuola, è AUTORIZZATO solo per entrare nella sua classe mentre sta studiando l'ottavo standard. E se tenta di entrare nel sesto standard, l'insegnante non lo autorizzerà.


3
Questo descrive solo la nozione generale di autenticazione e autorizzazione. Non specificamente basato su reclami o altro
Sheepy

Sheepy, sicuramente le affermazioni sono spiegate da lui in terza media e negato l'accesso in prima media?
Ian,

1
ho letto questo articolo e sembra che l'autenticazione basata su attestazioni sia un sistema di autenticazione di terze parti come un'autenticazione aperta o accessi social come account Microsoft, Facebook, Twitter, Google. qualcuno può dirmi in che modo l'autenticazione basata sulle attestazioni è diversa dall'autenticazione aperta? perché open auth è un sistema di autenticazione di terze parti.
Thomas

9

Il più non tecnico possibile:

Se dovessi descrivere qualcosa su chi sei e cosa ti è stato permesso di vedere o fare, ognuna di quelle cose sarebbe qualcosa che stavi "affermando" come vera, e quindi ogni "cosa" in quella lista sarebbe un " Richiesta".

Ogni volta che dici a qualcuno qualcosa di te o "rivendichi" che ti è permesso vedere o fare qualcosa, gli dai il tuo elenco di richieste. Verificheranno con autorità che le tue affermazioni sono vere e, se lo sono, crederanno a qualsiasi cosa in quella lista di affermazioni. Quindi, se affermi di essere Brad Pitt, il tuo elenco di affermazioni afferma che sei Brad Pitt, ed è stato verificato con l'autorità che le tue affermazioni sono tutte vere, quindi crederanno che tu sia Brad Pitt insieme a qualsiasi altra cosa in quella lista.

Reclamo : ciò che affermi essere vero. Può trattarsi di un'informazione o di una descrizione di un'autorizzazione che si afferma di avere. Il sistema al quale si presentano i reclami deve solo capire cosa è / significa il reclamo ed essere anche in grado di verificare con l'autorità.

Autorità : il sistema che mette insieme il tuo elenco di rivendicazioni e lo firma che sostanzialmente dice "Sulla mia autorità, tutto in questo elenco è vero." Finché il sistema che legge i reclami può verificare con l'autorità che la firma sia corretta, allora tutto nell'elenco dei reclami sarà considerato autentico e vero.

Inoltre, non chiamiamola "autenticazione basata sulle attestazioni", piuttosto chiamiamola "identità basata sulle attestazioni".

Leggermente più tecnico:

Quindi ora in questo processo, esegui l' autenticazione utilizzando una sorta di meccanismo (nome utente / password, segreto client, certificato, ecc.) E questo ti dà un token che dimostra che sei chi dici di essere. Quindi, si scambia quel token di accesso con un token ID. Tale processo utilizzerà la tua identità per trovare e creare un elenco di reclami, firmarlo e quindi restituirti un token ID che contiene tutti i reclami.

Come fase di autorizzazione , in base alla modalità di implementazione, la risorsa esaminerà il token ID (attestazioni) e quindi verificherà se si dispone delle attestazioni necessarie per accedere a tale risorsa.

Quindi, ad esempio, se la risorsa "CastleBlack / CommandersTower" dice che "devi avere accesso al castello nero ed essere il comandante del signore, allora esaminerà il tuo elenco di affermazioni per vedere se entrambe queste cose sono vere.

Come vedi, le "affermazioni" possono essere qualsiasi cosa. Può essere un ruolo, può essere un fatto, può essere una bandiera. È solo un elenco di coppie chiave-valore e il "valore" è facoltativo. A volte si tratta solo di vedere se il reclamo esiste:

claims : [
    {"type": "name", "value": "Jon Snow"},
    {"type": "home", "value": "Winterfell, The North, Westeros"},   
    {"type": "email", "value": "jon@nightswatch-veterans.org"},
    {"type": "role", "value": "veteran;deserter;"},
    {"type": "department", "value": "none"},    
    {"type": "allowEntry", "value": "true"},
    {"type": "access", "value": "castleblack;eastwatch;"}
]

Quindi, se Jon si connettesse e provasse ad accedere alla risorsa sopra descritta, gli sarebbe negato perché, mentre è quello che dice di essere e ha accesso al castello nero, non è più il comandante del signore né ha accesso esplicito a la torre del comandante, e quindi non può entrare implicitamente nella torre del comandante del signore.

Più specificamente, "CastleBlack" sarebbe probabilmente un ambito [più ampio] e ogni area sarebbe un'autorizzazione specifica, ma questa è una discussione diversa.

Il modo in cui ciascuna applicazione gestisce l'accesso sarà diverso, ma utilizzerà le attestazioni per farlo.


5

Considerando che un reclamo è un attributo che ti dice qualcosa sull'utente (nome, età, etnia, ecc.), Lavori contro un servizio token di sicurezza per convalidare tali reclami e anche utilizzarli per l'autorizzazione oltre all'autenticazione.

Il seguente estratto è tratto da Wikipedia ( http://en.wikipedia.org/wiki/Claims-based_identity ) ed è la migliore analogia che ho trovato finora

"Per comprendere meglio il concetto di servizio di token di sicurezza, considerare l'analogia di un night club con un portiere. Il portiere vuole impedire l'ingresso ai clienti minorenni. Per facilitare ciò, chiede a un utente di presentare una patente di guida, tessera sanitaria o altra identificazione (il token) che è stata emessa da una terza parte di fiducia (il servizio token di sicurezza) come il dipartimento delle licenze per veicoli provinciali o statali, il dipartimento sanitario o la compagnia assicurativa. La discoteca è quindi alleviata dalla responsabilità di determinare il cliente età. Deve solo fidarsi dell'autorità emittente (e ovviamente esprimere il proprio giudizio sull'autenticità del token presentato). Con questi due passaggi completati, la discoteca ha autenticato con successo il cliente per quanto riguarda l'affermazione che lui o lei è di età legale per bere.

Continuando l'analogia, la discoteca potrebbe avere un sistema di abbonamento e alcuni membri possono essere regolari o VIP. Il portiere potrebbe chiedere un altro gettone, la tessera associativa, che potrebbe presentare un altro reclamo; che il membro è un VIP. In questo caso, l'autorità di emissione fidata del token sarebbe probabilmente il club stesso. Se la tessera associativa afferma che il patrono è un VIP, il club può reagire di conseguenza, traducendo la rivendicazione di appartenenza VIP autenticata in un'autorizzazione come il patrocinante che può sedersi nell'area lounge esclusiva e ricevere bevande gratuite. "

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.