Autenticazione contro autorizzazione


626

Qual è la differenza nel contesto delle applicazioni Web? Vedo molto l'abbreviazione "auth". Significa autenticazione o autenticazione ? O entrambi?


51
ricorda questo: l'autenticazione controlla le credenziali, l'autorizzazione controlla le autorizzazioni.
Onur Yıldırım,

1
Duplicato su più siti: serverfault.com/q/57077
Kyll

Recentemente per le abbreviazioni che ho visto authnper autenticazione e authzautorizzazione
jdf

Risposte:


865

L'autenticazione è il processo per accertare che qualcuno sia davvero quello che affermano di essere.

L'autorizzazione si riferisce a regole che determinano chi è autorizzato a fare cosa. Ad esempio, Adam può essere autorizzato a creare ed eliminare database, mentre Usama è autorizzato solo a leggere.

I due concetti sono completamente ortogonali e indipendenti, ma entrambi sono fondamentali per la progettazione della sicurezza e l'incapacità di ottenere uno dei due apre la strada al compromesso.

In termini di app Web, in termini molto rozzi, l'autenticazione avviene quando si controllano le credenziali di accesso per vedere se si riconosce un utente come connesso e l'autorizzazione è quando si cerca nel controllo di accesso se si consente all'utente di visualizzare, modificare, eliminare o creare contenuti.


32
Le definizioni sembrano buone, ma certamente non sembrano essere indipendenti. Come definito, l' autorizzazione non implica anche l' autenticazione ? Come puoi consentire l'operazione di cancellazione del database di Adam se dubiti che sia Adam? In altre parole, se l'operazione di eliminazione di Adam è autorizzata, si spera che ciò implichi che Adam sia autenticato.
Timo,

7
@Timo: presumibilmente un'applicazione vorrà fare entrambe le cose, ma sono concetti ortogonali a prescindere. Il tuo capo potrebbe rivedere le autorizzazioni del personale ad accedere a componenti critici dell'azienda, al jet dell'azienda e al frigorifero della birra senza alcuna preoccupazione per quale particolare individuo nel feed CCTV corrisponda ai nomi nel foglio di calcolo. Quest'ultimo sarebbe la preoccupazione della guardia giurata.
Kerrek SB,

1
I concetti sono decisamente ortogonali. L'autenticazione non sta necessariamente dimostrando la tua identità. Potrebbe essere un'affermazione su di te, ad esempio l'età. Quando bevi, autentichi la tua età mostrando un documento d'identità. Quindi potresti essere autorizzato a bere a seconda della tua età e della giurisdizione in cui ti trovi (puoi bere se> 21 negli Stati Uniti> 18 in Europa)
David Brossard

1
@Sinjai: Penso che il punto sia che queste sono preoccupazioni ortogonali, e possono essere affrontate da strutture separate: ad esempio il buttafuori (di fiducia) alla porta può stabilire l'età del cliente e diversi servizi all'interno dello stabilimento possono avere età diverse limiti, ma tutti useranno il valore ottenuto dal buttafuori per prendere le decisioni di ammissione.
Kerrek SB,

1
Un altro modo per esaminarlo (nel contesto dell'esempio della sala bar) sarebbe considerare che l'autenticazione è il processo di abbinamento della foto sulla carta d'identità con la persona che si trova di fronte a te mentre l'autorizzazione è il processo di convalida della loro età soddisfa i requisiti legali. A mio avviso, l'elemento in questo mix che provoca lo sfocamento delle linee è che entrambi i test devono anche essere sia consapevoli che induriti contro la falsificazione (l'ID è un falso) che la maggior parte delle persone tende a considerare come un problema di autenticazione piuttosto altrettanto importante sia per la certificazione auth-c che auth-z.
Ryan Hansen,

660

In breve, per favore. :-)

Autenticazione = login + password (chi sei)

Autorizzazione = autorizzazioni (cosa ti è permesso fare)

È probabile che il termine "auth" si riferisca al primo o ad entrambi.


3
Dolce come un pezzo di torta :)
devansvd,

Mi piace questo, breve e dolce.
Re

5
Quindi non capisco ancora perché un'intestazione di autorizzazione HTTP contiene informazioni di autenticazione ... Non è un nome sfortunato?
Jens,

@Jens Risposta breve: si. Roy Fielding non sapeva meglio in quel momento ... ;-) </tongue-in-cheek>
Per Lundberg

@Jens Mi sto chiedendo anche quello. Trovo utile l'intuizione di questa risposta . Poiché HTTP è senza stato , le informazioni di autenticazione devono essere inviate insieme a ogni richiesta, non solo alle richieste di inizio e di chiusura (come, stabilire una sessione sicura e inviare richieste senza autenticazione in mezzo). Pertanto, tale intestazione della richiesta dovrebbe essere un'autorizzazione , perché porta quasi sempre altre intenzioni (recupero dati, img, ...), non solo autenticazione .
Minh Nghĩa,

83

Come dice Authentication vs Authorization :

L'autenticazione è il meccanismo mediante il quale i sistemi possono identificare in modo sicuro i propri utenti. I sistemi di autenticazione forniscono una risposta alle domande:

  • Chi è l'utente?
  • L'utente è davvero quello che rappresenta se stesso?

L'autorizzazione , al contrario, è il meccanismo attraverso il quale un sistema determina il livello di accesso che un determinato utente autenticato dovrebbe avere per proteggere le risorse controllate dal sistema. Ad esempio, un sistema di gestione del database potrebbe essere progettato in modo da fornire a determinate persone specificate la possibilità di recuperare informazioni da un database ma non la possibilità di modificare i dati memorizzati nella base dati, offrendo allo stesso tempo agli altri la possibilità di modificare i dati. I sistemi di autorizzazione forniscono risposte alle domande:

  • L'utente X è autorizzato ad accedere alla risorsa R?
  • L'utente X è autorizzato a eseguire l'operazione P?
  • L'utente X è autorizzato a eseguire l'operazione P sulla risorsa R?

Guarda anche:


34

Preferisco la verifica e le autorizzazioni all'autenticazione e all'autorizzazione.

È più facile nella mia testa e nel mio codice pensare a "verifica" e "autorizzazioni" perché le due parole

  • non suonare allo stesso modo
  • non hanno la stessa sigla

L'autenticazione è la verifica e l'autorizzazione sta verificando le autorizzazioni. Auth può significare entrambi, ma è usato più spesso come "User Auth", cioè "User Authentication"


2
La verifica IMHO sembra avere un ambito leggermente più aperto rispetto all'autenticazione, anche se l'autenticazione sembra essere una sorta di verifica, non ogni verifica è un'autenticazione ... quindi direi che è sempre necessario un contesto: verifica dell'accesso degli utenti ecc., Autenticazione sembra sempre accadere nel campo di "è davvero il ragazzo / macchina?" (colpiscimi se sbaglio, non un madrelingua, ma: "verifica" che le INFORMAZIONI fornite siano accurate rispetto alle autenticazioni sembra avere a che fare con il sapere che la persona / macchina è quella che finge di essere)
Beachwalker,

14

La confusione è comprensibile, poiché le due parole suonano simili e poiché i concetti sono spesso strettamente correlati e usati insieme. Inoltre, come detto, l'abbreviazione comunemente usata Auth non aiuta.

Altri hanno già descritto bene cosa significano autenticazione e autorizzazione. Ecco una semplice regola per mantenere i due chiaramente separati:

  • Auth Enti cazione convalida la Id Enti ty (o l'autenticità , se si preferisce che)
  • Autore zione convalida l'autore lità, vale a dire i diritti di accesso ed eventualmente cambiare qualcosa.

12

Ho cercato di creare un'immagine per spiegarlo con parole più semplici

1) Autenticazione significa "Sei chi dici di essere?"

2) Autorizzazione significa "Dovresti essere in grado di fare quello che stai cercando di fare?".

Questo è anche descritto nell'immagine seguente.

inserisci qui la descrizione dell'immagine

Ho cercato di spiegarlo nel miglior modo possibile e ho creato un'immagine dello stesso.


4

L'autenticazione è il processo di verifica dell'identità proclamata.

  • ad esempio nome utente / password

Di solito seguita da autorizzazione , che è l'approvazione che si può fare questo e quello.

  • ad es. permessi

Questa risposta è già fornita con una spiegazione approfondita.
Sonu patel

3

Aggiungendo alla risposta di @ Kerrek;

L'autenticazione è un modulo generalizzato (tutti i dipendenti possono accedere alla macchina)

L'autorizzazione è un modulo specializzato (ma solo l'amministratore può installare / disinstallare l'applicazione in Macchina)


1
La parola "può" si applica solo all'autorizzazione. L'autenticazione ha poco o nulla a che fare con il login. Potrei benissimo Autenticare che tu sia Boobalan in molti modi (non solo nome utente / password). Una volta autenticato e sapendo chi sei, potrei benissimo NON autorizzarti ad accedere o fare qualsiasi cosa sul mio sito. Sei autenticato, ma non puoi fare diddley-squat. È confuso e scorretto usare la parola "can" quando si parla di Autenticazione.
Suamere,

3

L'autenticazione è il processo di verifica del nome utente e della password di accesso.

L'autorizzazione è il processo di verifica dell'accesso a qualcosa.


3
Questa "risposta" non aggiunge nulla alle risposte già fornite.
Ojonugwa Jude Ochalifu,

1

definizioni

Autenticazione : sei la persona che dichiari di essere?

Autorizzazione : sei autorizzato a fare qualsiasi cosa tu stia cercando di fare?

Esempio

Un'app Web utilizza l'accesso a Google . Dopo che un utente ha eseguito correttamente l'accesso, Google invia indietro:

  1. Un token JWT. Questo può essere validato e decodificato per ottenere informazioni di autenticazione . Il token è firmato da Google? Qual è il nome e l'e-mail dell'utente?
  2. Un token di accesso. Ciò autorizza l'app Web ad accedere alle API di Google per conto dell'utente. Ad esempio, l'app può accedere agli eventi di Google Calendar dell'utente? Queste autorizzazioni dipendono dagli ambiti richiesti e dal fatto che l'utente lo abbia o meno autorizzato.

Inoltre:

La società potrebbe disporre di una dashboard di amministrazione che consente all'assistenza clienti di gestire gli utenti dell'azienda. Invece di fornire una soluzione di iscrizione personalizzata che consenta al supporto clienti di accedere a questa dashboard, l'azienda utilizza Google Sign-In.

Il token JWT (ricevuto dalla procedura di accesso di Google) viene inviato al server di autorizzazione dell'azienda per capire se l'utente ha un account G Suite con il dominio ospitato dell'organizzazione (email@azienda.com)? E se lo fanno, sono membri del gruppo Google dell'azienda creato per l'assistenza clienti? Se sì a tutto quanto sopra, possiamo considerarli autenticati .

Il server di autorizzazione dell'azienda invia quindi un token di accesso all'app dashboard. Questo token di accesso può essere utilizzato per inviare richieste autorizzate al server delle risorse dell'azienda (ad es. Possibilità di inviare una richiesta GET a un endpoint che restituisce tutti gli utenti dell'azienda).


0

Authentication è un processo di verifica:

  • identità dell'utente in un sistema (nome utente, accesso, numero di telefono, e-mail ...) fornendo una prova (chiave segreta, dati biometrici, sms ...). Autenticazione a più fattori come estensione.
  • controllo e-mail utilizzando digital signature
  • checksum

Authorizationè il prossimo passo dopo Authentication. Si tratta di autorizzazioni / ruoli / privilegi alle risorse. OAuth (Open Authorization) è un esempio di autorizzazione

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.