自定义AAD身份验证逻辑

时间:2019-02-06 16:12:22

标签: azure-active-directory

是否可以向AAD添加/扩展用户身份验证逻辑?

我希望能够以另一种方式检索用户的密码,然后将密码移交给AAD以常规方式由AAD对其进行验证。

从高层次上讲,这是我想到的身份验证流程:

  1. 用户进入需要身份验证的系统
  2. 用户被重定向到AAD进行身份验证
  3. AAD重定向到我的密码检索引擎
  4. 用户将其密码提供给密码检索引擎
  5. 密码检索引擎将密码返回给AAD
  6. 密码检索引擎重定向回AAD
  7. AAD根据密码检索引擎中的用户密码执行密码/用户验证。

对此表示任何帮助。

2 个答案:

答案 0 :(得分:1)

尽管正式建议不要使用AAD应用程序,但可以使用用户名/密码身份验证(grant_type=password)。

该流程如何与ADAL.NET库结合使用,在此进行了详细说明:https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/wiki/Acquiring-tokens-with-username-and-password

请注意,必须将您的AAD应用创建为“本机”应用才能起作用!尝试针对使用用户名和密码的用户进行身份验证时,“ Web”应用程序(机密客户端)将引发AADSTS7002错误!

此处介绍了AAD v2.0密码流程:https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc

答案 1 :(得分:0)

是的,您可以这样做。您可以通过添加AuthController发行身份验证令牌并创建自定义身份验证端点。在用户可以调用终结点之前,他需要使用有效的凭据来调用AuthController以获得令牌,该令牌将在后续的API调用中使用。

到目前为止,这是迄今为止我所见过的最好的guide。这个one也很方便。

您还可以在后端使用a custom authentication,在前端使用AAD身份验证。