Authentifizierung versus Autorisierung

626

Was ist der Unterschied im Kontext von Webanwendungen? Ich sehe die Abkürzung "auth" oft. Steht es für Auth -entication oder Auth -orization? Oder ist es beides?

daGrevis
quelle
51
Denken Sie daran: Die Authentifizierung überprüft Anmeldeinformationen, die Autorisierung überprüft die Berechtigungen.
Onur Yıldırım
1
Cross-Site-Duplikat: serverfault.com/q/57077
Kyll
Kürzlich für die Abkürzungen, die ich authnfür die Authentifizierung und authzfür die Autorisierung gesehen habe
jdf

Antworten:

865

Bei der Authentifizierung wird festgestellt, dass jemand wirklich der ist, für den er sich ausgibt.

Die Autorisierung bezieht sich auf Regeln, die bestimmen, wer was tun darf. Zum Beispiel kann Adam berechtigt sein, Datenbanken zu erstellen und zu löschen, während Usama nur zum Lesen berechtigt ist.

Die beiden Konzepte sind vollständig orthogonal und unabhängig, aber beide sind für das Sicherheitsdesign von zentraler Bedeutung, und das Versäumnis, eines der beiden Konzepte richtig zu machen, eröffnet den Weg für Kompromisse.

In Bezug auf Web-Apps erfolgt die Authentifizierung sehr grob, wenn Sie die Anmeldeinformationen überprüfen, um festzustellen, ob Sie einen Benutzer als angemeldet erkennen, und die Autorisierung erfolgt, wenn Sie in Ihrer Zugriffssteuerung nachschlagen, ob Sie dem Benutzer das Anzeigen, Bearbeiten und Löschen erlauben oder Inhalte erstellen.

Kerrek SB
quelle
32
Die Definitionen scheinen in Ordnung zu sein, aber sie scheinen sicherlich nicht unabhängig zu sein. Bedeutet die Autorisierung nicht auch eine Authentifizierung ? Wie können Sie Adams Datenbank Löschvorgang ermöglichen , wenn Sie daran zweifeln , dass er ist Adam? Anders ausgedrückt, wenn Adams Löschvorgang autorisiert ist, bedeutet dies hoffentlich, dass Adam authentifiziert ist.
Timo
7
@ Timo: Eine Anwendung wird vermutlich beides wollen, aber es handelt sich trotzdem um orthogonale Konzepte. Ihr Chef könnte die Berechtigungen der Mitarbeiter überprüfen, auf wichtige Komponenten des Unternehmens, den Firmenjet und den Bierkühlschrank zuzugreifen, ohne sich darum zu kümmern, welche bestimmte Person im CCTV-Feed mit den Namen in der Tabelle übereinstimmt. Letzteres wäre das Anliegen des Wachmanns.
Kerrek SB
1
Die Konzepte sind definitiv orthogonal. Die Authentifizierung beweist nicht unbedingt Ihre Identität. Es könnte ein Anspruch auf sich selbst sein, zB Alter. Wenn Sie trinken, authentifizieren Sie Ihr Alter, indem Sie einen Ausweis vorzeigen. Dann können Sie abhängig von Ihrem Alter und der Gerichtsbarkeit, in der Sie sich befinden, zum Trinken berechtigt sein (Sie können trinken, wenn> 21 in den USA> 18 in Europa)
David Brossard
1
@Sinjai: Ich denke, der Punkt ist, dass dies orthogonale Bedenken sind und von separaten Einrichtungen angegangen werden können: z. B. kann der (vertrauenswürdige) Türsteher an der Tür das Alter des Kunden bestimmen, und verschiedene Dienste innerhalb der Einrichtung können ein unterschiedliches Alter haben Grenzen, aber alle verwenden den Wert, den sie vom Türsteher erhalten haben, um Zulassungsentscheidungen zu treffen.
Kerrek SB
1
Eine andere Sichtweise (im Kontext des Barraumbeispiels) besteht darin, zu berücksichtigen, dass bei der Authentifizierung das Foto auf dem Personalausweis mit der vor Ihnen stehenden Person abgeglichen wird, während bei der Autorisierung das Alter überprüft wird erfüllt gesetzliche Anforderungen. Meiner Meinung nach ist das Element in dieser Mischung, das dazu führt, dass die Linien unscharf werden, dass beide Tests auch Fälschungen erkennen und gegen diese verhärten müssen (ist die ID eine Fälschung), die die meisten Leute eher als Anliegen der Authentifizierung betrachten als gleich wichtig für die Auth-C- und Auth-Z-Zertifizierung.
Ryan Hansen
660

Kurz gesagt, bitte. :-)

Authentifizierung = Login + Passwort (wer du bist)

Autorisierung = Berechtigungen (was Sie tun dürfen)

Kurzes "auth" bezieht sich höchstwahrscheinlich entweder auf das erste oder auf beide.

Geo
quelle
3
Süß wie ein Stück Kuchen :)
devansvd
Ich mag das, kurz und bündig.
König
5
Dann verstehe ich immer noch nicht, warum ein HTTP-Autorisierungsheader Authentifizierungsinformationen enthält… Ist das nicht eine unglückliche Benennung?
Jens
@Jens Kurze Antwort: Ja. Roy Fielding wusste es damals nicht besser ... ;-) </ tong-in-cheek>
Per Lundberg
@Jens Ich frage mich das auch. Ich finde die Intuition dieser Antwort hilfreich. Da HTTP zustandslos ist , müssen Authentifizierungsinformationen zusammen mit jeder Anforderung gesendet werden, nicht nur die Start- und Abschlussanforderungen (z. B. das Einrichten einer sicheren Sitzung und das Senden von Anforderungen ohne Authentifizierung dazwischen). Daher sollte dieser Anforderungsheader eine Autorisierung sein , da er fast immer andere Absichten (Daten abrufen, img, ...) enthält, nicht nur die Authentifizierung .
Minh Nghĩa
83

Wie Authentication vs Authorization es ausdrückt:

Die Authentifizierung ist der Mechanismus, mit dem Systeme ihre Benutzer sicher identifizieren können. Authentifizierungssysteme geben Antworten auf die folgenden Fragen:

  • Wer ist der Benutzer?
  • Ist der Benutzer wirklich der, für den er sich darstellt?

Im Gegensatz dazu ist die Autorisierung der Mechanismus, mit dem ein System bestimmt, welche Zugriffsebene ein bestimmter authentifizierter Benutzer auf vom System kontrollierte Ressourcen haben soll. Beispielsweise könnte ein Datenbankverwaltungssystem so konzipiert sein, dass bestimmte spezifizierte Personen die Möglichkeit erhalten, Informationen aus einer Datenbank abzurufen, jedoch nicht die in der Datenbank gespeicherten Daten zu ändern, während anderen Personen die Möglichkeit gegeben wird, Daten zu ändern. Autorisierungssysteme geben Antworten auf folgende Fragen:

  • Ist Benutzer X berechtigt, auf Ressource R zuzugreifen?
  • Ist Benutzer X berechtigt, Operation P auszuführen?
  • Ist Benutzer X berechtigt, Operation P für Ressource R auszuführen?

Siehe auch:

Sebastian Paaske Tørholm
quelle
34

Ich bevorzuge Verifizierung und Berechtigungen gegenüber Authentifizierung und Autorisierung.

In meinem Kopf und in meinem Code ist es einfacher, an "Verifikation" und "Berechtigungen" zu denken, weil die beiden Wörter

  • klinge nicht gleich
  • habe nicht die gleiche Abkürzung

Die Authentifizierung ist eine Überprüfung und die Autorisierung überprüft die Berechtigung (en). Auth kann beides bedeuten, wird aber häufiger als "Benutzerauthentifizierung" verwendet, dh "Benutzerauthentifizierung".

Aditya Mittal
quelle
2
IMHO-Überprüfung scheint einen etwas offeneren Bereich als Authentifizierung zu haben, obwohl Authentifizierung eine Art Überprüfung zu sein scheint, ist nicht jede Überprüfung eine Authentifizierung ... daher würde ich sagen, dass immer ein Kontext erforderlich ist: Benutzerzugriffsüberprüfung usw., Authentifizierung scheint immer im Bereich "Ist er wirklich der Typ / die Maschine?" (Schlagen Sie mich, wenn ich falsch liege, kein Muttersprachler, aber: "Verifizieren" Sie, dass die bereitgestellten INFORMATIONEN korrekt sind. Authentifizierungen scheinen etwas damit zu tun zu haben, dass Sie wissen, dass die Person / Maschine die ist, die sie vorgibt zu sein.)
Beachwalker
14

Die Verwirrung ist verständlich, da die beiden Wörter ähnlich klingen und die Konzepte oft eng miteinander verbunden sind und zusammen verwendet werden. Wie bereits erwähnt, hilft auch die häufig verwendete Abkürzung Auth nicht weiter.

Andere haben bereits gut beschrieben, was Authentifizierung und Autorisierung bedeuten. Hier ist eine einfache Regel, um die beiden klar voneinander zu trennen:

  • Die Authentifizierung bestätigt Ihre Identität (oder Authentizität , wenn Sie dies bevorzugen).
  • Autor isierung validiert Ihren Autor keit, dh Ihr Recht auf Zugang und möglicherweise etwas ändern.
Kjartan
quelle
12

Ich habe versucht, ein Bild zu erstellen, um dies mit den einfachsten Worten zu erklären

1) Authentifizierung bedeutet "Sind Sie der, von dem Sie sagen, dass Sie es sind?"

2) Autorisierung bedeutet "Sollten Sie in der Lage sein, das zu tun, was Sie versuchen?".

Dies wird auch im Bild unten beschrieben.

Geben Sie hier die Bildbeschreibung ein

Ich habe versucht, es bestmöglich zu erklären, und ein Bild davon erstellt.

Rohit Ailani
quelle
4

Bei der Authentifizierung wird die proklamierte Identität überprüft.

  • zB Benutzername / Passwort

In der Regel folgt eine Autorisierung. Dies ist die Genehmigung, dass Sie dies und das tun können.

  • zB Berechtigungen
Jakub Truhlář
quelle
Diese Antwort wird bereits ausführlich erklärt.
Sonu Patel
3

Hinzufügen zu @ Kerreks Antwort;

Die Authentifizierung erfolgt in einem allgemeinen Formular (Alle Mitarbeiter können sich am Computer anmelden.)

Die Autorisierung ist ein spezielles Formular (der Administrator kann die Anwendung jedoch nur auf dem Computer installieren / deinstallieren.)

Boobalan
quelle
1
Das Wort "kann" gilt nur für die Autorisierung. Die Authentifizierung hat wenig oder gar nichts mit dem Anmelden zu tun. Ich könnte sehr gut authentifizieren, dass Sie in vielerlei Hinsicht Boobalan sind (nicht nur Benutzername / Passwort). Sobald ich mich authentifiziere und weiß, wer Sie sind, kann ich Sie sehr gut NICHT autorisieren, sich anzumelden oder irgendetwas auf meiner Website zu tun. Sie sind authentifiziert, können aber keine Diddley-Kniebeugen ausführen. Es ist verwirrend und falsch, das Wort "kann" zu verwenden, wenn es um Authentifizierung geht.
Suamere
3

Bei der Authentifizierung wird Ihr Login in Benutzername und Passwort überprüft.

Bei der Autorisierung wird überprüft, ob Sie auf etwas zugreifen können.

Sovichea Cheth
quelle
3
Diese "Antwort" fügt den bereits gegebenen Antworten nichts hinzu.
Ojonugwa Jude Ochalifu
1

Definitionen

Authentifizierung - Sind Sie die Person, die Sie zu sein behaupten?

Autorisierung - Sind Sie berechtigt, das zu tun, was Sie versuchen?

Beispiel

Eine Web-App verwendet Google Sign-In . Nachdem sich ein Nutzer erfolgreich angemeldet hat, sendet Google Folgendes zurück:

  1. Ein JWT-Token. Dies kann validiert und dekodiert werden, um Authentifizierungsinformationen zu erhalten . Ist das Token von Google signiert? Wie lautet der Name und die E-Mail-Adresse des Benutzers?
  2. Ein Zugriffstoken. Dadurch wird die Web-App autorisiert, im Namen des Nutzers auf Google APIs zuzugreifen. Kann die App beispielsweise auf die Google Kalender-Ereignisse des Nutzers zugreifen? Diese Berechtigungen hängen von den Bereichen ab, die angefordert wurden, und davon, ob der Benutzer dies zugelassen hat oder nicht.

Zusätzlich:

Das Unternehmen verfügt möglicherweise über ein Administrator-Dashboard, mit dem der Kundensupport die Benutzer des Unternehmens verwalten kann. Anstatt eine benutzerdefinierte Anmeldelösung bereitzustellen, mit der der Kundensupport auf dieses Dashboard zugreifen kann, verwendet das Unternehmen Google Sign-In.

Das JWT-Token (vom Google-Anmeldevorgang erhalten) wird an den Autorisierungsserver des Unternehmens gesendet, um herauszufinden, ob der Benutzer ein G Suite- Konto bei der gehosteten Domain des Unternehmens hat ([email protected]). Und wenn ja, sind sie Mitglied der Google-Gruppe des Unternehmens, die für den Kundensupport erstellt wurde? Wenn ja, können wir sie als authentifiziert betrachten .

Der Autorisierungsserver des Unternehmens sendet der Dashboard-App dann ein Zugriffstoken. Dieses Zugriffstoken kann verwendet werden, um autorisierte Anforderungen an den Ressourcenserver des Unternehmens zu senden (z. B. die Möglichkeit, eine GET-Anforderung an einen Endpunkt zu senden, der alle Benutzer des Unternehmens zurücksendet).

Jabacchetta
quelle
0

Authentication ist ein Überprüfungsprozess:

  • Benutzeridentität in einem System (Benutzername, Login, Telefonnummer, E-Mail ...) durch Bereitstellung eines Nachweises (geheimer Schlüssel, Biometrie, SMS ...). Multi-Faktor-Authentifizierung als Erweiterung.
  • E-Mail-Überprüfung mit digital signature
  • Prüfsumme

Authorizationist der nächste Schritt danach Authentication. Es geht um Berechtigungen / Rollen / Berechtigungen für Ressourcen. OAuth (Open Authorization) ist ein Beispiel für eine Autorisierung

yoAlex5
quelle