ADAL 无外设本机客户端应用程序和多因素身份验证 (MFA)
ADAL headless native client app and multi-factor authentication (MFA)
我希望改编找到的代码 here 以编写有效相当于将文件上传到 OneDrive for Business 的脚本。据我了解,这实际上相当于 "headless" 本机客户端应用程序。我已经成功创建了一个 Azure AD 本机客户端应用程序,分配了权限,并创建了一个 AD 服务帐户以用于 "execute" 脚本(并将文件保存在 OneDrive 中)。
但是,我组织的 Azure AD 需要多重身份验证。当我将 ADAL Python 库用于 "acquire_token_with_username_password" 时,我收到 400 Bad Request 响应,错误描述如下:
adal.adal_error.AdalError: Get Token request returned http error: 400 and server response: {"error":"interaction_required","error_description":"AADSTS50076: Due to a configuration change made by your administrator, or because you moved to a new location, you must use multi-factor authentication to access 'https://login.windows.net/[tenant].onmicrosoft.com'.\r\nTrace ID: [uuid]\r\nCorrelation ID: [uuid]\r\nTimestamp: [timestamp]","error_codes":[50076],"timestamp":"[timestamp]","trace_id":"[uuid]","correlation_id":"[uuid]"}
我也试过以服务帐户身份登录 O365 并创建一个 "app password" 并将其用作密码而不是实际帐户密码,但它也失败了。错误有些不同 - 由于密码无效而被拒绝。
鉴于这是一个 "headless" 应用程序(脚本),我有哪些验证选项?我正在努力寻找有用的信息,尤其是对于这个 headless/script 案例。
资源所有者密码凭证授予流程不支持 MFA。要与用户进行 MFA 所需的 Azure 活动目录集成,您可以考虑使用其他流程(例如 client credentials grant flow or authorization code grant flow)。
我希望改编找到的代码 here 以编写有效相当于将文件上传到 OneDrive for Business 的脚本。据我了解,这实际上相当于 "headless" 本机客户端应用程序。我已经成功创建了一个 Azure AD 本机客户端应用程序,分配了权限,并创建了一个 AD 服务帐户以用于 "execute" 脚本(并将文件保存在 OneDrive 中)。
但是,我组织的 Azure AD 需要多重身份验证。当我将 ADAL Python 库用于 "acquire_token_with_username_password" 时,我收到 400 Bad Request 响应,错误描述如下:
adal.adal_error.AdalError: Get Token request returned http error: 400 and server response: {"error":"interaction_required","error_description":"AADSTS50076: Due to a configuration change made by your administrator, or because you moved to a new location, you must use multi-factor authentication to access 'https://login.windows.net/[tenant].onmicrosoft.com'.\r\nTrace ID: [uuid]\r\nCorrelation ID: [uuid]\r\nTimestamp: [timestamp]","error_codes":[50076],"timestamp":"[timestamp]","trace_id":"[uuid]","correlation_id":"[uuid]"}
我也试过以服务帐户身份登录 O365 并创建一个 "app password" 并将其用作密码而不是实际帐户密码,但它也失败了。错误有些不同 - 由于密码无效而被拒绝。
鉴于这是一个 "headless" 应用程序(脚本),我有哪些验证选项?我正在努力寻找有用的信息,尤其是对于这个 headless/script 案例。
资源所有者密码凭证授予流程不支持 MFA。要与用户进行 MFA 所需的 Azure 活动目录集成,您可以考虑使用其他流程(例如 client credentials grant flow or authorization code grant flow)。