JWT::InvalidIssuerError su Decode JWT (OpenID Connect)

Ciao :wave:! Buon pomeriggio, ho una domanda sul plugin OpenID Connect

Sto cercando di usare ID Uruguay (un “provider” OpenID Connect governativo) con Discourse, mi sono iscritto al server di test e mi hanno inviato i dati necessari.

Tutto il flusso sembra funzionare bene tranne il callback, apparentemente l’Issuer inviato nel JWT non è lo stesso del documento di discovery.
Ho già contattato il Supporto e mi hanno detto che fondamentalmente l’errore era di Discourse (cosa che non credo).

È possibile aggiungere in qualche modo un altro valore a “issuer atteso”?

Documento di discovery: https://auth-testing.iduruguay.gub.uy/oidc/v1/.well-known/openid-configuration

Logs
OIDC Log: JWT caricato

---
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) Authentication failure! jwt_decode_failed: JWT::InvalidIssuerError, Invalid issuer. Expected ["https://auth-testing.iduruguay.gub.uy"], received https://auth-testing.iduruguay.gub.uy/oidc/v1


Grazie mille in anticipo! :hugs:

Hmm.

Dalla posizione del documento di discovery, devi presumere che l’emittente sia https://auth-testing.iduruguay.gub.uy/oidc/v1 poiché il documento di discovery è l’emittente con /.well-known/openid-configuration aggiunto.

Ora il documento stesso dice issuer "https://auth-testing.iduruguay.gub.uy"

E poi abbiamo il documento OpenID Connect Discovery che afferma

E i due requisiti nell’ultima frase non sono soddisfatti. Il valore del claim iss è identico all’URL dell’Emittente utilizzato per recuperare la configurazione, ma entrambi NON sono identici al valore issuer restituito.

Quindi, per quanto vale, penso che abbiano torto e tu abbia ragione. Peccato che questo non ti porti da nessuna parte.

3 Mi Piace

Fatto interessante, non lo sapevo :thinking:

L’ho segnalato e ho collegato la tua risposta, attenderò una risposta dal supporto ID Uruguay :sleeping:.

Al momento sto usando un pastebin con l’emittente corretto (comunque, era per testare) e tutto sembra funzionare correttamente, spero che il team di supporto possa risolvere questo dettaglio prima di fare domanda per ID Uruguay in modalità Produzione.

2 Mi Piace

Sono sorpreso che funzioni :slight_smile: , dato che le specifiche dicono

Bene, ho ricevuto una risposta e non la risolveranno “perché non c’è nessun problema da parte loro ed è ampiamente utilizzato” :slight_smile:

Non vedo nulla nella documentazione per verificare il JWT, quindi deve essere per questo che “funziona e basta” :thinking:

Documentazione (Google Traduttore):
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


Ho creato un “proxy” per il documento di discovery che modifica l’emittente restituito, e anche questo “funziona e basta”, l’ho segnalato e lo hanno accettato :slight_smile:

Sento che in futuro questo fallirĂ  perchĂŠ non segue le specifiche, ma per ora va bene.

Grazie Richard per aver dedicato del tempo ad aiutarmi! :hugs:

2 Mi Piace

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