Der Java-Client startet und meldet dem Broker im ersten Request dass er OpenID Connect kann.
Der Broker fragt beim Authentication Service nach den Einstellungen für OpenID Connect und meldet diese an den Java-Client zurück.
Diese sind
die Auth-Url des Identity-Providers,
die Client-ID und
die Scopes.
Der Java-Client startet einen lokalen HTTP-Server für den Aufruf der Callback-Seite.
Diese hat folgende Url: http://localhost:<port>/login-callback
Der Java-Client ruft über den Standard-Browser die Anmelde-Seite des Identity-Providers auf.
Dabei kommt die Auth-Url zum Einsatz.
Übergeben werden der Seite
die Client-ID,
eine im Client erzeugte Code-Challenge und
die URL der Callback-Seite.
Bei erfolgreicher Anmeldung leitet der Identity-Provider uns zur Callback-Seite weiter.
Dieser wird ein Anmelde-Code übergeben, mit dem die nächsten Schritte vollzogen werden können.
Der Anmelde-Code wird ausgelesen und der lokale HTTP-Server wieder beendet.
Der Java-Client schickt für die weitere Anmeldung die folgenden Informationen zum Broker:
den Anmelde-Code,
die Code-Challenge und
die URL der Callback-Seite.
Der Broker leitet diese Informationen an den Authentication-Service weiter, welcher die nächsten Schritte für die Authentifizierung übernimmt.
Am Identity-Provider wird der Token-Endpoint aufgerufen, um den Anmelde-Code in einen JWT-Token umzuwandeln.
Dem Endpoint werden folgenden Informationen übergeben:
der Anmelde-Code,
die Callback-Url,
die Client-ID,
die Code-Challenge und
wenn konfiguriert das Client-Secret.
Der JWT-Token wird validiert.
Es wird sowohl die inhaltliche als auch die kryptographische Korrektheit geprüft.
Dabei werden die von Identity-Provider bereitgestellten kryptographischen Schlüssel verwendet.
Aus dem JWT-Token wird der Claim (in der Regel die Email-Adresse) ausgelesen.
Damit wird der entsprechende Benutzer ermittelt und ein XML-Token erstellt.
Mit diesem XML-Token kann die Anwendung den Benutzer identifizieren.
Die Anwendung startet mit dem angemeldeten Benutzer.