25 Punkte von GN⁺ 2024-05-28 | 8 Kommentare | Auf WhatsApp teilen
  • Der Begriff „auth“ hat zwei Bedeutungen: Authentifizierung (authentication) und Autorisierung (authorization)
  • Dadurch entsteht Verwirrung bei Namen von Bibliotheken oder Paketen
  • Die Begriffe „authn“ und „authz“ sind nicht eindeutig und schwer verständlich

Der Unterschied zwischen Authentifizierung und Autorisierung

  • Authentifizierung (authentication): der Prozess, bei dem überprüft wird, wer der Benutzer ist
  • Autorisierung (authorization): der Prozess, bei dem entschieden wird, was der Benutzer tun darf
  • Die beiden Konzepte sind verschieden; wenn eines gelöst ist, ist das andere Problem nicht automatisch gelöst

Vorschlag zur Verwendung von „permissions“ und „login“

  • Es wird vorgeschlagen, Authentifizierung klar als „login“ und Autorisierung als „permissions“ zu unterscheiden
  • „login“ kann als Substantiv und als Verb verwendet werden
    • Substantiv: die Informationen, die eingegeben werden, um auf ein System zuzugreifen
    • Verb: der Vorgang, sich anzumelden, um ein System zu nutzen
  • „permissions“ wird als Substantiv verwendet; als verbale Form nutzt man „check permissions“

Vorteile klarer Begriffswahl

  • Auch Menschen aus anderen Bereichen als dem Software Engineering können es leicht verstehen
  • Es ermöglicht bessere Abstraktionen
  • Authentifizierung und Autorisierung können als getrennte Module im Design behandelt werden

Meinung von GN⁺

  • Die Bedeutung klarer Begriffe: Wenn Begriffe eindeutig sind, läuft die Kommunikation reibungsloser und Missverständnisse werden reduziert.
  • Vorteile der Abstraktion: Wenn Authentifizierung und Autorisierung getrennt werden, wird das Systemdesign flexibler und die Wartung einfacher.
  • Beispiele für andere Begriffe: Neben „login“ und „permissions“ könnte man auch Begriffe wie „access control“ in Betracht ziehen.
  • Aspekte bei der Einführung technischer Begriffe: Bei der Einführung neuer Begriffe sind ausreichend Diskussion und Konsens im Team erforderlich.
  • Empfohlene verwandte Projekte: Repräsentative Projekte, die Authentifizierung und Autorisierung trennen, sind OAuth und OpenID Connect.

8 Kommentare

 
savvykang 2024-05-29

Unter Entwickler:innen kann man statt auth durchaus authn und authz verwenden, und in Dokumentation oder bei Controllern/Fassaden mit Nutzerkontakt login und permission zu benutzen, erscheint mir nachvollziehbar. Aber auch authn und authz ganz abschaffen zu wollen, scheint mir nicht wirklich nötig zu sein.

 
gcback 2024-05-29

Wie im Text angemerkt wird, wurde auth doppeldeutig für Authentifizierung und Berechtigungen verwendet, was tatsächlich verwirrend war. Es scheint ein sinnvoller Versuch zu sein, diese Bereiche mit allgemeineren Begriffen klarer zu trennen, um die Kommunikation mit anderen Bereichen außerhalb reinrassiger Entwickler zu erleichtern.

 
nemorize 2024-05-28

Wenn das Problem darin besteht, dass sich sowohl Authentication als auch Authorization zu Auth abkürzen lassen,
würden im Text, wie dort erwähnt, Authn und Authz meiner Meinung nach völlig ausreichen...
Falls man das für nicht eindeutig genug hält, könnte man es auch etwas weiter ausschreiben, bis hin zu Authenty und Authory.

 
koxel 2024-05-28

Es gibt Berechtigungssysteme in Form von Permissions, es gibt ACL-Formen, und wie soll man das dann überhaupt voneinander unterscheiden..?
Wirkt irgendwie etwas erzwungen...

 
namarie32ilu 2024-05-28

Ich vermute, es ist wohl ein Versuch, die Kommunikationskosten mit nicht-technischen Teammitgliedern zu senken, aber es ist ein bisschen zu viel des Guten.

 
iolothebard 2024-05-28

Nennt man es nicht absichtlich zusammenfassend auth, weil beides darin enthalten ist?

 
kuber 2024-05-28

Es gibt Authentication und Authorization – warum also unbedingt ...

 
GN⁺ 2024-05-28
Hacker-News-Kommentare
  • "Authorize" und "Authenticate" sind hervorragende Begriffe, die seit dem Mittelalter verwendet werden. Die Bedeutung dieser beiden Wörter hat sich kaum verändert.
  • Diese beiden Begriffe haben in kryptografischen Systemen einen wichtigen Unterschied. Die Wörter zu ändern, um Verwirrung zu verringern, scheint nicht hilfreich zu sein.
  • Die Behauptung, dass der Name "auth" Verwirrung stiftet, ist wenig überzeugend. Es scheint unwahrscheinlich, dass ein Wortwechsel das Problem löst.
  • Es ist gut, die Abkürzungen "authn" und "authz" zu verwenden. Aber auch die langen Wörter zu verwenden, ist in Ordnung.
  • "Identity" and "Access" Management (IAM) ist ein Standardbegriff. Persönlich bevorzuge ich den Begriff "authnz".
  • "Login" umfasst keine token- oder schlüsselbasierte Authentifizierung. Service-Accounts loggen sich nicht ein, benötigen aber dennoch Authentifizierung und Autorisierung.
  • Die Unterscheidung zwischen Authn und Authz ist nicht klar. Manchmal scheint man schicke Begriffe klaren Begriffen vorzuziehen.
  • Es gab nie ein Problem damit, im IAM-System den Begriff "auth" zu verwenden. Wenn ein spezifischerer Ausdruck nötig ist, kann man eine passende Formulierung verwenden.
  • "login" und "permissions" erfassen nicht die gesamte Bedeutung und Komplexität des Systems. Authentifizierung bedeutet mehr als Login.
  • Authentifizierung und Autorisierung sind eng miteinander verbunden. Ohne Authentifizierung ist Autorisierung nicht möglich.
  • Login ist kein geeigneter Ersatzbegriff für Authentifizierung. Es gibt Fälle, in denen Authentifizierung keinen Login erfordert.
  • "auth" kann sowohl Authentifizierung als auch Autorisierung bedeuten. Denn beide Konzepte werden oft zusammen verwendet.
  • Authentifizierung und Autorisierung sind Standardbegriffe in IT und Informationssicherheit. Um Verwirrung zu vermeiden, ist es besser, die vollständigen Wörter zu verwenden.
  • "authn" und "authz" sind unter technisch versierten Menschen gut verwendbar. Für die breite Öffentlichkeit ist es besser, "login" und "permissions" zu verwenden.
  • Ähnliche Konzepte gibt es auch im echten Leben. Zum Beispiel überprüfen Arbeitsausweise die Identität und gewähren Zugriffsrechte.
  • Autorisierung und Berechtigungen sind nicht dasselbe. Berechtigungen sind Rechte oder Privilegien, die nicht einem bestimmten Benutzer zugewiesen sind.
  • Autorisierung kann zwei Bedeutungen haben. Den Prozess, einem Benutzer die Berechtigung für eine bestimmte Aktion zu erteilen, und den Prozess, dies zu prüfen.
  • "access control" kann Laufzeit-Zugriffskontrolle bedeuten. Das ist das, was eine Anwendung nach der Benutzerauthentifizierung ausführt.
  • "authN" und "authZ" sind vollkommen angemessen und gut verständlich. Autorisierung hängt immer mit der Verknüpfung von Berechtigungen und Benutzern zusammen.