我有一个带有 .net core 2 api 的 spa 应用程序。我想使用身份服务器 4,以便将来我还可以提供 sso 解决方案并允许访问我的其他 api/应用程序。我有一个数据库,其中包含 identityserver4 将连接的所有租户的所有用户信息(以及租户信息)。每个租户都有自己的 spa 应用程序数据库。我从身份服务器获得的 api 访问令牌是否应该在声明中包含角色信息,如果是,角色设置在哪里(在与用户相同的数据库或租户特定数据库中?我不确定如何知道这些角色是针对哪个 api。例如,如果我请求 api1 范围,我可以取回仅适用于该范围的该用户的角色列表,如果我请求 api2 范围,则可以取回该用户的不同角色列表等。在我看来,identityserver 上的文档和 microsoft 上的文档与处理此问题的方式相矛盾。
1 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
通常,由于您所描述的确切冲突,当 oidc/oauth2 到位时,基于角色的身份验证将被逐步淘汰。除非您的所有 Web 应用程序/api 都尊重您在 asp.net 身份中定义的中心角色 - 否则将它们包含在访问令牌中几乎没有任何好处。
如果您计划拥有其他应用程序将尊重并基于其授权的中央角色系统 - 那么我建议在单个数据库中使用 Identity Server 4 设置 asp.net 身份,为“角色”创建一个身份资源,包括当客户端请求“角色”范围时,用户特定角色作为令牌中的声明。
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消