Avatar basati su SSO e connettersi con gli Utenti

Ho provato a utilizzare un’asserzione di immagine nel nostro JWT OIDC che è un URL a uno store di immagini senza autenticazione aggiuntiva. Usiamo Entra, quindi normalmente userinfo punta all’endpoint del grafo e senza aggiungere un token bearer fallirà.

Guardando omniauth per oidc sembra che l’immagine venga aggiunta all’utente, quindi ci ho giocato.

Innanzitutto, abbiamo dovuto falsificare il documento di discovery per rimuovere l’endpoint userinfo, che consente l’accesso alle asserzioni JWT rispetto a ciò che è presente solo in userinfo. Sembra funzionare bene in base al contenuto della tabella associated_user_accounts e agli eventi di log OIDC dettagliati, posso vedere che l’asserzione dell’immagine viene verificata e memorizzata.

Vedo indicazioni nella tabella uploads che l’importazione import_url_for_user sembra funzionare, ma il percorso “user_avatar///.png” è un vicolo cieco.

Ho giocato con le impostazioni dell’avatar di Discourse Connect e non credo che questo modello conti come sistema esterno, ma ho provato anche quello. Ho anche aggiunto il nome del dominio del server dell’avatar all’elenco degli “host interni” poiché stavamo pensando a SSRF, ma non sembra essere il caso. Per gli utenti vedo che “Immagine personalizzata” è abilitata, ma il link sembra interrotto, quindi non sono sicuro se ci stia provando ma non riesca a completare l’operazione.

Qualcuno ha avuto successo nell’utilizzare le asserzioni JWT per fornire l’URL dell’avatar e magari può indicare cosa mi sfugge? C’è qualche debug attorno a user_avatar che posso approfondire e che potrebbe fare luce?