如何安全地管理API级别的角色和用户

时间:2018-01-10 14:02:30

标签: asp.net-identity identityserver4

我有一个角度应用程序的API,我们正在使用Identity Server 4来编写令牌。 IDS4在一个单独的项目中,我们在该项目中创建了一些MVC视图,以便新用户在控制器中使用UserManager注册我们创建的位置。计划是我们最终将为不同的项目提供几个单独的API,但只有一个身份服务器管理它们。

我们遇到的问题是我们需要能够从API项目中创建用户并修改他们的角色。由于API无法访问IDS4数据库,其中身份表是处理此问题的最佳方法吗?我是否可以在IDS4项目中添加端点以访问UserManager?这似乎有点风险,如果我这样做,我如何保持安全,所以只有合法的API项目可以使用它,它不会打开安全漏洞?

1 个答案:

答案 0 :(得分:0)

简短的回答是 - 你可以这样做。

您要用于创建用户的API应该是已注册的IDS客户端,它将根据client credentials flow(clientId和clientSecret)进行身份验证。

然后,我猜你有一个可以访问数据库的API。然后,新的客户端API将调用具有数据库访问权限的API。具有访问权限的用户将受到IDS授权的保护。

当然,您可以为特定操作添加更多安全性,并且只允许使用某些自定义属性或授权策略的新API(而不是每个,通过IDS授权,调用)。

相关问题