【问题标题】:Unauthorized error while authenticating Sharepoint REST API using Python使用 Python 对 Sharepoint REST API 进行身份验证时出现未经授权的错误
【发布时间】:2020-01-03 14:32:08
【问题描述】:

我正在尝试通过使用多因素 ADFS 身份验证的 REST API 从 SharePoint Online 数据库下载文件,到目前为止,我发现这些帖子(Post1Post2)讨论了发送 SAML 请求到 STS 从https://login.microsoftonline.com/extSTS.srf 接收安全令牌,我在网上找到了多个示例,它们使用相同的方法来验证他们的请求。但是,当我将 SAML 请求发送到上述 Microsoft URL 时,我收到以下错误。

AADSTS50126:由于用户名或密码无效,验证凭据时出错。

我对 SharePoint 数据库具有适当的访问权限,因为在使用经过身份验证的会话的浏览器时,我能够获得对 API 请求的有效响应(检查可用列表而不是身份验证)。关于我可能做错了什么的任何想法,或者即使 MFA 保护的 SharePoint 库可以进行身份​​验证。

【问题讨论】:

  • 你检查我的答案了吗?有任何后续问题吗?

标签: python sharepoint saml adfs multi-factor-authentication


【解决方案1】:

在任何 Microsoft 文档中都没有官方消息可以证实这一点。但是MFA账号+AAD令牌不兼容。

您必须使用未启用 MFA 的服务帐户(用户名/密码)。当您使用服务帐户调用 SPO Web api 以获取令牌时,这将起作用。

当您的浏览器会话处于打开状态时,令牌将在 cookie 中可用,您将能够毫无问题地访问库。这同样适用于 POSTMAN 或 SOAP-UI 测试。

因为 MFA 需要用户交互,所以这是不可能的。参考这个 github 问题:Trouble spo login with an account with multi-factor authentication

我们在 Dynamics CRM 中使用相同的方法执行“应用程序用户”概念。 Read more

【讨论】:

  • 感谢您的回答,阿伦。我觉得这是不可能的,但需要第三方的审查才能确定。
  • @AkashSingh 没关系。我记得你放了现在过期的赏金.. :)
猜你喜欢
  • 2022-12-13
  • 2014-11-16
  • 2016-09-09
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
  • 2017-08-18
  • 1970-01-01
  • 2021-07-15
相关资源
最近更新 更多