我想从Azure AD验证用户凭据。该功能适用于尚未启用MFA的用户,但是MFA允许用户低于错误。
由于管理员更改了配置,或者 您移至新位置后,必须使用多重身份验证 访问
因此,当我们通过图形API访问时,它需要一种忽略MFA的方法
这是我的代码。
var values = new Dictionary<string, string>
{
{ "grant_type", "password" },
{ "client_secret", appKey },
{ "client_id", clientId },
{ "username", userName },
{ "password", password },
{ "scope", "User.Read openid profile offline_access" },
};
HttpClient client = new HttpClient();
string requestUrl = $"https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token";
var content = new FormUrlEncodedContent(values);
var response = client.PostAsync(requestUrl, content).Result;
if (response.IsSuccessStatusCode)
{
return true;
}
else
{
return false;
}
答案 0 :(得分:0)
验证用户凭据的正确方法是让用户通过浏览器进行交互身份验证。 这将使他们能够通过MFA,通过与ADFS的联盟登录等。 最重要的是,用户不必将密码提供给您的应用。
您要使用的流仅在规范中作为旧应用程序的升级路径存在。 启用MFA后,其使用就基本上变得不可能了。