我有 IdentityServer4 与 AspNetCore.Identity 一起工作。在 AspNetIdentity 登录页面以及使用 IdentityModel TokenClient.RequestResourceOwnerPasswordAsync 时,登录工作正常。
然后我想扩展它以能够针对 AD 对用户进行身份验证。我注入了一个覆盖 PasswordSignInAsync 的 SignInManager 来检查 AD 凭据。如果用户没有针对 AD 进行身份验证,那么它会恢复到基本实现(针对 AspNetUsers 进行检查)。
登录页面工作正常,我可以使用 AD 帐户或 AspNetUser 帐户登录。
我的问题是 TokenClient 登录不适用于 AD 帐户,仅适用于 AspNetUsers。执行 TokenClient.RequestResourceOwnerPasswordAsync 时,不会调用 SignInManager 中的任何登录方法。
还有其他地方我需要注入某种身份验证服务来拦截通过 IdentityServer Token API 发生的登录吗?