与一个大的唯一数字(默认情况下是 subjectId(相比,如果我简单地将主键列存储在那里会很糟糕吗?对于某些用户,该值将是1
,对于其他用户来说,9480
,但它几乎不会像默认的 subjectId 那样大。这是一个自动标识列,因此您可以想象它的行为方式。
如果这是不好的做法,请解释原因,因为我看不出有理由用这些属性填充额外的列。令牌应该受到签名的保护,所以他们不能以任何方式滥用它?
从规范:
主题标识符是本地唯一的,永远不会重新分配 最终用户的颁发者中的标识符,旨在 由客户端使用。
所以用户的 Id 适合完美,这也是用于sub
的默认值。您可以自由地了解如何实现 Id(例如 Guid 或 int(。但规范中还有更多内容:
此规范定义了两种主题标识符类型:
公共
这将为所有客户端提供相同的子(主题(值。如果提供程序没有 subject_types_supported 元素,则为默认值 在其发现文档中。
成对
这为每个客户端提供了不同的子值,以便使客户端能够在没有 许可。
默认情况下,IdentityServer 使用public
subs。如果您担心隐私,可以切换到pairwise
潜艇。
但是,目前 IdentityServer 不支持客户端特定的主题。这似乎计划在未来的版本中发布,如此处所述。