Logo Logo
GitHub Designed by Logto

Was ist Authentifizierung (Authentication)?

Kurz gesagt: Authentifizierung (Authentication) beantwortet die Frage “Welche Identität besitzt du?”

Hier sind einige typische Beispiele für Authentifizierung (Authentication):

  • Anmeldung mit Benutzername und Passwort
  • Soziale Anmeldung (z.B., Anmeldung mit Google)
  • Machine-to-Machine (M2M) Authentifizierung (z.B., API-Schlüssel)

Wir haben nicht die Frage “Wer bist du?” verwendet, weil:

  • Im Bereich des Identitäts- und Zugriffsmanagement (Identity and access management, IAM) geht es bei der Authentifizierung (Authentication) darum, den Besitz einer Identität zu überprüfen, nicht darum, die Person oder Entität zu identifizieren. Zum Beispiel, wenn eines deiner Familienmitglieder deine Zugangsdaten verwendet, um sich bei deinem Konto anzumelden, sind sie nicht du, aber die Identität für das System ist dieselbe.
  • Die Identität kann ein Benutzer, ein Dienst oder ein Gerät sein. Zum Beispiel kann sich ein Dienst bei einem anderen Dienst mit API-Schlüsseln authentifizieren (authenticate).

Unterschied zwischen Authentifizierung (Authentication) und Autorisierung (Authorization)

Diese beiden Begriffe werden oft verwechselt, sind jedoch grundlegend unterschiedlich: Autorisierung (Authorization) beantwortet die Frage “Was kannst du tun?”. Zudem ist die Authentifizierung (Authentication) eine Voraussetzung für die Autorisierung (Authorization), da das System die Identität kennen muss, bevor es entscheiden kann, welche Aktionen es ausführen kann.

Authentifizierungsfaktoren

Die Authentifizierung (Authentication) kann mit einem oder mehreren Faktoren durchgeführt werden. Hier sind einige gängige Faktoren:

  • Wissensfaktor: Etwas, das du weißt (z.B., Passwort, PIN)
  • Besitzfaktor: Etwas, das du hast (z.B., Smartphone, Sicherheitstoken)
  • Inhärenzfaktor: Etwas, das du bist (z.B., Fingerabdruck, Gesichtserkennung)

Multi-Faktor-Authentifizierung (Multi-factor authentication, MFA) ist eine gängige Praxis, die mehrere Faktoren kombiniert, um die Sicherheit zu erhöhen. Zum Beispiel, wenn du dich bei deinem Bankkonto anmeldest, musst du möglicherweise ein Passwort (Wissensfaktor) und einen einmaligen Code von einer Authenticator-App (Besitzfaktor) angeben.

Passkey (Passkey) ist ein moderner Authentifizierungsfaktor, der mehrere Faktoren kombinieren kann und gegen Phishing-Angriffe resistent ist.

Authentifizierungs-Frameworks (Protokolle)

Anstatt ein hausgemachtes Authentifizierungssystem zu entwickeln, wird empfohlen, etablierte Frameworks und Protokolle zu verwenden, da sie von Sicherheitsexperten getestet und überprüft wurde. Es gibt verschiedene Authentifizierungs-Frameworks und Protokolle, die definieren, wie die Authentifizierung (Authentication) durchgeführt werden soll. Zwei gängige sind:

  • OpenID Connect (OIDC) : Eine Identitätsschicht, die auf OAuth 2.0 aufgebaut ist und Authentifizierungsfähigkeiten hinzufügt. Es ist relativ modern und wird häufig für neue Anwendungen verwendet.
  • Security Assertion Markup Language (SAML) : Ein Protokoll zum Austausch von Authentifizierungs- und Autorisierungsdaten zwischen Parteien. Es wird häufig in Unternehmensumgebungen verwendet.

Die Wahl des Frameworks hängt von deinem Anwendungsfall und deinen Anforderungen ab. Für neue Anwendungen wird OIDC aufgrund seines modernen Designs und der Unterstützung für JSON Web Token (JWT) empfohlen.

Das direkte Arbeiten mit diesen Protokollen kann jedoch immer noch komplex und zeitaufwändig sein. Beide Protokolle erfordern eine steile Lernkurve und eine sorgfältige Implementierung, um die Sicherheit zu gewährleisten. Stattdessen kann die Verwendung eines Identitätsanbieter (Identity provider, IdP) , der diese Protokolle unterstützt oder auf ihnen basiert, den Authentifizierungsprozess erheblich vereinfachen. Ein guter Identitätsanbieter bietet auch zusätzliche Funktionen wie Multi-Faktor-Authentifizierung (Multi-factor authentication, MFA) und Single Sign-on (SSO) für deine zukünftigen Bedürfnisse.

Siehe auch