3

场景 1:假设我有隐式授权类型的 Angular 客户端。我还使用 asp.net 身份登录数据库用户。我以用户 Bob 的身份登录。我访问我的汽车列表。对于每辆车,我都可以选择编辑我的车。每行都有编辑按钮和汽车ID。

每行获取 url 示例:http://localhost:5000/cars/id/1

假设我随机输入了一些汽车的 ID: http://localhost:5000/cars/id/345,这是别人的用户汽车。

在这种情况下,身份服务器如何保护其他用户数据?

场景 2:让我们使用身份服务器 openid 身份验证设置身份管理器。我们正在验证哪个用户名和密码以获得访问身份管理器来管理用户?如果它是来自 aspnet 身份数据库的用户,那么里面的每个用户都可以访问身份管理器......?

4

2 回答 2

1

他们没有。这不是 Identity Server 的责任。身份服务器的主要职责是处理身份验证。

于 2021-05-07T16:00:52.557 回答
0

方案 1

除了在 OAuth 中定义的基于基本客户端/范围的授权之外,授权不是身份服务器的一部分。身份服务器只处理身份验证部分。在这里查看在 asp.net 核心应用程序上实施授权。https://docs.microsoft.com/en-us/aspnet/core/security/authorization/resourcebased

基本上,身份服务器提供用户身份。因此,您可以验证该用户是否有权访问给定资源。


方案 2

您可以在用户存储中定义具有特定角色声明的用户(例如 Role:IdentityManagerAdministrator),并验证登录用户是否在 identityManager 中具有该角色。请参阅 使用 IdentityServer3 保护 IdentityManager

于 2017-05-07T23:38:37.547 回答