JWT::InvalidIssuerError lors du décodage du JWT (OpenID Connect)

Bonjour :wave: ! Bon après-midi, j’ai une question concernant le plugin OpenID Connect

J’essaie d’utiliser ID Uruguay (un fournisseur OpenID Connect gouvernemental) avec Discourse. Je me suis inscrit sur le serveur de test et ils m’ont envoyé les données nécessaires.

Tout le flux semble fonctionner correctement, à l’exception du rappel. Apparemment, l’émetteur envoyé dans le JWT n’est pas le même que dans le document de découverte.
J’ai déjà contacté le support et ils ont dit qu’en gros, l’erreur venait de Discourse (ce que je ne pense pas).

Est-il possible d’ajouter une autre valeur à « émetteur attendu » ?

Document de découverte : https://auth-testing.iduruguay.gub.uy/oidc/v1/.well-known/openid-configuration

Logs
OIDC Log: JWT chargé

---
iss: https://auth-testing.iduruguay.gub.uy/oidc/v1
sub: '7630'
aud: '862271'
exp: 1656363519
iat: 1656362919
auth_time: 1656362918
amr:
- urn:iduruguay:am:password
acr: urn:iduruguay:nid:1
nonce: 94d556d732db0db8dff0e09a174c27f2943cfe1740845abf537ff768e96c8ddf
at_hash: eokMw_xDlqb6cXB-DkDA_A
pais_documento:
  codigo: uy
  nombre: Uruguay
tipo_documento:
  codigo: 68909
  nombre: C.I.
numero_documento: '54682086'
email: alexander.barrios@estudiante.ceibal.edu.uy
email_verified: true
name: Yanquis Alexander Barrios Espíndola
given_name: Yanquis Alexander
family_name: Barrios Espíndola
nickname: uy-ci-54682086
idp: Usuario gub.uy

(oidc) Échec de l'authentification ! jwt_decode_failed: JWT::InvalidIssuerError, Émetteur invalide. Attendu [\"https://auth-testing.iduruguay.gub.uy\"], reçu https://auth-testing.iduruguay.gub.uy/oidc/v1


Merci d’avance ! :hugs:

Hmm.

D’après l’emplacement du document de découverte, vous devez supposer que l’émetteur est https://auth-testing.iduruguay.gub.uy/oidc/v1 puisque le document de découverte est l’émetteur avec /.well-known/openid-configuration ajouté.

Maintenant, le document lui-même dit issuer "https://auth-testing.iduruguay.gub.uy"

Et ensuite, nous avons le document OpenID Connect Discovery qui stipule

Et les deux exigences de la dernière phrase ne sont pas satisfaites. La valeur de la revendication iss est identique à l’URL de l’émetteur qui a été utilisée pour récupérer la configuration, mais les deux ne sont PAS identiques à la valeur issuer retournée.

Donc, pour ce que cela vaut, je pense qu’ils ont tort et que vous avez raison. Dommage que cela ne vous mène nulle part.

3 « J'aime »

[/quote]

Fait intéressant, je ne savais pas :thinking:

J’ai signalé cela et j’ai lié votre réponse, j’attendrai une réponse du support ID Uruguay :sleeping:.

Pour le moment, j’utilise un pastebin avec le bon émetteur (de toute façon, c’était pour tester) et tout semble fonctionner correctement, j’espère que l’équipe de support pourra résoudre ce détail avant de postuler à ID Uruguay en mode Production.

2 « J'aime »

Je suis surpris que cela fonctionne :slight_smile: , puisque la spécification dit

Eh bien, j’ai eu une réponse, et ils ne vont pas le corriger « parce qu’il n’y a pas de problème de leur côté et que c’est largement utilisé » :slight_smile:

Je ne vois rien dans la documentation pour vérifier le JWT, donc c’est probablement pourquoi ça « fonctionne tout simplement » :thinking:

Documentation (Google Traduction) :
https://centroderecursos-agesic-gub-uy.translate.goog/web/seguridad/wiki/-/wiki/Main/ID+Uruguay+-+Integración+con+OpenID+Connect?_x_tr_sl=es&_x_tr_tl=en&_x_tr_hl=es&_x_tr_pto=wapp


J’ai créé un « proxy » pour le document de découverte qui modifie l’émetteur retourné, et cela fonctionne aussi « tout simplement », je l’ai signalé et ils l’ont accepté :slight_smile:

Je pense qu’à l’avenir, cela échouera car cela ne suit pas les spécifications, mais pour l’instant, ça va.

Merci Richard d’avoir pris le temps de m’aider ! :hugs:

2 « J'aime »

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