ADFS 2016 支持 OIDC 的“配置文件”范围吗?
ADFS 2016 support for OIDC's `profile` scope?
我正在尝试使用 OIDC 和授权代码流程来实现 Web 应用程序。我使用 OIDC Core 1.0 specification 作为 应该 工作方式的参考。我正在尝试使它在 Microsoft ADFS 2016 服务器上运行,该服务器通常声称支持 OIDC。
除了一个例外,我已经设法使工作流程的大部分工作正常进行。当我调用 token endpoint 将我的授权代码交换为 access_token
和 id_token
时,我希望通过 name
声明获得用户的可显示名称。但是我从 ADFS 收到的令牌中不存在该声明。
当我重定向到 OIDC 规范的 ADFS 服务器的 authorization endpoint, I pass it scope
values of openid profile
. According to section 5.4 时,profile
范围应该导致请求 name
声明。但我没有收到这种说法。我确实得到了一些我可以考虑使用的其他声明(即 upn
或 unique_name
),但我正在努力尽可能地与标准保持一致。
这是否意味着 ADFS 2016 不符合该特定领域的 OIDC 规范?还是我误读了此处引用的规范部分?
与名称相关的标准声明通常是 given_name
和 family_name
,如 Section 18 中所述,我总是尝试根据这些值编写应用程序代码,因此您的担忧是正确的.
作为消费者,您还应该能够选择在何处发出这些索赔。供应商不完全符合标准是很常见的,因此您可能需要稍微调整您的代码。
这里是关于自定义 ADFS 声明的 MS Article,尽管它可能无法让您清楚地了解声明应该如何工作。
更多信息
概括地说,OAuth 系统是如何发出声明的:
- 用户进行身份验证(也可能同意)
- 授权服务器在其数据库中记录此 'delegation',以及相关的声明和范围
- 应用程序可以控制声明的公开方式和位置,例如哪些令牌或端点包含它们
有关更多信息,请参阅 Personally Identifiable Information (PII) 上的这篇文章 - 并了解 Claims Mappers 如何在 Curity 系统中工作。
可能是您的 ADFS 提供商没有给您完全控制权,但值得了解设计模式,并尽可能减少令牌中的用户信息。
我正在尝试使用 OIDC 和授权代码流程来实现 Web 应用程序。我使用 OIDC Core 1.0 specification 作为 应该 工作方式的参考。我正在尝试使它在 Microsoft ADFS 2016 服务器上运行,该服务器通常声称支持 OIDC。
除了一个例外,我已经设法使工作流程的大部分工作正常进行。当我调用 token endpoint 将我的授权代码交换为 access_token
和 id_token
时,我希望通过 name
声明获得用户的可显示名称。但是我从 ADFS 收到的令牌中不存在该声明。
当我重定向到 OIDC 规范的 ADFS 服务器的 authorization endpoint, I pass it scope
values of openid profile
. According to section 5.4 时,profile
范围应该导致请求 name
声明。但我没有收到这种说法。我确实得到了一些我可以考虑使用的其他声明(即 upn
或 unique_name
),但我正在努力尽可能地与标准保持一致。
这是否意味着 ADFS 2016 不符合该特定领域的 OIDC 规范?还是我误读了此处引用的规范部分?
与名称相关的标准声明通常是 given_name
和 family_name
,如 Section 18 中所述,我总是尝试根据这些值编写应用程序代码,因此您的担忧是正确的.
作为消费者,您还应该能够选择在何处发出这些索赔。供应商不完全符合标准是很常见的,因此您可能需要稍微调整您的代码。
这里是关于自定义 ADFS 声明的 MS Article,尽管它可能无法让您清楚地了解声明应该如何工作。
更多信息
概括地说,OAuth 系统是如何发出声明的:
- 用户进行身份验证(也可能同意)
- 授权服务器在其数据库中记录此 'delegation',以及相关的声明和范围
- 应用程序可以控制声明的公开方式和位置,例如哪些令牌或端点包含它们
有关更多信息,请参阅 Personally Identifiable Information (PII) 上的这篇文章 - 并了解 Claims Mappers 如何在 Curity 系统中工作。
可能是您的 ADFS 提供商没有给您完全控制权,但值得了解设计模式,并尽可能减少令牌中的用户信息。