Zugriff erlauben mit OAuth2 (UML-Sequenzdiagramm Übungsaufgabe)

https://bildung.social/@oerinformatik/111555679809480435

https://oer-informatik.de/uml-sequenzdiagramm-uebung-oauth2

UML-Sequenzdiagramm, OAuth2, Autorisierung, Authorization Code, Access Token, Authorization Server, Resource Server, PKCE, RFC 6749, Übungsaufgaben, Prüfungsvorbereitung

tl/dr; (ca. 27 min Lese- und Bearbeitungszeit): Mit OAuth2 erlaubt eine Nutzerin einer App den Zugriff auf ihre Daten bei einem Webdienst, ohne der App ihr Passwort zu geben. In dieser Aufgabe recherchierst Du die Akteure und die Nachrichtenfolge von OAuth2 (Authorization Code mit PKCE) und stellst sie als UML-Sequenzdiagramm dar. Neben der Sequenzdiagramm-Übung lernst Du so einen zentralen Mechanismus zur Autorisierung kennen [AI-Assisted]. (Zuletzt geändert am 29.10.2026)

Dieser Artikel ist Teil einer Artikelreihe über UML-Sequenzdiagramme: Einstieg in das Sequenzdiagramm (Übungsaufgaben) / Sequenzdiagramme mit PlantUML erstellen / Kurzübungen: TCP-Handshake, 2FA, CRAM-MD5, MQTT-Nachrichtenfluss, Webpage per MVP-Pattern, Zugriff erlauben mit OAuth2, Authentifizieren mit Passkey.

Diese Aufgabe setzt voraus, dass Du die Notationen des UML-Sequenzdiagramms kennst (Infos z. B. in diesem Artikel).

Wortwolke zur Übung: OAuth2-Ablauf mit Authorization Code, Access Token und den beteiligten Rollen als UML-Sequenzdiagramm (mit KI erstellt)

Hinweise zur Bearbeitung: Von FIA wird erwartet, dass ihnen Aufgaben auf Profilkompetenz-Ebene (Aufgabe 3.1) keine Probleme bereiten. Recherchiere zuerst den Ablauf und zeichne Dein Diagramm dann auf Papier oder mit einem Werkzeug Deiner Wahl, bevor Du die Beispiellösung aufklappst. Eine saubere Handskizze genügt. Achte auf die Pfeilarten (synchron, Antwort, asynchron) und auf die Beschriftung jedes Pfeils. Es gibt mehrere richtige Lösungen, je nachdem, wie fein Du den Ablauf darstellst.

Wozu OAuth2?

Bei der Authentifizierung werden in der Regel die Faktoren Besitz, Wissen oder Eigenschaft genutzt, um sicherzustellen, dass die Person, die sich authentifizieren will, diejenige ist, die sie vorgibt zu sein. Das Wissen wird häufig in Form eines geteilten Geheimnisses (Passwort) überprüft. Damit man nicht für jeden Dienst ein eigenes Passwort generieren und weitergeben muss, wurde mit OAuth2 ein Mechanismus geschaffen, mit dem ein Dienst im Auftrag eines Users auf dessen Daten bei einem anderen Dienst zugreifen darf, ohne das Passwort zu kennen. Genau genommen regelt OAuth2 also die Autorisierung (RFC 6749: Authorization Framework). Die Anmeldung mit den Zugangsdaten eines Dienstes bei anderen Webservices (Authentifizierung) ergänzt das darauf aufbauende OpenID Connect (siehe Authentifizierung und Autorisierung).

Du möchtest eigene Aufgaben zum Üben von einem KI-Sprachmodell generieren lassen?

Kopiere den Text in ein KI-Sprachmodell Deiner Wahl und passe Kompetenzstufe, Anzahl, Bearbeitungszeit und Szenario bei Bedarf an. Wie die Aufgaben aufgebaut sind, beschreibt der Artikel Wie sind die Aufgaben aufgebaut?. Prüfe die Ergebnisse mit dem Lehrartikel: KI-Sprachmodelle machen Fehler.

Erstelle neue Übungsaufgaben zum Thema „Zugriff erlauben mit OAuth2
(UML-Sequenzdiagramm Übungsaufgabe)“.

Bauplan: Halte Dich an Aufbau, Kompetenzstufen, Operatoren,
Anforderungsbereiche, Punkte und Zeitschätzung, die im Artikel
https://oer-informatik.de/aufgaben-aufbau beschrieben sind.

Fachliche Grundlage:
- https://oer-informatik.de/uml-sequenzdiagramm
- https://oer-informatik.de/uml-sequenzdiagramm-plantuml
- https://oer-informatik.de/authentifizierung
- Stilbeispiel: https://oer-informatik.de/uml-sequenzdiagramm-uebung-oauth2

Die Aufgaben sollen Inhalte zu diesen Schlagwörtern abdecken:
- UML-Sequenzdiagramm
- OAuth2
- Autorisierung
- Authorization Code
- Access Token
- Authorization Server
- Resource Server
- PKCE
- RFC 6749

Kompetenzstufe: Profilkompetenz (alternativ: Basiskompetenz, Kernkompetenz, Expertise)
Anzahl: 1 Aufgabe mit Teilaufgaben
Bearbeitungszeit in Minuten ca.: <5 bis 30 min>
Szenario: eines der Szenarien aus dem Bauplan

Vorgehen:
1. Lies zuerst die verlinkten Artikel. Kannst Du keine Webseiten
   abrufen, sag mir das, statt zu raten.
2. Steht bei einer Angabe noch ein Platzhalter in <…>, frag mich
   zuerst danach. Richte Punkte und Zahl der Teilaufgaben nach der
   Bearbeitungszeit (ca. 0,9 min je Punkt).
3. Gib je Aufgabe Titel mit Kompetenzstufe, Ausgangssituation und
   Teilaufgaben mit Operator und Punktzahl aus, dazu die geschätzte
   Bearbeitungszeit.
4. Gib die Beispiellösungen mit Punkteverteilung erst aus, wenn ich
   danach frage.

Aufgabe 3.1: Nachrichtenfolge und Akteure von OAuth2 (Profilkompetenz)

Viele mobile Apps für Webdienste wie GitLab nutzen OAuth2 und Token, um im Auftrag ihrer Nutzerin auf deren Daten beim Webdienst zuzugreifen.

Recherchiere den Ablauf einer Anmeldung per OAuth2 zwischen einem User, einem GitLab-Client und dem OAuth2-Server. Welche Nachrichten zwischen welchen Kommunikationspartnern (u.a. Passwortübermittlung, Tokenerzeugung, Tokenübergabe) gibt es?

Einstiegspunkte können z.B. die zweiteilige Serie über OAuth2 von Oose sein:

Oder die Spezifikation von OAuth2 im entsprechenden Request for Comments (RFC):

Erstelle für den oben beschriebenen Ablauf mit OAuth2 ein UML-Sequenzdiagramm mit den Lebenslinien für alle identifizierten Akteure. (20 Punkte)

UML-Sequenzdiagramm für OAuth2: Authorization Code Grant mit PKCE zwischen Nutzerin, Browser, GitLab-App, Authorization Server und Resource Server (mit KI erstellt)

Hinweise zur Lösung:

  • Ohne Token antwortet der Resource Server mit 401 Unauthorized und dem Header WWW-Authenticate: Bearer (RFC 6750). Die Weiterleitung zum Authorization Server startet die App, nicht der Resource Server.

  • Die Nutzerin gibt ihr Passwort nur auf der Seite des Authorization Servers ein. Die App erhält zuerst nur einen kurzlebigen Code und tauscht ihn danach direkt beim Authorization Server gegen das Access Token.

  • Mobile Apps können kein Client-Geheimnis sicher speichern. Deshalb verwenden sie PKCE (RFC 7636): Die App schickt beim Start nur den Hashwert codeChallenge mit und beweist beim Tausch des Codes mit dem codeVerifier, dass sie denselben Ablauf gestartet hat. Ein abgefangener Code ist so für Dritte wertlos.

  • Der Parameter state schützt vor untergeschobenen Antworten: Die App prüft, ob der zurückgegebene Wert zu ihrer Anfrage passt.

  • Ob der Browser als eigene Lebenslinie erscheint, ist Geschmackssache; die Lösung ist auch richtig, wenn die Nutzerin direkt mit dem Authorization Server kommuniziert.

Andere Lösungen sind möglich! Diskutiert, was Ihr anders gemacht habt oder nicht versteht.


Hinweis zur Nachnutzung als Open Educational Resource (OER)

Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Zugriff erlauben mit OAuth2 (UML-Sequenzdiagramm Übungsaufgabe)” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/uml-sequenzdiagramm-uebung-oauth2 veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/uml/uml-diagramme. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 29.10.2026.

[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: