authentication - identityserver4 上用户的多个外部客户端

标签 authentication asp.net-core authorization identityserver4

我正在从事一个项目,该项目允许用户创建用户以创建应用程序 key 或 secret ,以便外部客户端可以使用特定服务。用户可以创建多个 secret ,他们可以选择在多个客户端上使用这些 secret 。

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

真正让我退缩的是我不确定是否应该在身份验证服务器上创建一个 API 层。我考虑在 auth 服务器上使用 API 的原因是,我可以创建一种管理门户客户端,为用户提供创建、更新和访问他们的应用程序 key / secret 的前端。甚至管理门户也将成为一个解耦的角度应用程序。

目前有两件事阻碍了我:

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

到目前为止,我已经看过了,但我没能找到与我使用 identityserver4 的情况类似的例子

抱歉这个菜鸟问题,我刚刚开始了解身份服务器和网络安全,所以其中很多概念对我来说仍然很新。

最佳答案

对于第一点,我会说是的,您可以为服务器数据创建一个 API 层。如果您检查 IdenttiyServer4 AdminUI , Rock Solid 还使用了 UI 背后的管理 API。但您必须考虑加密、TLS 和其他安全机制来确保其安全。

AFIK 对于数字 2,在用户和客户端之间没有身份级别的链接。你必须自己创造。

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

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

关于authentication - identityserver4 上用户的多个外部客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46504023/

相关文章:

java - 如何为 Java Web Start 应用程序进行基于网页的身份验证?

api - 如何在 Rails 5 API 模式下重置密码

authentication - 使用用于 AzureBearerAuthentication 的 JWT 获取访问 token

javascript - xmlHttpRequest可以访问Firefox中的授权 header 吗

php - Symfony2 - 动态角色管理

asp.net - 激活 "authorization"会导致 CSS 停止工作!怎么解决呢?

node.js - 没有 id 的 PUT 请求

asp.net-core - 通过 URL 访问 ASP.NET 5 View 组件

c# - CORS asp.net 核心 webapi - 缺少 Access-Control-Allow-Origin header

ASP.NET Core 中的 Redis 缓存