IdentityServer4如何将ClientProperties转换为令牌

时间:2018-06-18 06:14:23

标签: entity-framework-core identityserver4 openid-connect

我有一个带有EFCore实现的IdentityServer4,它运行良好。我需要进行更改以获得令牌中包含的一些客户信息,这些信息证明是有问题的。我可以将信息包含在ClientClaims表中,并在令牌中返回,但我的理解是我应该将此类信息放在ClientProperties表中。当我这样做时,它不会在令牌中返回,我无法找到有关如何从ClientProperties表中获取数据到令牌的任何信息。

您可能会问为什么我不使用ClientClaims表,但是我使用该表来存储客户端可以访问的系统的哪些区域,因此不希望将它用于交叉目的。

您可以给予任何帮助。

2 个答案:

答案 0 :(得分:2)

properties

  

根据需要保存任何自定义客户端特定值的字典。

客户端属性只是一个文件,您可以使用它来存储有关客户端的额外信息。

这是我用它的一个例子。

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的用途。

答案 1 :(得分:0)

Client.Properties用于持久保存与该客户端有关的数据。

实际上,交换信息的唯一方法是通过声明,这是最佳实践。您可以包括自定义声明名称,只需确保它们不与标准名称冲突即可。