是否可以验证Azure Active Directory用户的密码

时间:2018-11-06 22:11:23

标签: azure-active-directory adal

我们正在利用Azure Graph API并能够获取要返回的属性,但是无法使用标准.Net库验证用户的密码,该库以与本地Active Directory相同的方式对密码进行哈希处理。可以验证用户的Azure Active Directory密码吗?

1 个答案:

答案 0 :(得分:0)

最简单的答案是

理想情况下,您的应用程序代码不应首先使用户密码可用,因为这违反了安全性最佳实践,因此不建议/不建议这样做。仅应通过不同的受支持的OAuth 2.0授予流将用户凭据直接提供给Azure AD终结点,并且应用程序应使用Azure AD返回的令牌/身份验证代码。

使用ADAL库(以及Azure AD终结点),您将找不到仅用于验证用户凭据的特定内容,而仅是获取令牌的方法。

解决方法-ROPC-资源所有者密码凭证授予(不建议,多次发行)

使用ROPC时,您的应用程序代码具有可用的用户密码。 它违反了安全性最佳做法,也不适用于MFA和联合身份验证用户。不建议使用此赠款,因为它会带来潜在的攻击风险,因此不建议使用。

解决方法是使用ROPC为用户获取令牌。如果用户名或密码不正确,您将得到一个例外,否则,您将获得一个有效的令牌,这意味着凭据是好的。

这里有几个链接,涵盖了ROPC的详细信息(建议不要同时使用。):

例如,对于本机应用程序,代码看起来像这样。

result = await context.AcquireTokenAsync(resource, clientId, new UserPasswordCredential("john@contoso.com", johnsPassword));