3 Min

Der Unterschied zwischen Authentifizierung und Autorisierung ist grundlegend, aber entscheidend fĂĽr die Sicherheit und den Zugriff in IT-Systemen:

1. Authentifizierung

Ganz einfach - Benutzer gibt Username und Passwort ein. Server sucht Username und Passwort in Datenbank. Datenbank findet Input und returned true (Nutzer gefunden). Datenbank findet Input nicht und returned false (Nutzer nicht gefunden).

Authentifizierung ist der Prozess der Überprüfung der Identität eines Benutzers oder einer Entität. Das Ziel ist sicherzustellen, dass der Benutzer tatsächlich derjenige ist, für den er sich ausgibt.

  • Frage, die beantwortet wird: “Wer bist du?”

Beispiel: Ein Benutzer gibt seinen Benutzernamen und ein Passwort ein, um sich auf einer Website anzumelden. Der Server ĂĽberprĂĽft, ob die Kombination korrekt ist und ob der Benutzer authentisch ist.

Methoden der Authentifizierung:

  • Passwörter: Der Benutzer gibt ein bekanntes Passwort ein.
  • Biometrische Merkmale: Fingerabdruck, Gesichtserkennung, Iris-Scan.
  • Zwei-Faktor-Authentifizierung (2FA): Ein zusätzlicher Faktor wie ein SMS-Code oder eine App-basierte Bestätigung.

2. Autorisierung

  • Definition: Autorisierung ist der Prozess, in dem festgelegt wird, welche Berechtigungen oder Zugriffsrechte ein authentifizierter Benutzer hat. Sie regelt also, was der Benutzer tun oder auf welche Ressourcen er zugreifen darf.
  • Frage, die beantwortet wird: “Was darfst du tun?”

Beispiel: Nachdem ein Benutzer erfolgreich authentifiziert wurde, kann der Server entscheiden, ob der Benutzer beispielsweise Dateien lesen, schreiben oder löschen darf oder auf bestimmte Funktionen der Anwendung zugreifen kann.

Autorisierungsformen wie OAuth:

  • Zugriffsrechte: Bestimmen, ob der Benutzer Zugriff auf eine Datei oder einen Ordner hat.
  • Rollenbasierte Zugriffskontrolle (RBAC): Berechtigungen werden anhand der Rolle des Benutzers in einem System festgelegt (z. B. Admin, Benutzer, Gast).
  • Berechtigungen basierend auf Token: OAuth verwendet Zugriffstoken, um Autorisierung zwischen Systemen zu verwalten.

Das Bedeutet:

  • Authentifizierung ist der Schritt, in dem festgestellt wird, wer der Benutzer ist (z. B. durch Eingabe von Benutzername und Passwort).
  • Autorisierung ist der Schritt, in dem festgelegt wird, was der authentifizierte Benutzer tun darf (z. B. ob er auf eine bestimmte Datei oder Funktion zugreifen kann).

In der Praxis erfolgt normalerweise die Authentifizierung zuerst (die Identität des Benutzers wird überprüft), gefolgt von der Autorisierung, die festlegt, was der Benutzer tun darf.

Ein konkretes Beispiel - Amazon Web Servives

Ein Zugriff auf AWS (Amazon Web Services) ist ein gutes Beispiel, um den Unterschied zwischen Authentifizierung und Autorisierung im Kontext von Cloud-Diensten zu erklären. Lass uns einen konkreten Use-Case durchgehen:

Use-Case: Ein AWS-Administrator gewährt einem Entwickler Zugriff auf ein S3-Bucket.

1. Authentifizierung (Wer bist du?)

Zunächst muss sich der Entwickler bei AWS authentifizieren, um zu bestätigen, dass er derjenige ist, für den er sich ausgibt. Es gibt verschiedene Wege, wie die Authentifizierung in AWS funktioniert:

  • AWS Management Console: Der Entwickler gibt seinen Benutzernamen und Passwort ein.
  • MFA (Multi-Factor Authentication): Zusätzlich zum Passwort muss der Entwickler möglicherweise einen Einmalcode (ĂĽber eine Authenticator-App oder SMS) eingeben.
  • AWS CLI oder API: Der Entwickler könnte ĂĽber das AWS Command Line Interface (CLI) oder eine API auf die Systeme zugreifen, wofĂĽr er Access Keys (ZugriffsschlĂĽssel und geheimen SchlĂĽssel) verwendet.

Durch diesen Authentifizierungsprozess bestätigt AWS, dass der Entwickler tatsächlich derjenige ist, der Zugriff auf das AWS-Konto haben soll.

2. Autorisierung (Was darfst du tun?)

Nachdem der Entwickler authentifiziert ist, ĂĽberprĂĽft AWS, welche Berechtigungen dieser Entwickler hat, also was er tun darf. Das wird durch IAM (Identity and Access Management) geregelt. In AWS geschieht die Autorisierung durch Rollen und Berechtigungen, die einem Benutzer oder einer Rolle zugewiesen sind.

  • Der Entwickler hat eine IAM-Rolle oder ein IAM-Benutzerkonto, das mit spezifischen Berechtigungen versehen ist. Diese Berechtigungen werden in IAM-Policies definiert, die Zugriff auf bestimmte Dienste und Aktionen gewähren oder einschränken.

Beispielsweise könnte der Administrator dem Entwickler die folgende IAM-Policy zuweisen:

  {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "s3:GetObject",
          "s3:PutObject"
        ],
        "Resource": "arn:aws:s3:::example-bucket/*"
      }
    ]
  }

Diese Policy autorisiert den Entwickler, Objekte (Dateien) in einem bestimmten S3-Bucket mit dem Namen example-bucket zu lesen (GetObject) und hochzuladen (PutObject), aber nicht, den Bucket selbst zu löschen oder zu verwalten.

Zusammenfassung des Use-Cases:

  • Authentifizierung: Der Entwickler meldet sich bei AWS an, entweder ĂĽber die Konsole oder ĂĽber die CLI, und beweist durch Passwort oder ZugriffsschlĂĽssel (evtl. zusammen mit MFA), dass er die berechtigte Person ist.
  • Autorisierung: AWS ĂĽberprĂĽft die ihm zugewiesenen IAM-Policies, die festlegen, dass er nur auf das S3-Bucket example-bucket zugreifen und dort Dateien lesen und hochladen darf. Andere Aktionen, wie das Löschen des Buckets, sind ihm nicht gestattet, weil seine Autorisierungs-Policy dies nicht erlaubt.

Fazit:

In diesem AWS-Use-Case sorgt die Authentifizierung dafĂĽr, dass AWS weiĂź, wer der Entwickler ist, und die Autorisierung regelt, was dieser authentifizierte Entwickler innerhalb des Systems tun darf. Authentifizierung und Autorisierung arbeiten also Hand in Hand, um den Zugriff zu kontrollieren und zu schĂĽtzen.

Updated: