【问题标题】:Sharepy library freezes at entering username in PyCharmSharepy 库在 PyCharm 中输入用户名时冻结
【发布时间】:2022-07-07 05:21:44
【问题描述】:

我正在尝试向 SharePoint Online 进行身份验证。使用 sharepy v 2.0、pyCharm 社区版和 python 3.9。

当我跑步时:

'sharepy.connect('siteurl')'

在 PyCharm 中,当我在运行对话框中输入我的用户名后,Sharepy 将冻结。

如果我添加“用户名”参数并运行它。什么都没发生。从来没有提示我输入密码

如果我使用控制台并输入 sharepy.connect('siteurl') 然后是用户名和密码(传递这些参数也是如此)我会收到错误:

Traceback (most recent call last):
  File "C:\Users\Andrew\AppData\Local\Programs\Python\Python39\lib\site-packages\sharepy\auth\adfs.py", line 75, in _get_token
    token = root.find('.//wsse:BinarySecurityToken', ns).text
AttributeError: 'NoneType' object has no attribute 'text'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:\Users\Andrew\AppData\Local\Programs\Python\Python39\lib\code.py", line 90, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
  File "C:\Users\Andrew\AppData\Local\Programs\Python\Python39\lib\site-packages\sharepy\session.py", line 15, in connect
    return SharePointSession(site, auth=autoauth)
  File "C:\Users\Andrew\AppData\Local\Programs\Python\Python39\lib\site-packages\sharepy\session.py", line 61, in __init__
    self.auth.login(self.site)
  File "C:\Users\Andrew\AppData\Local\Programs\Python\Python39\lib\site-packages\sharepy\auth\adfs.py", line 27, in login
    self._get_token()
  File "C:\Users\Andrew\AppData\Local\Programs\Python\Python39\lib\site-packages\sharepy\auth\adfs.py", line 77, in _get_token
    raise errors.AuthError('Token request failed. Invalid server response')
sharepy.errors.AuthError: Token request failed. Invalid server response

应该注意我从 godaddy 获得 O365 并且登录页面是联合的?我认为是正确的术语。

根据 Sharepy 的新版本,这无关紧要。

有没有其他人遇到过这种冻结问题? 鉴于我目前的情况,我将如何使用 sharepy 对 sharepoint 进行身份验证?

【问题讨论】:

  • 同样的问题:s = sharepy.connect(SPUrl, username, password) 即使我通过了用户名和密码。
  • @BenceKaulics 我找到了我的问题的根源以及解决方案后另一个问题的根源。我很快就会回答我自己的问题。

标签: python sharepoint pycharm sharepoint-online sharepoint-rest-api


【解决方案1】:

这个问题的根源最终是 GoDaddy。因为我们使用 GoDaddy 作为 O365 提供者进行联合。无法使用 sharepy 正确进行身份验证。

最终的解决方案是远离 GoDaddy(感谢这个人,这很容易做到:Defederation Guide

我们无法进行身份验证的原因是我们的提供商将登录重定向到他们自己的登录站点。不幸的是,“auth”的 sharepy 内置方法不适用于 GoDaddy。

在离开 GoDaddy 之前,我测试了这个理论。通过使用新租户。我还发现,当您启用 MFA 时,密码/用户名身份验证方法不起作用。

注意:创建新租户时,他们会使用强制执行 MFA 的全面安全协议。即使 MFA 在 Azure AD > 用户部分显示为已禁用。要关闭此功能,您必须禁用“安全默认值”:portal.azure.com > Azure Active Directory > 属性 >“管理安全默认值”(在屏幕底部,它是一个小超链接)。

关于 MFA 和 sharepy 身份验证的说明。有一些方法可以启用 MFA,这些方法可以与其他 sharepoint/python 事物一起使用。我尚未使用 sharepy 测试它们,但将打开 MFA 并使用以下方法之一:

  1. 应用密码
  2. Sharepoint API 客户端密码
  3. Azure 应用注册 (Azure App Reg)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 2013-11-22
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 2018-12-14
    • 2021-03-11
    • 1970-01-01
    相关资源
    最近更新 更多