ADAL无头本机客户端应用和多重身份验证(MFA)

时间:2017-01-06 15:16:20

标签: adal

我希望调整代码here来编写有效的内容,以便将文件上传到OneDrive for Business。据我了解,这实际上相当于一个无头的"本机客户端应用。我已成功创建Azure AD本机客户端应用程序,分配了权限,并创建了一个AD服务帐户,用于执行"执行"脚本(并在OneDrive中保存文件)。

但是,我的组织的Azure AD需要多因素身份验证。当我使用ADAL Python库来获取" acquire_token_with_username_password"我收到400 Bad Request响应,错误描述如下:

  

adal.adal_error.AdalError:获取令牌请求返回http错误:400和服务器响应:{"错误":" interaction_required"," error_description":& #34; AADSTS50076:由于管理员进行了配置更改,或者您搬到了新位置,因此必须使用多重身份验证才能访问“https://login.windows.net/[tenant].onmicrosoft.com”。\ r \ n \ nTrace ID:[uuid] \ r \ n相关ID:[uuid] \ r \ n时间戳:[timestamp]"," error_codes":[50076]," timestamp": " [时间戳]"" trace_id的":" [UUID]"" CORRELATION_ID":" [UUID]& #34;}

我也尝试过登录O365作为服务帐户并创建一个"应用密码"并使用它作为密码而不是实际的帐户密码,但它也失败了。错误有所不同 - 由于密码无效而被拒绝。

鉴于这是一个无头的"应用程序(脚本),我有哪些身份验证选项?我努力寻找好的信息,特别是对于这个无头/脚本案例。

1 个答案:

答案 0 :(得分:1)

资源所有者密码凭据授予流程不支持MFA。要与用户需要MFA的Azure活动目录集成,您可以考虑使用其他流程(例如client credentials grant flowauthorization code grant flow)。