4

我希望下面的问题是有道理的:IdentityServer3 - 这对于ActiveDirectory的:MembershipReboot/AspNetIdentity/UserService

  • 管理我的用户的ActiveDirectory。
  • 我通过IdentityServer3对其进行身份验证。
  • 我通过用户所在的AD组授权API(充当安全角色)。

我应该如何设置IdentityServer3:

  1. 我必须用我自己的自定义UserService访问ActiveDirectory中?
  2. 这是否代替MembershipReboot/AspNetIdentity支持(或者我误解了UserService是什么)?
  3. 或者我应该使用IdentityServer3中的MembershipReboot/AspNetIdentity包之一,并以某种方式将它们自定义为映射到ActiveDirectory(如果可以,如何)?

回答

1

似乎没有“映射”,不应该是从AD到成员资格重新映射或身份验证或新的身份重新启动用户存储的映射。原因似乎很简单:mr和aspid或ir都是以持久方式(某种数据库或存储库)存储用户信息的方式,这已经在AD中完成。

用户服务就够了。它会导致ASP Identity对象被填充,并且中间件按照预期工作,在客户端调用具有“授权”属性的“装饰”后,或者在从OP返回后,正确自动地调用用户认证和用户或资源授权(OpenID Connect连接提供程序)或从单独的授权或资源提供程序中进行安全调用。

回答更新:现在在IdentityServer4中,UserService已被弃用,而是使用IResourceOwnerPasswordValidator。

看到这里的工作代码和详细的解释,在接受一前一后的答案(投上一票,请) IdentityServer4 register UserService and get users from database in asp.net core

+0

如果可能的话,你可以分享你写来解决这个问题的代码。我现在面临同样的问题。需要使用AD进行身份验证,但无法找到更多信息。非常感谢您的帮助。 – Venky

+0

现在在idsrv4中不再有UserService。在这里看到接受的答案之后的答案,并且(现在把它投票给...)如何去做。完整代码在那里。 http://stackoverflow.com/questions/35304038/identityserver4-register-userservice-and-get-users-from-database-in-asp-net-core – pashute