id_token 使用 AD FS 2016 使用 OpenID Connect 缺少自定义声明
id_token missing custom claims using AD FS 2016 using OpenID Connect
我正在尝试将 ADFS 2016 与本机 Android 应用程序的 OpenID Connect 身份验证结合使用,以获取 ID 令牌。然后,ID 令牌将作为用户身份的证明提供给我的服务器,并作为声明提供一些其他属性(例如电子邮件、first/last 名称)。
ID Token 必须包含自定义声明 - 这是我的症结所在。
我在 ADFS 中配置了一个应用程序组并添加了一个本机应用程序和一个 Web API。
我在 ADFS 中将我的服务器表示为 Web API,因为它允许我指定自定义声明规则。除了自定义声明规则之外,我还将我的本机应用程序的允许范围设置为 'openid profile email allatclaims'
我一直在使用的 Android 库是 OpenID AppAuth 库 - 除了 ID 令牌内部没有额外的声明外,它都非常出色。
Android 应用正在使用授权类型的代码,使用来自 ADFS 中本机应用的客户端 ID。我已将 'aud' 参数设置为 Web API.
的标识符
我只是看不出我遗漏了什么,这将导致客户收到带有这些自定义声明的 ID 令牌。
作为附加测试,我使用 MS ADAL 创建了一个 macOS 应用程序并成功提供了自定义声明,但它们在 access_token 中并且它使用了 SAML。
你看过这个sample吗?
必须有:
- response_mode 设置为 form_post
- 只有 public 个客户可以在 ID 令牌中获得自定义声明
- 依赖方标识符(Web API 标识符)应该与客户端标识符相同
在您的 AD FS 服务器上安装了 KB4019472:
- response_mode 设置为 form_post
- public 和机密客户都可以在 ID 令牌中获得自定义声明
- 将范围allatclaims 分配给客户端-RP 对。
我正在尝试将 ADFS 2016 与本机 Android 应用程序的 OpenID Connect 身份验证结合使用,以获取 ID 令牌。然后,ID 令牌将作为用户身份的证明提供给我的服务器,并作为声明提供一些其他属性(例如电子邮件、first/last 名称)。
ID Token 必须包含自定义声明 - 这是我的症结所在。
我在 ADFS 中配置了一个应用程序组并添加了一个本机应用程序和一个 Web API。
我在 ADFS 中将我的服务器表示为 Web API,因为它允许我指定自定义声明规则。除了自定义声明规则之外,我还将我的本机应用程序的允许范围设置为 'openid profile email allatclaims'
我一直在使用的 Android 库是 OpenID AppAuth 库 - 除了 ID 令牌内部没有额外的声明外,它都非常出色。
Android 应用正在使用授权类型的代码,使用来自 ADFS 中本机应用的客户端 ID。我已将 'aud' 参数设置为 Web API.
的标识符我只是看不出我遗漏了什么,这将导致客户收到带有这些自定义声明的 ID 令牌。
作为附加测试,我使用 MS ADAL 创建了一个 macOS 应用程序并成功提供了自定义声明,但它们在 access_token 中并且它使用了 SAML。
你看过这个sample吗?
必须有:
- response_mode 设置为 form_post
- 只有 public 个客户可以在 ID 令牌中获得自定义声明
- 依赖方标识符(Web API 标识符)应该与客户端标识符相同
在您的 AD FS 服务器上安装了 KB4019472:
- response_mode 设置为 form_post
- public 和机密客户都可以在 ID 令牌中获得自定义声明
- 将范围allatclaims 分配给客户端-RP 对。