我使用具有授予类型“密码”的端点:login.microsoftonline.com/tenantId/oauth2/token将用户登录到:
{
"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如下所示:
{
"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管理员确认,他们肯定是注册的。因此,我对解决这一问题的下一步工作感到有些不知所措。
发布于 2021-09-13 12:04:47
原因:用户正在尝试需要多因素身份验证的身份验证方法。
尝试捕捉所获得的错误,并通过引用此博士来根据流程场景的步骤执行新请求
在条件接收环境中构建应用程序时,MicrosoftGraph会有特殊的考虑。由于条件访问策略被分配给特定的数据集,Azure AD将根据图表背后的数据而不是图本身来强制执行条件访问策略。
(或检查以下各点)
条件访问策略防止非交互流工作。
可能的解决办法..。
示例:
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
Notice "scope=openid groups.read.all" in the request above参考资料:
https://stackoverflow.com/questions/69122789
复制相似问题