Ich versuche derzeit, über Python und die Requests-Bibliothek auf die Sharepoint-API zuzugreifen. Nach der Überprüfung der Anfrage über Firebug stellte ich fest, dass es die NTLM-Authentifizierung verwendet, also habe ich das requests_ntlm-Plugin installiert, bekomme aber immer noch einen 401-Fehler.Was genau sollte die Domäne für die NTLM-Authentifizierung sein, wenn die Python-Requests-Bibliothek verwendet wird?
ich auf diesen Beitrag kam, How to access a sharepoint site via the REST API in Python?, wo die Lösung NTLM Auth zu verwenden, ist dies:
requests.get("http://sharepoint-site.com", auth=HttpNtlmAuth('DOMAIN\\USERNAME','PASSWORD'))
ich nur verwirrt bin, was Domain verweisen soll. Ich nahm an, es wäre nur meine site_url, aber das funktioniert immer noch nicht. Ich habe versucht, es mit zwei Schrägstrichen zu formatieren, wie im Thread gezeigt, aber auch als ein Backslash wie hier referenziert: https://curl.haxx.se/mail/lib-2005-11/0086.html.
Wenn NTLM verwenden, können Sie Domäne durch sie dem Benutzer Namen vorangestellt wird und das Abtrennen des Domain Name und mit einem vorderen (/) oder Backslash (\) gesetzt. So: "domain/user: password" oder "domain \ user: password". Einige HTTP-Server (unter Windows) unterstützen diesen Stil sogar für die Standardauthentifizierung.
import requests
from requests_ntlm import HttpNtlmAuth
username = "user"
password = "pass"
site_url = "https://sharepoint.site.com/foo/"
r = requests.get(site_url, auth=HttpNtlmAuth(site_url + username, password)
print(r.status_code)
ich es einfach interessant finden, dass es eine explizite Beispiel-URL in der Request.get gibt, sondern gibt nur die willkürliche „DOMAIN“ in dem Auth-Parameter. Das gleiche gilt für die Dokumentation für die Anfrage-NTLM-Bibliothek hier zu sehen: https://github.com/requests/requests-ntlm:
requests.get("http://ntlm_protected_site.com",auth=HttpNtlmAuth('domain\\username','password'))
Ich vermute, ich habe nur die Syntax für die Benutzername vermasselt, aber ich bin mir nicht ganz sicher, dass das Problem.