asp.net-core - IdentityServer4 和用户管理

标签 asp.net-core asp.net-identity identityserver4

我一直在网上寻找一些关于 IdentityServer4 的数据以及它的真正用途。

据我目前所了解的,IdentityServer4 是 token 颁发者,它是一个系统,它将保持特定客户端可以访问或不可以访问的资源之间的链接。因此,IdentityServer 将获取客户端标识以说明它是否有权访问此资源,或者它将获取用户标识(也称为邮件和密码)以获取 token 以说明用户是否已注册。

如果我没记错的话,这意味着用户存储必须靠近 IdentityServer 或者 IdentityServer 应该知道用户存储中所做的每一个修改。关于身份服务器的最新版本,我还没有找到一些有值(value)的东西。而且,好像IdentityServer需要AspNet Identity,这意味着信息会重复……

有什么我不明白或弄错了吗?如果没有,它是如何轻松实现的(考虑到我是从头开始,我必须迁移旧的旧用户存储)?

最佳答案

您有几个用户管理选项:

  • 正如你所说 - 使用 Asp NET Identity
  • 使用 Entity Framework
  • 使用自己创建的自定义逻辑

  • 选项 1 和 2 有很多示例和每个示例的快速入门,所以我不会深入那里。

    选项 3 - 自定义实现。我们最终得到了这一点。我们有很多自定义的东西(感觉与扩展/覆盖 EF 方法无关),我们不需要 Asp NET Identity,因此决定使用自定义实现。

    或多或少-我们有一个数据库,可以容纳我们的用户。用于访问 db 的 EF(与 PostgreSQL、SQL Server 等一起使用,因此您可以在这里自由发挥)和自定义服务,用于 CRUD 操作以及您的表所需的任何其他内容。

    IdentityServer 允许您连接它使用的几乎每个服务/存储的自定义实现:
    services.AddIdentityServer()
                .AddInMemoryCaching()
                .AddProfileService<ProfileService>()
                .AddClientStoreCache<ClientStore>()
                .AddResourceStoreCache<ApiResourceStore>()
    

    所有这些都是其接口(interface)的自定义实现。您还可以自由修改 AccountController ,实际登录发生的地方,因此您可以在那里连接您的用户服务,并检查您自己的数据库。

    所以基本上这里的方法取决于你,你的时间框架等。

    关于asp.net-core - IdentityServer4 和用户管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51384446/

    相关文章:

    c# - 为什么安全印章不会注销用户?

    c# - WebApi + 简单注入(inject)器 + OWIN

    asp.net - 对于使用 OpenIdConnect 身份验证的 WebForms 客户端,LogoutUri 应该是什么?

    amazon-web-services - AWS EBS 上的 ASP.Net Core - 写入权限和 .ebextensions

    asp.net-core - 红隼服务器 : How to bind different ports to different controllers?

    c# - 是否可以将 ASP.NET 成员资格与在 ASP.NET Identity 2.0 中创建的表一起使用以进行身份​​验证?

    c# - ASP.NET Core - 依赖注入(inject) - IdentityServer4 DbContext

    c# - MySql.Data.MySqlClient.MySqlException :“Access denied for user ' hobo' @'49.70.207.34'(使用密码 : YES)”

    asp.net-mvc - 针对同一元素的多个标签助手

    c# - ASP.NET 5 web 应用程序与 web.cmd 一起工作,但在 IIS 应用程序下不工作