Asp.net core 使用IdentityServer管理Active Directory用户的最佳做法

Asp.net core 使用IdentityServer管理Active Directory用户的最佳做法,asp.net-core,active-directory,asp.net-identity,identityserver4,Asp.net Core,Active Directory,Asp.net Identity,Identityserver4,使用IdentityServer4和Active Directory进行用户管理的推荐方法是什么 我从IdentityServer4 ASP.NET Core interactive快速入门开始,一切都很好。但是,示例代码使用了TestUserStore、TestUserProfileService等,因此替换它们似乎比较谨慎 “真实世界”的替代方案似乎是使用ASP.NET核心标识,但这会将用户详细信息持久化到IdentityServer数据库中。鉴于IdentityServer不是这些数据的真

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

我从IdentityServer4 ASP.NET Core interactive快速入门开始,一切都很好。但是,示例代码使用了
TestUserStore
TestUserProfileService
等,因此替换它们似乎比较谨慎

“真实世界”的替代方案似乎是使用ASP.NET核心标识,但这会将用户详细信息持久化到IdentityServer数据库中。鉴于IdentityServer不是这些数据的真实来源,这是一个奇怪的匹配

除了快速入门课程的“测试”性质外,这些课程也很好地满足了我们的需求。我们的IdentityServer实例适用于小型组织中的内部员工,因此这些存储的内存特性不是问题

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

  • Identity Server是OAuth2.0和OpenIDConnect(构建于OAuth2.0之上)的实现。OAuth2.0的关键是基于访问令牌保护WebApi等资源。所以OAuth2.0提供的是授权
  • Identity Server可以提供ASP.NET核心标识提供的身份验证服务,如中所述

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

    我通过为Active Directory实现并注册一个
    IProfileService
    解决了这个问题。它看起来仍然很奇怪,但似乎起到了作用。

    这是我的全部理解,而不是我的问题。AD已在执行身份验证,IdentityServer已在执行授权。我的问题是替换Test*类。如果从快速启动中删除它们,则标识令牌中不存在任何标识声明。具体而言,当删除
    AddTestUsers()
    时,外部AD身份验证工作,但不存在任何标识声明。除了添加内存中的用户存储,此方法还添加了
    IProfileService
    的测试实现。开箱即用,有一个默认配置文件服务和一个ASP.NET标识配置文件服务。我假设我需要提供某种形式的广告资料服务。我的问题是,这是否真的需要手动执行,或者我是否解决了错误的问题。请参见快速启动中的,特别是
    AutoProvisionUser()
    FindByExternalProvider()