在Web API身份验证(Identity Server)之后添加特定于应用程序的声明

问题描述:

我正在将Web应用程序OnValidateIdentity中的应用程序特定声明添加到Identity Sever的访问令牌声明中。我为获取每个API调用的登录用户查询数据库获取了特定于应用程序的声明。我是否应该将特定于应用程序的声明注入Identity Server中的令牌(以减少数据库调用)?在Web API身份验证(Identity Server)之后添加特定于应用程序的声明

Identity Server令牌应该只包含有关用户的声明。收到令牌时,应该可以查询应用程序特定的声明。如果这是一个问题,您可以引入一个缓存层来减少数据库调用。

但是,如果您有真正有效的原因,可以打破这些规则并在身份服务器上添加特定于应用程序的声明。 (例如:由多个应用共享的设置)。

+0

最佳做法是通过引用令牌而不是通过身份令牌在申请中添加应用程序特定数据,这样,您可以使用自省端点来反省参考令牌,并在api级别读取该申诉值。您还可以为自检端点添加缓存逻辑。这将允许您缓存指定持续时间的内省结果。 –

+0

好点。但是使用引用令牌会引入类似的开销(网络调用)来使用应用程序数据库调用。引用令牌的有效用例是当您的访问令牌变大时,无论具有用户特定的声明或应用程序特定的声明。 – rawel

+0

我应该如何使用DB处理最小化?我正在使用SQL Sever 2014.我应该使用第二级Nhibernate缓存还是Redis缓存? – Sabby62