Я пишу код для перемещения файлов в OneDrive (учетная запись предприятия).Мое приложение проходит проверку подлинности в Azure AD и должно иметь правильный доступ (Files.ReadWrite.All в MS Graph, Sites.ReadWrite.All в Office365 SPO и User.Read в Azure AD).
Код для получениямаркер приложения работает нормально:
import msal
client_id = 'dc185bb*************6bcda94'
authority_host_uri = 'https://login.microsoftonline.com'
discovery_uri = 'https://api.office.com/discovery/'
client_secret = 'VsY7vV**************ToiA0='
tenant = '4a6*********************65079'
authority_uri = authority_host_uri + '/' + tenant
scopes=['https://graph.microsoft.com/.default']
app = msal.ConfidentialClientApplication(
client_id=client_id, authority=authority_uri,
client_credential=client_secret)
result = app.acquire_token_for_client(scopes=scopes)
print(result)
Однако, когда я пытаюсь использовать этот токен с библиотекой OneDrive SDK, кажется, что я не могу передать его через:
def __init__(self, http_provider, client_id=None, scopes=None, access_token=None, session_type=None, loop=None,
auth_server_url=None, auth_token_url=None):
"""Initialize the authentication provider for authenticating
requests sent to OneDrive
Args:
http_provider (:class:`HttpProviderBase<onedrivesdk.http_provider_base>`):
The HTTP provider to use for all auth requests
client_id (str): Defaults to None, the client id for your
application
scopes (list of str): Defaults to None, the scopes
that are required for your application
access_token (str): Defaults to None. Not used in this implementation.
выше взято из auth_provider.py части onedrivesdk, и ясно указывает, что access_token не используется в реализации.
Есть ли другой способ обойти это?Или другие библиотеки для использования?