Was ist der Unterschied bei Webanwendungen? Bitte kurz zusammengefasst.
Ich sehe die Abkürzung "auth" oft. Steht sie für authentifizierung oder authorisierung? Oder beides?
Was ist der Unterschied bei Webanwendungen? Bitte kurz zusammengefasst.
Ich sehe die Abkürzung "auth" oft. Steht sie für authentifizierung oder authorisierung? Oder beides?
Authentifizierung ist der Prozess zur Feststellung, dass jemand wirklich die Person ist, für die er sich ausgibt.
Autorisierung bezieht sich auf Regeln, die bestimmen, wer was tun darf. Zum Beispiel könnte Adam autorisiert sein, Datenbanken zu erstellen und zu löschen, während Usama nur befugt ist zu lesen.
Die beiden Konzepte sind völlig orthogonal und unabhängig, aber beide sind zentral für das Sicherheitsdesign, und das Versagen beim richtigen Verständnis beider eröffnet die Möglichkeit zum Kompromiss.
Im Bereich von Webanwendungen bedeutet Authentifizierung grob gesagt, dass Sie Anmeldeinformationen überprüfen, um festzustellen, ob Sie einen Benutzer als angemeldet erkennen, und Autorisierung ist, wenn Sie in Ihrer Zugriffskontrolle nachschauen, ob Sie dem Benutzer erlauben, Inhalte anzuzeigen, zu bearbeiten, zu löschen oder zu erstellen.
Die Definitionen scheinen in Ordnung zu sein, aber sie scheinen eindeutig nicht unabhängig zu sein. Wie definiert, impliziert Authorisierung auch Authentifizierung? Wie kann man Adams Datenlöschungsoperation erlauben, wenn man zweifelt, dass er wirklich Adam ist? Anders ausgedrückt, wenn Adams Löschoperation autorisiert ist, dann hoffentlich des bedeutet, dass Adam authentifiziert ist.
@Timo: Eine Anwendung wird wahrscheinlich beides tun wollen, aber sie sind unabhängige Konzepte. Dein Chef könnte die Berechtigungen des Personals überprüfen, um auf wichtige Bestandteile des Unternehmens, das Firmenjet und den Bierkühlschrank zuzugreifen, ohne sich um die spezifische Person auf dem CCTV-Feed zu kümmern, die mit den Namen in der Tabelle übereinstimmt. Letzteres wäre die Sorge des Sicherheitsbeamten.
Die Konzepte sind definitiv orthogonal. Authentifizierung bedeutet nicht unbedingt, deine Identität zu beweisen. Es könnte bedeuten, eine Behauptung über dich selbst zu beweisen, z.B. dein Alter. Wenn du trinkst, authentifizierst du dein Alter, indem du einen Ausweis zeigst. Dann darfst du je nach deinem Alter und dem Rechtsgebiet, in dem du dich befindest, trinken (du darfst ab 21 in den USA und ab 18 in Europa trinken).
Dann verstehe ich immer noch nicht, warum ein HTTP-Autorisierungsheader Authentifizierungsinformationen enthält... Ist das nicht eine unglückliche Bezeichnung?
Wie in Authentifizierung vs. Autorisierung erklärt wird:
Authentifizierung ist der Mechanismus, mit dem Systeme ihre Benutzer sicher identifizieren können. Authentifizierungssysteme geben Antworten auf die Fragen:
- Wer ist der Benutzer?
- Ist der Benutzer wirklich derjenige, für den er sich ausgibt?
Autorisierung hingegen ist der Mechanismus, durch den ein System bestimmt, welchen Zugriffslevel ein bestimmter authentifizierter Benutzer auf durch das System kontrollierte geschützte Ressourcen haben sollte. Zum Beispiel könnte ein Datenbankmanagementsystem so gestaltet sein, dass bestimmte Personen die Fähigkeit haben, Informationen aus einer Datenbank abzurufen, aber nicht die Möglichkeit haben, Daten in der Datenbank zu ändern, während anderen Personen die Möglichkeit gegeben wird, Daten zu ändern. Autorisierungssysteme geben Antworten auf die Fragen:
- Ist Benutzer X berechtigt, auf Ressource R zuzugreifen?
- Ist Benutzer X berechtigt, die Operation P durchzuführen?
- Ist Benutzer X berechtigt, die Operation P auf Ressource R durchzuführen?
Im Benutzerkontext:
Authentifizierung = Überprüfung des Benutzers, ob er wirklich ist, wer er vorgibt zu sein (technisch gesehen können Sie viele verschiedene Dinge wie Passwort, Steuerinformationen, Sozialversicherungsinformationen, Führerschein, Fingerabdrücke oder andere biometrische Daten überprüfen... aber normalerweise reicht ein Benutzername/Passwort aus)
Autorisierung = Genehmigen des Benutzers, etwas zu tun (Sie können Rollen ['admin', 'verkäufer', 'käufer'...] mit Berechtigungen ['Zugriff auf das Steuerungszentrum', 'Produkte löschen'...] festlegen und diesen Rollen die Benutzer zuweisen, dann überprüfen, ob der Benutzer eine Rolle hat, die es ihm erlaubt, eine Aktion auszuführen)
Berechtigungen haben eine direkte Beziehung zu CRUD-Operationen, daher können Sie, wenn Sie eine Benutzeroberfläche erstellen, Objekte als Zeilen auflisten und Kontrollkästchen in 4 Spalten für Erstellen, Lesen, Aktualisieren, Löschen dieser Objektberechtigung für eine bestimmte Rolle anzeigen.
Wie in meinem obigen Beispiel bedeutet 'Zugriff auf das Steuerungszentrum' vollständigen Zugriff auf das Objekt Steuerungszentrum, während 'Produkte löschen' Zugriff zum Löschen des Produktobjekts bedeutet.
Hinweis: Der HTTP-Autorisierungsheader war ursprünglich für die Berechtigung zum Zugriff auf eine Ressource gedacht, wird jedoch tatsächlich als Authentifizierung für den gesamten Ressourcenzugriff verwendet.
In meinem Kopf und in meinem Code ist es einfacher, an Überprüfung und Berechtigungen zu denken, weil die beiden Wörter
Authentifizierung ist Überprüfung und Autorisierung ist die Überprüfung von Berechtigungen. 'Auth' kann beides bedeuten, wird jedoch häufiger als "Benutzerauthentifizierung" verwendet. Oftmals gibt es keine explizite Autorisierungsimplementierung (Rollen und Berechtigungen), nur die Authentifizierung wird verwendet, um die Autorisierung für jede verfügbare Aktion zu ermöglichen. Und so ist es Auth.
IMHO Überprüfung scheint einen etwas weiteren Anwendungsbereich zu haben als Authentifizierung, obwohl Authentifizierung eine Art von Überprüfung zu sein scheint, nicht jede Überprüfung ist eine Authentifizierung… also würde ich sagen, dass immer ein Kontext erforderlich ist: Benutzerzugriffsüberprüfung usw., Authentifizierung scheint immer im Bereich von "ist er wirklich derjenige/die Maschine?" (korrigieren Sie mich, wenn ich falsch liege, kein Muttersprachler, aber: "überprüfen", ob die bereitgestellten Informationen korrekt sind, im Gegensatz zu Authentifizierungen scheint etwas damit zu tun zu haben, die Person/Die Maschine ist diejenige, die sie vorgibt zu sein)
Die Verwirrung ist verständlich, da die beiden Wörter ähnlich klingen und die Konzepte oft eng miteinander verwandt und zusammen verwendet werden. Auch die häufig verwendete Abkürzung Auth hilft nicht.
Andere haben bereits gut beschrieben, was Authentifizierung und Autorisierung bedeuten. Hier ist eine einfache Regel, um die beiden klar voneinander zu trennen:
- Authentifizierung validiert Ihre Identität (oder Echtheit, wenn Sie das bevorzugen)
- Autorisierung validiert Ihre Autorität, d.h. Ihr Recht, auf etwas zuzugreifen und möglicherweise etwas zu ändern.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
83 Stimmen
Bitte denken Sie daran: Authentication überprüft Anmeldeinformationen, Autorisierung überprüft Berechtigungen.
1 Stimmen
Cross-Site-Duplikat: serverfault.com/q/57077
1 Stimmen
Kürzlich habe ich für die Abkürzungen
authn
für Authentifizierung undauthz
für Autorisierung gesehen.0 Stimmen
Beantwortet diese Antwort Ihre Frage? Gibt es einen Unterschied zwischen Authentifizierung und Autorisierung?