我在这里找到了几个类似于我需要的答案,但所有这些问题都是因为它们是针对过时的IdentityServer4版本。现在我正在使用IS4版本1.2,我正在尝试向/ connect / token添加声明。我正在使用Postman连接到此位置,该位置当前返回常规访问令牌。我需要此令牌中的自定义声明。在这方面,官方文件相当稀少。任何深入介绍这些文档的示例或指针都将非常感激!
答案 0 :(得分:1)
您可以设置应在访问令牌中返回的声明类型,方法是将其添加到UserClaims
或ApiResource
上的ApiScope
集合中。
要设置硬编码声明(类型和值),请在Claims
上的Client
集合上执行此操作。
答案 1 :(得分:1)
正如Scott所说,您需要在ApiResource
和/或ApiScope
中定义您希望在令牌中可用的声明。
如果您正在处理自定义声明(即只知道如何从您的身份结构中检索信息),那么您还需要提供IProfileService
的实现,并确保将其添加到ConfigureServices
方法中的管道。
services.AddTransient<IProfileService, CustomProfileService>();
然后,您可以使用context
中所请求的声明来实现您喜欢的任何逻辑,以填充context.RequestClaimTypes
。