首页 > 解决方案 > 在 Identity Server 4 中放置用户声明的位置

问题描述

我正在使用 Identity Server 4 来管理我组织中所有应用程序的登录信息。所以我部署了 IdentityServer 4 并连接到 sql server 数据库。现在我有 5 个客户端应用程序,每个应用程序都有自己的角色/声明(即应用程序 1 有经理、会计师,而应用程序 2 有开发人员、经理、电工,应用程序 3 有设计师、管理员、审阅者......)。我的问题是:我是将这些用户角色/声明放在 Identityserver4 数据库中,还是每个应用程序都有自己的数据库来保存自己的用户角色/声明?

谢谢

标签: sqlidentityserver4claims-based-identity

解决方案


这听起来有点像您混淆了身份验证和授权。您的身份不应该从一个应用程序到另一个应用程序发生变化——您是谁以及您由什么组成是一个常数(ish),并且您的身份不应该仅仅因为您现在在不同的应用程序上而改变。是的,您的角色可能会因应用程序以及您的权限和授权决策而异,但不会因您的身份而异。 https://leastprivilege.com/2016/12/16/identity-vs-permissions/

使用 IdentityServer 来管理身份并发布身份证明很棒,但是您应该寻找一种不同的解决方案来在您的应用程序中授权用户......让这些应用程序决定是否在提供的身份的情况下允许用户做事。_ 这可能是基于角色的,或者涉及更多的东西。这意味着您应该管理用户在每个应用程序中拥有的应用程序角色,而不是使用身份服务器。


推荐阅读