Microsoft Graph service与ms accoun一起失败

2024-09-30 00:39:49 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的公司,我需要在OneDrive上上传Excel文件。在

我们有365个业务计划,每个员工都有自己的365帐户,但我只想为合并的文件维护一个存储库,并避免在所有人之间共享同一个repos帐户,因此我更喜欢通过客户端凭据流实现“无需用户”的“访问。在

我遇到的第一个问题是授权:当我试图通过/adminconsent端点授权应用程序时,它失败了,因为我的客户帐户不是管理员:-(
所以我尝试使用另一个帐户,一个简单的Microsoft帐户(为此,我在应用程序门户中对该应用程序进行了新注册),但当我尝试授权该应用程序时,收到以下错误:

"AADSTS50020: We are unable to issue tokens from this API version for a Microsoft account. Please contact the application vendor as they need to use version 2.0 of the protocol to support this."

怎么了?在

另一种选择是,我想继续使用365个企业员工帐户,用一个技术帐户创建一个文件夹并共享它,但是当使用带有员工帐户的Graph Explorer并发出请求时

/me/drive/sharedWithMe

我只收到共享文件夹,但没有内容


这里的代码(我使用的是requests_oauthlibPython模块):

首先,我初始化类对象

^{pr2}$

然后我请求authorization_url

auth_base = 'https://login.microsoftonline.com/common/adminconsent' 
self.authorization_url, state = self.oauth.authorization_url(
    auth_base,
    state="12345")
return self.authorization_url

以及对代币的要求

return self.oauth.fetch_token(
    token_url=https://login.microsoftonline.com/common/oauth2/v2.0/token',
    client_id=config.CLIENT_ID,
    scope="https://graph.microsoft.com/.default",
    client_secret=config.CLIENT_SECRET,
    authorization_response='https://me.local/authorized'
)

Tags: thetohttpsselfcomtoken应用程序url
1条回答
网友
1楼 · 发布于 2024-09-30 00:39:49

您需要是租户管理员才能同意仅限应用程序访问(在这种情况下,您只使用客户端id和密码)。但是,您可以使用替代流,如Resource Owner Credentials GrantOn-Behalf-Of Grant,这要求您拥有具有相关权限的用户的凭据。在

你也可以在我的帖子中看到这些流程: Getting Access Token for Microsoft Graph Using OAuth REST API。在

关于“版本2.0”的消息-这可能是由Microsoft OAuth API的版本1和版本2之间的混淆引起的。版本1仅适用于组织用户(位于azure active directory中的用户),版本2也支持Microsoft帐户。您可以在here中阅读有关这两个版本之间差异的更多信息。确保在整个过程中使用其中一个版本(创建应用程序、分配和同意权限以及请求访问令牌)。两个版本之间的混合可能不起作用。在

相关问题 更多 >

    热门问题