ADFS 4.0 userInfo端点仅返回子声明

时间:2017-07-12 13:08:08

标签: adfs

由于ADFS 4.0隐式流程并未在id_token中返回自定义声明,因此我尝试从userInfo端点获取这些声明。要获取userinfo端点的访问令牌,必须使用资源urn:microsoft:userinfo。因此,要获取资源的访问令牌和客户端的ID令牌,必须发送两个查询。

之后,userinfo端点只用

响应
{
    "sub": "fRwBBEb3bOu6Pt/xHsS0/Z5TKn24llZ3FGFMT+LP9QA="
}

自定义声明在access_token中始终可用,如果我在查询令牌端点时使用response_mode = form_post,那么它们也在id_token中。表格不适合SPA。 userinfo是否应该返回任何有用的内容?

3 个答案:

答案 0 :(得分:1)

它可以例如Azure AD端点返回的内容要多得多,但这就是ADFS团队实现此目的的方式。

您可以要求通过uservoice返回更多声明。

答案 1 :(得分:0)

根据ADFS FAQ,显然,ADFS 2016用户信息端点返回的内容不超过主题声明:

  

ADFS用户信息端点始终返回OpenID标准中指定的主题声明。 AD FS不提供通过UserInfo终结点请求的其他声明。如果您需要ID令牌中的其他声明,请参阅AD FS中的“自定义ID令牌”。

答案 2 :(得分:0)

我已经用它解决了我的问题https://www.michaelboeynaems.com/keycloak-ADFS-OIDC.html

解决方案包括在令牌中返回您想要的声明,而不是尝试通过 userInfo 获取该信息,因为正如 Tosh 所说,返回 only subject claim.

Microsoft 官方文档,shows how to put the claims in your token,但我只在上面提到的博客中找到了一些技巧(即使在完全理解之后,我还是在 Microsoft 文档中看到了所有内容)。