我有一个带有 EFCore 实现的 IdentityServer4,一切运行良好。我需要进行更改以获取令牌中包含的一些客户端信息,这被证明是有问题的。我可以将信息包含在 ClientClaims 表中,并在令牌中返回,但我的理解是我应该将此类信息放入 ClientProperties 表中。当我这样做时,它不会在令牌中返回,并且我找不到有关如何将 ClientProperties 表中的数据获取到令牌中的任何信息。
您可能会问为什么我不只使用 ClientClaims 表,但我使用该表来存储客户端可以访问的系统区域,因此不希望将其用于交叉目的。
您能提供的任何帮助将不胜感激。
根据需要保存任何自定义客户特定值的字典。
客户端属性只是一个字典,您可以使用它来存储有关客户端的额外信息。
这是我使用它的一个例子。
Id ClientId Key Value
265 25 updatedby 21248582
266 25 updateddate 2018-05-30T06:45:10.2389386+00:00
没有任何地方说明此信息应作为声明的一部分。
您可能会说
"But a i already stated i dont want to use ClientClaims"
,但这就是ClientClaims
的用途。
Client.Properties 用于保存与该客户端相关的数据。
事实上,交换信息的唯一方法是通过声明,这是最佳实践。您可以包含自定义声明名称,只需确保它们不与标准名称冲突即可。