OpenID avec line.biz - email dans JWT, manquant dans userinfo

Bonjour,
Ces derniers jours, j’essaie de comprendre comment fonctionne OpenID en conjonction avec Line : https://developers.line.biz/en/reference/line-login/, j’ai donc installé openid

Le document de découverte OpenID Connect pour Line se trouve ici :
https://access.line.me/.well-known/openid-configuration

J’ai configuré les scopes openid profile et email.

Selon line.biz, l’adresse e-mail se trouve dans le token. Et tout semble bien se passer jusqu’à présent lorsque je consulte mes logs.
J’ai trouvé l’adresse e-mail dans le fichier JWT extrait du token
comme ceci :
Journal OIDC : JWT vérifié—
iss : https://access.line.me
sub : Uf3156a0081c563144b3
aud : ‘1657458025’
exp : 1662826967
iat : 1662823367
nonce : f5930aa4c2bd1b3807d
amr :

Mais après avoir demandé https://api.line.me/oauth2/v2.1/userinfo
L’adresse e-mail n’est pas incluse. Seulement le nom et l’ID utilisateur sub.

Un coup d’œil à la documentation de Line sous userinfo semble indiquer que c’est correct. Le userinfo n’inclut pas l’e-mail.

Alors, que puis-je faire pour extraire l’adresse e-mail de la réponse JWT ? J’ai essayé d’utiliser les claims et peut-être y a-t-il un moyen de l’obtenir que j’ai manqué ? Ou est-ce que cela ne mènera nulle part ? Ça me rend chèvre :slight_smile:

Merci !

Modification :
J’ai lu sur la page du plugin OpenID : openid
Si le document de découverte inclut un paramètre userinfo_endpoint, alors le plugin l’utilisera pour collecter les métadonnées de l’utilisateur. Sinon, le plugin extraira les métadonnées de l’id_token (un JWT) fourni par le endpoint du token.

Donc, une solution serait de dire au plugin de ne pas utiliser le endpoint userinfo ? Ce serait génial. Mais comment puis-je faire cela ?

Ok, j’ai compris. Ce n’est peut-être pas la meilleure solution, mais comme le plugin utilise les données JWT si le point de terminaison userinfo n’est pas disponible, j’ai forké le plugin sur github et j’ai défini :

discourse-openid-connect/lib/omniauth_open_id_connect.rb

ligne 18 - option :use_userinfo, à false au lieu de true.

C’est tout.

Il serait agréable d’avoir une option dans les paramètres du plugin pour choisir entre la réponse userinfo ou JWT.

1 « J'aime »

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