使用windows身份验证访问python中的sharepoint网站
我正在尝试使用使用windows身份验证的sharepoint网站。我可以使用使用windows身份验证访问python中的sharepoint网站,python,authentication,sharepoint,python-requests,Python,Authentication,Sharepoint,Python Requests,我正在尝试使用使用windows身份验证的sharepoint网站。我可以使用请求模块访问该站点,但它要求我明确说明我的windows密码 import requests from requests_ntlm import HttpNtlmAuth SITE = "https://sharepointsite.com/" PASSWORD = "pw" USERNAME = "domain\\user" response = requests.get(SITE, auth=HttpNtlmA
请求
模块访问该站点,但它要求我明确说明我的windows密码
import requests
from requests_ntlm import HttpNtlmAuth
SITE = "https://sharepointsite.com/"
PASSWORD = "pw"
USERNAME = "domain\\user"
response = requests.get(SITE, auth=HttpNtlmAuth(USERNAME,PASSWORD))
print response.status_code
Python有没有办法通过windows身份验证访问该站点,这样我就不必提供密码?这似乎可以通过
请求实现,但我不知道如何实现。如果您不想明确说明您的windows密码,可以使用该模块:
这样,您就不必以明文形式存储密码
查看请求\u ntlm
如果不向HttpNtlmAuth
提供密码或密码散列,就无法使用它。您是否考虑过将用户名和密码作为环境变量存储在运行脚本的机器上?这将避免您必须将敏感信息存储在脚本本身中。然后,只有机器管理员可以访问/修改敏感信息
通过cmd提示符
,设置所需变量(以下语法适用于Windows计算机):
为确保正确设置变量,请在cmd提示符中键入set
,查看是否列出了变量
正确设置后,使用python的os
模块访问变量并根据需要使用:
import os
import requests
from requests_ntlm import HttpNtlmAuth
username = os.environ.get('username')
password = os.environ.get('password')
SITE = "https://sharepointsite.com/"
response = requests.get(SITE, auth=HttpNtlmAuth(username, password))
重要提示:
如果关闭cmd提示符
窗口,您刚才设置的环境变量将被删除,脚本将抛出“我找不到环境变量”错误。要避免这种情况,请在脚本运行时始终保持cmd
窗口打开,或永久设置环境变量(适用于Windows计算机的说明。注意:说明涉及更改路径
环境变量,但您将了解如何创建/修改自己的变量)
注意不要覆盖现有的环境变量。首先,通过列出所有变量(在cmd提示符中键入SET
),再次检查名称是否可用
环境变量存储为字符串
接受的答案仍然使用存储的密码。通过Windows SSPI接口使用集成身份验证的选项如下:
import requests
from requests_negotiate_sspi import HttpNegotiateAuth
cert = 'path\to\certificate.cer'
response = requests.get(
r'http://mysharepoint.com/_api',
auth=HttpNegotiateAuth(),
verify=cert)
print(response.status_code)
有关更多信息,请参阅。好的-谢谢。我希望在没有我干预的情况下运行此程序,但如果我不希望密码以纯文本形式存储,则可能无法实现。可能是这样,我只是不知道如何实现。我认为下面的响应者不理解“windows身份验证”表示希望Sharepoint服务器从您当前使用的windows工作站获取身份验证。在windows系统上,环境变量不是很安全。任何人都可以查看其他任何人的环境变量,因为它们被卡在系统范围的注册表中。把密码或其他敏感信息放在那里并不是一个好主意。
import os
import requests
from requests_ntlm import HttpNtlmAuth
username = os.environ.get('username')
password = os.environ.get('password')
SITE = "https://sharepointsite.com/"
response = requests.get(SITE, auth=HttpNtlmAuth(username, password))
import requests
from requests_negotiate_sspi import HttpNegotiateAuth
cert = 'path\to\certificate.cer'
response = requests.get(
r'http://mysharepoint.com/_api',
auth=HttpNegotiateAuth(),
verify=cert)
print(response.status_code)