Oauth2 for SharePoint 365 REST

后端 未结 4 1312
鱼传尺愫
鱼传尺愫 2021-02-02 01:44

I\'m trying to connect to Sharepoint Online (Sharepoint 365?) content using OAuth2 and the REST API. I need to do this from Python as it is an addition to an existing applicati

4条回答
  •  花落未央
    2021-02-02 02:21

    I know this is old by had to deal with similar problem and have 2.5 solutions.

    This solution is specifically for the federated logins.

    Simple hacky solutions works like a magic for files :)

    1. On Windows 10 - the silliest solution:

      • First login to your sharepoint with Internet Exploer/Edge. Must be IE/Edge.
      • Then in Start-> Run dialog or any Windows Explorer address bar do this: \\@SSL\rest\of_the\path. Note @SSL after host name.
      • Make sure to replace all the forward slashes with backslashes.
      • This makes sure that your login credentials are captured by the system.
      • Then navigate to "This PC", menu "Computer->Map Network Drive" and paste either that same path from above or your normal URL https:///rest/of_the/path into Folder text field of Map Network Drive.
      • Now you have Sharepoint folder mapped as regular network drive X:\! Which allows you to treat is just as normal file system folder from any program or programming language.
      • This solution uses WebDav WebClient and by default you will hit a 50MB limit! Worry not follow these steps to release yourself from the shackles of the silly limit.
    2. Simple Hacky.

      • Open your browsers and open the 'Developer Tools'.
      • Navigate to 'Network' tab of 'Developer Tools'
      • With Network tab open login to your sharepoint site.
      • Click on any of the requests and you shall see that every single Request Header has a Cookie with FedAuth=some_very_long_base64_encoded_xml_struct;rtFa=something_else_long.
      • Basically you need these two cookies FedAuth and rtFa.
      • Now with every GET POST (curl, wget etc) request to the Sharepoint just add a new header Cookie with the value FedAuth=;rtFa=.
    3. Programmatic-hacky (example in python on windows), essentially #2 but cookie manipulation all done programmatically.

      • We shall steal the cookie directly from the kid... I mean from the Chrome browser.
      • Navigate to your Sharepoint With the chrome browser and perform all the necessary login actions.
      • Steal the cookie gist. Plagiarized from here.
      • Use the cookie gist.
      • REST of Sharepoint REST API wisdom here and ref here.
    4. Finally open a beer enjoy your day.

提交回复
热议问题