id_token使用AD FS 2016使用OpenID Connect丢失自定义声明

问题描述 投票:0回答:1

我正在尝试通过本机Android应用程序使用ADFS 2016和OpenID Connect身份验证来获取ID令牌。然后,ID令牌将提供给我的服务器,以证明用户是谁,并提供一些其他属性(例如电子邮件,名字/姓氏)作为声明。

ID令牌必须包含自定义声明-这是我的重点。

我已经在ADFS中配置了应用程序组,并添加了本机应用程序和Web API。

我已经在ADFS中将服务器表示为Web API,因为它允许我指定自定义声明规则。除了自定义声明规则外,我还将本机应用程序的允许范围设置为“ openid个人资料电子邮件allatclaims”

我一直在使用的Android库是OpenID AppAuth库-除非ID令牌内部没有其他声明,否则它都能很好地工作。

Android应用正在使用ADFS中本机应用的客户端ID使用的代码授予类型。我已将'aud'参数设置为Web API的标识符。

我只是看不到我所缺少的内容,这会使客户收到带有这些自定义声明的ID令牌。

作为一项额外的测试,我使用MS ADAL创建了一个macOS应用,该应用成功提供了自定义声明,但是它们位于access_token中,并且使用了SAML。

android openid-connect adfs
1个回答
0
投票

你看过这个sample吗?

必须具备:

  • 响应模式设置为表单发布
  • 只有公共客户才能获得ID令牌中的自定义声明
  • 依赖方标识符(Web API标识符)应该相同与客户端标识符

在您的AD FS服务器上安装了KB4019472:

  • 响应模式设置为表单发布
  • 公共和机密客户都可以通过ID令牌获得自定义声明
  • 将范围分配给客户端– RP对。
© www.soinside.com 2019 - 2024. All rights reserved.