首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSGraph多因素认证"interaction_required“

MSGraph多因素认证"interaction_required“
EN

Stack Overflow用户
提问于 2021-09-09 17:56:24
回答 1查看 633关注 0票数 0

我使用具有授予类型“密码”的端点:login.microsoftonline.com/tenantId/oauth2/token将用户登录到:

代码语言:javascript
复制
{
    "grant_type": "password",
    "client_id": "xxx",
    "client_secret": "xxx",
    "scope": "openid",
    "resource": "https://graph.microsoft.com",
    "username": "username",
    "password": "********",
}

当我在AD上向未注册多因素身份验证的用户发布此信息时,我会得到预期的结果,包括access_token和refresh_token。

但是,在注册的用户上,我得到了一个错误为HttpStatusCode.BadRequest"interaction_required"

根据微软的文件发现了这里

在本例中,您的应用程序在访问令牌获取期间接收带有interaction_required错误的400或调用MicrosoftGraph时接收带有insufficient_claims错误的403。在这两种情况下,错误响应都包含其他信息,这些信息可以显示给授权端点,以向用户询问附加信息(如多因素身份验证或设备注册)。

但是,我在结果中没有看到任何其他信息,也找不到关于下一步的很多信息。我得到的JSON如下所示:

代码语言:javascript
复制
{
    "error":"interaction_required",
    "error_description":"AADSTS50079: Due to a configuration change made by your administrator, or because you moved to a new location, you must enroll in multi-factor authentication to access '00000003-0000-0000-c000-000000000000'.\r\nTrace ID: aee10c85-fd12-42ec-be6c-76d546500100\r\nCorrelation ID: 0ee3ebac-f702-4fbc-be76-fd6a291ad488\r\nTimestamp: 2021-09-09 17:45:24Z",
    "error_codes":[50079],"timestamp":"2021-09-09 17:45:24Z",
    "trace_id":"aee10c85-fd12-42ec-be6c-76d546500100",
    "correlation_id":"0ee3ebac-f702-4fbc-be76-fd6a291ad488",
    "error_uri":"https://login.microsoftonline.com/error?code=50079",
    "suberror":"basic_action"
}

但我要回"interaction_required",并与我们的AD管理员确认,他们肯定是注册的。因此,我对解决这一问题的下一步工作感到有些不知所措。

EN

回答 1

Stack Overflow用户

发布于 2021-09-13 12:04:47

原因:用户正在尝试需要多因素身份验证的身份验证方法。

尝试捕捉所获得的错误,并通过引用此博士来根据流程场景的步骤执行新请求

在条件接收环境中构建应用程序时,MicrosoftGraph会有特殊的考虑。由于条件访问策略被分配给特定的数据集,Azure AD将根据图表背后的数据而不是图本身来强制执行条件访问策略。

(或检查以下各点)

条件访问策略防止非交互流工作。

可能的解决办法..。

  1. 使用交互式流代替。
  2. 如果您使用的是交互式流程,但仍有此错误,请确保openid是交互登录期间的作用域之一。您可能在交互登录后收到错误,并试图将授权代码交换为访问令牌.

示例:

代码语言:javascript
复制
https://login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/authorize?client_id=#...#
    &response_type=code
    &scope=openid groups.read.all
    &nonce=1234
    &redirect_uri=https://app.contoso.com

代码语言:javascript
复制
Notice "scope=openid groups.read.all" in the request above
  1. 将客户端应用程序添加到条件接收策略的异常列表中。
  2. 将用户添加到条件接收策略的异常列表中
  3. 如果您没有使用条件访问策略,并且用户直接启用了MFA,那么最后一件事是,如果上面的解决方案对您无效,则禁用MFA。
  4. 或者您可以使用基于证书的身份验证,而不是MFA。

参考资料:

  1. login-to-azure-web-application-fails-with-aadsts50079
  2. 所以线
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69122789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档