SSO驱动的头像以及用户连接的实现

我已经尝试在我们的 OIDC JWT 中使用一个指向无需额外身份验证的图片存储的图片声明。我们使用 Entra,通常 userinfo 指向 graph 端点,如果不添加 bearer token,这将失败。

查看 omniauth for oidc,似乎 picture 被添加到用户,所以一直在尝试这个。

首先,我们需要伪造 discovery doc 来移除 userinfo 端点,这使得 JWT 声明可以访问,而不是仅限于 userinfo 中的内容。根据 associated_user_accounts 表中的内容和详细的 OIDC 日志事件,这似乎效果很好,我可以看到 picture 声明已被验证并存储。

我可以在 uploads 表中看到 import_url_for_user 似乎正在工作,但是 “user_avatar///.png” 是一个死胡同。

我已经尝试过 Discourse Connect 的头像设置,我认为这个模型不被认为是外部系统,但也尝试过。我们还考虑过 SSRF,因此将头像服务器域名添加到“内部主机”列表中,但似乎不是这种情况。对于用户,我看到“自定义图片”已启用,但链接似乎已损坏,因此不确定它是否正在尝试但无法成功。

有人在通过 JWT 声明提供头像 URL 方面取得了一些成功吗?也许可以指出我遗漏了什么?是否有关于 user_avatar 的调试可以深入研究,可能会有所启发?