Python Forum
Authentication error when accessing Microsoft SharePoint
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Authentication error when accessing Microsoft SharePoint
#1
Hi all, I'm trying to upload a file from my computer to my Microsoft SharePoint site using a python script.
I have a SharePoint site created through free MS teams org.
But I got an "Exception error" in the "authcookie" line.

My site_name is like 'https://myorg.sharepoint.com' and base_path is like 'Myorg-channel' (ie https://myorg.sharepoint.com/sites/Myorg-channel)
And I'm using MS Team admin user email and password who has the access to this channel.
Code I tried-
import requests
from shareplum import Office365

username = '[email protected]'
password = 'adminPassword'
site_name = 'https://myorg.sharepoint.com'
base_path = 'Myorg-channel'

# Obtain auth cookie
authcookie = Office365(base_path, username=username, password=password).GetCookies()
Error message-
Error:
Exception: ('Error authenticating against Office 365. Was not able to find an error code. Here is the SOAP response from Office 365', b'<?xml version="1.0" encoding="utf-8"?><S:Envelope xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust" xmlns:S="http://www.w3.org/2003/05/soap-envelope"><S:Header><wsa:Action S:mustUnderstand="1" wsu:Id="Action">http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issue</wsa:Action><wsa:To S:mustUnderstand="1" wsu:Id="To">http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To><wsse:Security S:mustUnderstand="1"><wsu:Timestamp wsu:Id="TS" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsu:Created>2020-06-05T12:01:00.5972083Z</wsu:Created><wsu:Expires>2020-06-05T12:06:00.5972083Z</wsu:Expires></wsu:Timestamp></wsse:Security></S:Header><S:Body xmlns:S="http://www.w3.org/2003/05/soap-envelope"><wst:RequestSecurityTokenResponse xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"><wsp:AppliesTo><wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:Address>Myorg-channel</wsa:Address></wsa:EndpointReference></wsp:AppliesTo><psf:pp xmlns:psf="http://schemas.microsoft.com/Passport/SoapServices/SOAPFault"><psf:reqstatus>0x8004882c</psf:reqstatus><psf:errorstatus>0x80045b00</psf:errorstatus></psf:pp></wst:RequestSecurityTokenResponse></S:Body></S:Envelope>')
Appreciate it if someone can help to rectify this error.
Reply
#2
I am not sure if this will help, but my dealings with sharepoint has meant it has used NTLM as an authorisation protocol for which there is a python package on PyPi, you can also see if the connection is correct via postman package prior to attempting to replicate in python.
Regards
-------- *
“Outside of a dog, a book is man's best friend. Inside of a dog it's too dark to read.”
Reply
#3
I tried requests_ntlm package, but it didn't work.

import requests
from requests_ntlm import HttpNtlmAuth

requests.get("https://myorg.sharepoint.com", auth=HttpNtlmAuth("myorg"+"\\"+'[email protected]','adminPassword'))
Error:
<Response [403]>
Also, I tried using Sharepoint package, but not getting the access to my SharePoint site

from sharepoint import SharePointSite, basic_auth_opener

server_url = "https://myorg.sharepoint.com/"
site_url = server_url + "sites/Myorg-channel/"


opener = basic_auth_opener(server_url, '[email protected]','adminPassword')

site = SharePointSite(site_url, opener)

for sp_list in site.lists:
    print(sp_list.id)
Error:
HTTPError: Forbidden
Reply
#4
Hi

OK, then i would suggest before you carry on with python you install postman - link is here - its basically a "REST" client if you haven't used but there is the ability in there to use the NTLM protocol so at least with your user / domain / password combo you can see if you can get it to work form there, this would at least prove it is able to accept you requests. NTLM tbh is pants! it takes 3 request response combinations to authenticate
1. request to ntlm (sharepoint in this case)
2. if authenticated then an authentication "token" is returned in the http headers
3. request is sent with this token and whatever the request body is asking sharepoint to do - fetch docs etc


You can set up the same in SOAPUI and see the aforementoned transations, but I prefer Postman
Once you have established that working then apply the similar to python, especially if the packages you are using are either complex or you can't ascertain what they are doing, it might give some pointers as to where the error is.

If you need additional help with the postman set up am happy to help
Regards
-------- *
“Outside of a dog, a book is man's best friend. Inside of a dog it's too dark to read.”
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  SharePoint Online/365 authentication using .cer file mart79 0 460 Nov-08-2020, 03:31 PM
Last Post: mart79
  List index out of range error while accessing 2 lists in python K11 2 739 Sep-29-2020, 05:24 AM
Last Post: K11
  Creating Excel files compatible with microsoft access vkallavi 0 554 Sep-17-2020, 06:57 PM
Last Post: vkallavi
  error : "Microsoft Visual C++ 14.0 is required. " Even its installed Barak 3 1,096 Sep-01-2020, 12:41 PM
Last Post: snippsat
  unable to generate authentication key lokamaba 0 698 May-14-2020, 12:33 PM
Last Post: lokamaba
  need some help to do Vault authentication using python dspy9 0 556 Apr-15-2020, 07:22 PM
Last Post: dspy9
  Trying to install Pyquil, says I need Microsoft Visual C++ Groucho 10 2,036 Feb-18-2020, 05:46 PM
Last Post: snippsat
  2 Microsoft word Docx content comparison vintysaw 2 2,307 Oct-17-2019, 10:41 AM
Last Post: vintysaw
  user authentication in python saurabhc 1 975 Sep-15-2019, 11:59 AM
Last Post: jefsummers
  authentication required error with urlopen Ranjirock 2 1,087 Sep-11-2019, 01:01 PM
Last Post: Ranjirock

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020