使用 IdentityServer 进行 Active Directory 用户管理的最佳实践

Best practice for Active Directory user management with IdentityServer

使用 IdentityServer4 和 Active Directory 进行用户管理的推荐方法是什么?

我已经开始使用 IdentityServer4 ASP.NET 核心交互快速启动,一切正常。然而,示例代码使用了 TestUserStoreTestUserProfileService 等,替换这些的用法似乎是明智的。

'real-world' 替代方案似乎正在使用 ASP.NET Core Identity,但这会将用户详细信息保存到 IdentityServer 数据库中。鉴于 IdentityServer 不是此数据的真实来源,这很奇怪。

除了快速入门 "test" 的性质 类 之外,这些都很好地满足了我们的需求。我们的 IdentityServer 实例适用于小型组织的内部员工,因此这些商店的内存性质不是问题。

这似乎是一个相当常见的用例,所以我一定遗漏了一些东西。是否可以将所有用户配置文件调用委托给 Active Directory?有开箱即用的代码吗?

  1. Identity Server 是 OAuth 2.0 和 OpenIDConnect(基于 OAuth2.0 构建)的实现。 OAuth 2.0的重点是基于Access Token对WebApi等资源进行保护。那么OAuth 2.0提供的是Authorization
  2. Identity Server 可以提供 ASP.NET Core Identity 提供的 Authenticate 服务,如 This Document
  3. 中指定

在您的情况下,您希望将身份验证部分委托给 AD,将授权部分委托给 Identity Server。您可以参考 This document 在您的 asp.net 核心应用程序中启用 windows 身份验证

我通过为 Active Directory 实施和注册 IProfileService 解决了这个问题。它仍然看起来很奇怪,但似乎可以解决问题。