Avatares baseados em SSO e conexão com usuários

Estive tentando usar uma reivindicação de imagem em nosso OIDC JWT que é uma URL para um armazenamento de imagens sem autenticação adicional. Usamos o Entra, então normalmente o userinfo aponta para o endpoint do graph e, sem adicionar um token de portador, isso falhará.

Olhando para o omniauth para oidc, parece que a imagem é adicionada ao usuário, então tenho brincado com isso.

Primeiro, precisamos falsificar o documento de descoberta para remover o endpoint userinfo, o que permite que as reivindicações JWT sejam acessíveis em vez de apenas o que está no userinfo. Isso parece funcionar bem com base no conteúdo da tabela associated_user_accounts e eventos de log OIDC detalhados que posso ver que a reivindicação de imagem é verificada e armazenada.

Posso ver indicações na tabela uploads de que import_url_for_user parece estar funcionando, mas o "user_avatar/<site>/<username>/<size>.png" é um beco sem saída.

Tenho brincado com as configurações de avatar do Discourse Connect e não acho que este modelo seja contado como um sistema externo, mas tentei isso também. Também adicionei o nome do domínio do servidor de avatar à lista de “host interno”, pois estávamos pensando em SSRF, mas não parece ser o caso. Para os usuários, vejo que “Custom Picture” está habilitado, mas o link parece quebrado, então não tenho certeza se está tentando e simplesmente não consegue virar a esquina.

Alguém teve algum sucesso aqui em usar reivindicações JWT para fornecer a URL do avatar e talvez possa apontar o que estou perdendo? Existe alguma depuração em torno de user_avatar que eu possa investigar e que possa lançar alguma luz?