Ich versuche, eine Datei herunterzuladen, auf die (über einen Browser) unter dieser URL zugegriffen werden kann:
https://test.sharepoint.com/sites/team/teamdocuments/subfolder/document.docx
Ich verwende ein ClientRequest-Objekt mit dem folgenden Code:
url = "https://test.sharepoint.com/sites/team"
username="[email protected]"
password="pass"
ctxAuth = AuthenticationContext(url)
if ctxAuth.acquire_token_for_user(username, password):
print 'authentication successful, proceeding...'
request = ClientRequest(ctxAuth)
requestUrl="{0}/_api/web/getfilebyserverrelativeurl('team documents/subfolder/document.docx')"
options=RequestOptions(requestUrl.format(url))
data = request.execute_query_direct(options)
Beim Ausführen erhalte ich die folgende Spur:
$ python test.py
No handlers could be found for logger "client.office365.runtime.auth.saml_token_provider.SamlTokenProvider.process_service_token_response"
authentication successful, proceeding...
Traceback (most recent call last):
File "test.py", line 14, in <module>
data = request.execute_query_direct(options)
File "/usr/lib/python2.7/site-packages/client/office365/runtime/client_request.py", line 77, in execute_query_direct
self.context.authenticate_request(request_options)
File "/usr/lib/python2.7/site-packages/client/office365/runtime/auth/authentication_context.py", line 20, in authenticate_request
request_options.set_header('Cookie', self.provider.get_authentication_cookie())
File "/usr/lib/python2.7/site-packages/client/office365/runtime/auth/saml_token_provider.py", line 65, in get_authentication_cookie
return 'FedAuth=' + self.FedAuth + '; rtFa=' + self.rtFa
TypeError: cannot concatenate 'str' and 'NoneType' objects
Stimmt etwas nicht mit der Verwendung des Moduls?
Ich hatte ein ähnliches Problem, da unsere SharePoint-Instanz hinter einem Proxy ausgeführt wird. Ich musste die SamlTokenProvider
Unterklasse bilden, um die Anmelde-URL ( self.sts
) und die Cookie-Namen zu überschreiben. Ich denke, das Problem ist, dass der Code während der Initialisierung das Ergebnis von acquire_authentication_cookie
nicht überprüft. Wenn die Authentifizierung also fehlschlägt, hören Sie nichts davon, bis die Cookies verwendet werden.
Ich bin auf das gleiche Problem gestoßen. Es scheint, als würden Authentifizierungsfehler nicht von Ausnahmen behandelt. Es sprudelt nur, wenn Cookies abgefragt werden. Überprüfen Sie Ihre Zugangsdaten
Gleicher Fehler. Anmeldeinformationen überprüft, aber das Problem besteht weiterhin. Irgendwelche anderen Gedanken? Vielen Dank!
Am Ende habe ich
Danke werde es prüfen.
Hallo, ich habe das gleiche Problem, aber in meinem Fall denke ich, dass es daran liegt, dass ich Sharepoint mit der FormAuthentication-Methode konfiguriert habe. Es funktioniert auf keinen Fall, bis der richtige Token-Anbieter implementiert ist
Ich stoße auch auf dieses Problem, aber nur, wenn ich ein Outlook.com-Konto verwende. Ich hoffe, jemand kann erklären, was hinter den Kulissen vor sich geht und vielleicht eine Lösung anbieten. Hier eine kurze Erklärung:
1) Unsere SharePoint-Site befindet sich in der Cloud (https://mn365.sharepoint.com)
2) Wenn ich die Verbindung zur Site mit meinen State of Minnesota-Anmeldeinformationen herstelle, wird die Verbindung problemlos hergestellt.
3) Da ich aber keine eigenen Zugangsdaten in meine Bewerbung einbetten möchte, habe ich ein "Dienstkonto" nach dem Muster "
Was wäre der Unterschied bei der Authentifizierung zwischen der Verwendung einer Outlook.com-Adresse und einer von meiner Organisation ausgegebenen (in diesem Fall Vorname. [email protected]?
Selbes Problem hier. Wir verwenden AD FS für die Authentifizierung. Bisher habe ich keine Möglichkeit gefunden, Informationen von unserem Sharepoint-Online-Server abzurufen. Ich habe viele Bibliotheken ausprobiert, aber nichts hat für mich funktioniert.
Ich hatte den gleichen Fehler, weil Sharepoint zur Authentifizierung an das lokale STS/ADFS umleitete.
Wir haben einen neuen O365-Benutzer direkt in O365 erstellt, sodass die Umleitung zum lokalen STS/ADFS nicht verwendet wird. Dies hat den Fehler behoben
Ich bin zu Sharepy gewechselt, das ootb läuft und meine Bedingungen abdeckt
Hier gilt das gleiche:
Für den Logger "office365.runtime.auth.saml_token_provider.SamlTokenProvider._process_service_token_response" konnten keine Handler gefunden werden.
Glück von anderen?
Vielleicht hilft folgendes zur weiteren Eingrenzung.
Ich kann mich erfolgreich an der allgemeinen Sharepoint-URL authentifizieren, aber nicht an einer URL, die auf einen bestimmten Teams-Kanal verweist. Der folgende Code funktioniert einwandfrei:
url = "https://COMPANYNAME.sharepoint.com/"
username=raw_input("username: ")
password=raw_input("password: ")
ctx_auth = AuthenticationContext(url=url)
if ctx_auth.acquire_token_for_user(username=username, password=password):
Aber wenn ich die URL ersetze durch:
url = "https://COMPANYNAME.sharepoint.com/sites/TEAMSCHANNEL/"
dann bekomme ich folgenden Fehler::
No handlers could be found for logger "office365.runtime.auth.saml_token_provider.SamlTokenProvider.acquire_authentication_cookie"
Jeder Workaround ist willkommen - in meinem Browser kann ich beide gut sehen.
Wir haben eine Problemumgehung für den oben genannten Anwendungsfall gefunden. Verwenden Sie einfach die Basis-URL, um AuthenticationContext
. Neue ClientContext
Objekte können mit verschiedenen URLs erstellt werden.
base_url = "https://COMPANYNAME.sharepoint.com/"
ctx_auth = AuthenticationContext(url=base_url)
if not ctx_auth.acquire_token_for_user(username=user, password=password):
sys.exit('Error in getting token - quitting')
url = base_url + "sites/TEAMSCHANNEL/"
ctx = ClientContext(url, ctx_auth)
..
..
Hallo Leute!
Seit dem Zeitpunkt, an dem dieses Problem gemeldet wurde, wurden bis jetzt folgende Verbesserungen/Bugfixes in Bezug auf die _Unterstützung für SAML-basierte Verbundauthentifizierung mit SharePoint Online vorgenommen_:
Der angegebene Fehler sollte also nicht mehr auftreten, stellen Sie einfach sicher, dass Sie die _neueste_ Version ( 2.1.10.1
oder höher) verwenden.
Hilfreichster Kommentar
Ich hatte ein ähnliches Problem, da unsere SharePoint-Instanz hinter einem Proxy ausgeführt wird. Ich musste die
SamlTokenProvider
Unterklasse bilden, um die Anmelde-URL (self.sts
) und die Cookie-Namen zu überschreiben. Ich denke, das Problem ist, dass der Code während der Initialisierung das Ergebnis vonacquire_authentication_cookie
nicht überprüft. Wenn die Authentifizierung also fehlschlägt, hören Sie nichts davon, bis die Cookies verwendet werden.