gpt4 book ai didi

google-cloud-platform - 尝试使用 Python 访问目录 api 时,服务帐户无权访问此资源/api

转载 作者:行者123 更新时间:2023-12-04 02:39:05 24 4
gpt4 key购买 nike

我们使用 Python 从特定 G Suite 托管域中获取所有用户,但在完成以下 tutorial 后并授予服务帐户所需的所有访问权限,以下代码段仍会生成“未授权访问此资源/api:

import json
from google.oauth2 import service_account
from googleapiclient.discovery import build

SCOPES = ['https://www.googleapis.com/auth/admin.directory.user.readonly']

credentials = service_account.Credentials.from_service_account_file("/path/to/file.json", scopes=SCOPES)

service = build('admin', 'directory_v1', credentials=credentials)

最佳答案

Google documentation 中有一个(非常模糊的)线索解决办法:

Note: Only users with access to the Admin APIs can access the Admin SDK Directory API, therefore your service account needs to impersonate one of those users to access the Admin SDK Directory API. Additionally, the user must have logged in at least once and accepted the G Suite Terms of Service.



在 Python 中实现模拟的方法是在使用 OAuth2 库进行身份验证时发送“主题”。主题应该是有权访问 Admin API 的用户(他不必是管理员,用户管理角色应该足够了,至少对于我的需要)。

一个工作片段:
import json
from google.oauth2 import service_account
from googleapiclient.discovery import build

SCOPES = ['https://www.googleapis.com/auth/admin.directory.user.readonly']

credentials = service_account.Credentials.from_service_account_file("/path/to/file.json", scopes=SCOPES, subject="admin@yourdomain.com")

关于google-cloud-platform - 尝试使用 Python 访问目录 api 时,服务帐户无权访问此资源/api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60262432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com