我希望调整代码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作为服务帐户并创建一个"应用密码"并使用它作为密码而不是实际的帐户密码,但它也失败了。错误有所不同 - 由于密码无效而被拒绝。
鉴于这是一个无头的"应用程序(脚本),我有哪些身份验证选项?我努力寻找好的信息,特别是对于这个无头/脚本案例。
答案 0 :(得分:1)
资源所有者密码凭据授予流程不支持MFA。要与用户需要MFA的Azure活动目录集成,您可以考虑使用其他流程(例如client credentials grant flow或authorization code grant flow)。