OpenID mit line.biz - E-Mail in JWT, fehlt in Userinfo

Hallo,
in den letzten Tagen versuche ich herauszufinden, wie OpenID in Verbindung mit Line funktioniert: https://developers.line.biz/en/reference/line-login/, also habe ich openid installiert.

Das OpenID Connect Discovery-Dokument für Line finden Sie hier:
https://access.line.me/.well-known/openid-configuration

Ich habe die OpenID-Profile und E-Mail-Scopes eingerichtet.

Laut line.biz befindet sich die E-Mail-Adresse im Token. Und bisher sieht alles gut aus, wenn ich in meine Protokolle schaue.
Ich habe die E-Mail-Adresse in der JWT-Datei erhalten, die aus dem Token extrahiert wurde.
wie:
OIDC Log: Verified JWT—
iss: https://access.line.me
sub: Uf3156a0081c563144b3
aud: ‘1657458025’
exp: 1662826967
iat: 1662823367
nonce: f5930aa4c2bd1b3807d
amr:

Aber nach der Anfrage an https://api.line.me/oauth2/v2.1/userinfo
ist die E-Mail-Adresse nicht enthalten. Nur Name und die sub UserId.

Ein Blick in die Line-Dokumente unter userinfo scheint zu bestätigen, dass dies korrekt ist. Die userinfo enthält nicht die E-Mail.

Was kann ich also tun, um die E-Mail-Adresse in der JWT-Antwort zu extrahieren? Ich habe versucht, Claims zu verwenden, und vielleicht gibt es einen Weg, sie zu bekommen, den ich übersehe? Oder führt das ins Leere? Es macht mich schwindelig :slight_smile:

Vielen Dank!

Bearbeiten:
Ich habe auf der OpenID-Plugin-Seite gelesen: openid
Wenn das Discovery-Dokument einen userinfo_endpoint-Parameter enthält, verwendet das Plugin diesen, um Benutzer-Metadaten zu sammeln. Wenn nicht, extrahiert das Plugin Metadaten aus dem id_token (ein JWT), der vom Token-Endpunkt bereitgestellt wird.

Eine Lösung wäre also, dem Plugin zu sagen, dass es den userinfo-Endpunkt nicht verwenden soll? Das wäre großartig. Aber wie kann ich das tun?

Ok, ich habe es verstanden. Vielleicht nicht die beste Lösung, aber da das Plugin die JWT-Daten verwendet, wenn der Userinfo-Endpunkt nicht verfügbar ist, habe ich das Plugin auf GitHub geforkt und Folgendes geändert:

discourse-openid-connect/lib/omniauth_open_id_connect.rb

Zeile 18 - option :use_userinfo auf false statt true gesetzt.

Das ist alles.

Es wäre schön, eine Option in den Einstellungen des Plugins zu haben, um zwischen Userinfo- oder JWT-Antwort wählen zu können.

1 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.