identityserver4上

时间:2017-09-30 15:11:27

标签: authentication asp.net-core authorization identityserver4

我正在开发一个项目,允许用户创建用户来创建应用密钥或秘密,以便外部客户端可以使用特定服务。用户可以创建多个秘密,他们可以选择在多个客户端中使用这些秘密。

为此,我计划创建一个将使用identityserver4的解耦auth服务器。

真正阻碍我的是我不确定我是否应该在auth服务器上创建API层。我在auth服务器上考虑API的原因是我可以创建一种管理门户客户端,它将为用户提供创建,更新和访问其应用程序密钥/秘密的前端。甚至管理门户也将是一个去耦角度应用程序。

目前有两件事阻碍了我:

  1. 我不确定通过这个数据提供这个数据是好的还是安全的 api层。根据我的理解,identityserver将无法提供允许我通过端点访问用户客户列表的功能,但如果我错了,请纠正我,并且有更好的方法来解决这个问题。
  2. 我知道我们可以轻松创建新客户端并使用identityserver4将其保存到数据库中,并且我计划为用户客户端使用ClientCredentials授权类型,但是在用户和客户端之间是否存在数据库和身份级别的链接?或者我需要自己创建该功能吗?
  3. 到目前为止,我看过但是我无法找到与我在identityserver4中的情况类似的示例

    对于noob问题,我很抱歉,我只是进入了身份服务器和网络安全,因此很多这些概念对我来说仍然是一个新事物。

1 个答案:

答案 0 :(得分:1)

对于数字1,我​​会说是的,你可以为服务器数据创建一个API层。如果您查看IdenttiyServer4 AdminUI,Rock Solid也会使用UI后面的管理API。但是你必须考虑加密,TLS和其他安全机制来保证这一点。

AFIK的第2号,用户和客户之间在身份级别没有链接。你必须自己创造。

基本上,您需要一个支持Multitenancy的系统。我通过在AspNetIdentity用户表中添加TenantId字段来实现这一点。并且还将租户ID添加到声明列表中。

如果我错了,请不要犹豫纠正我。