Google admin sdk 使用服务帐户的gcp admin sdk发现内置云功能
到目前为止,我能够使用部署在服务帐户中的云功能中的以下代码访问用户,该帐户具有域范围的授权。但我使用的是凭证文件中的service_account.Credentials.from_service_account_文件,但我不想硬编码凭证,这不是正确的方法。请让我知道,如果有一种方式使用而不通过凭证 如果我在构建中不使用凭据,那么我将得到403Google admin sdk 使用服务帐户的gcp admin sdk发现内置云功能,google-admin-sdk,google-directory-api,Google Admin Sdk,Google Directory Api,到目前为止,我能够使用部署在服务帐户中的云功能中的以下代码访问用户,该帐户具有域范围的授权。但我使用的是凭证文件中的service_account.Credentials.from_service_account_文件,但我不想硬编码凭证,这不是正确的方法。请让我知道,如果有一种方式使用而不通过凭证 如果我在构建中不使用凭据,那么我将得到403 import googleapiclient.discovery from google.oauth2 import service_account
import googleapiclient.discovery
from google.oauth2 import service_account
SCOPES = ['https://www.googleapis.com/auth/admin.directory.user']
SERVICE_ACCOUNT_FILE = 'service-account-bc07yg1386.json'
credentials_org = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES, subject="admin@domain.com")
service = googleapiclient.discovery.build('admin', 'directory_v1', credentials=credentials_org)
results = service.users().get(userKey=user_email).execute()
使用服务帐户时,需要使用凭据来验证请求 此外,您可以使用以下代码实例化Admin SDK目录服务对象,代码取自: 来自GoogleAppClient.discovery导入生成的
从oauth2client.service\u帐户导入ServiceAccountCredentials
服务\帐户\电子邮件='@developer.gserviceaccount.com'
服务\帐户\ PKCS12\文件\路径='/PATH/to/-privatekey.p12'
def创建目录服务(用户电子邮件):
凭据=ServiceAccountCredentials.from_p12_密钥文件(
服务、帐户、电子邮件、,
服务\帐户\ PKCS12\文件\路径,
“不是秘密”,
作用域=['https://www.googleapis.com/auth/admin.directory.user'])
凭据=凭据。创建\u委托(用户\u电子邮件)
返回生成('admin','directory_v1',credentials=credentials)
注
Python版本使用P12格式的密钥文件,当转到相应的Google Cloud项目时,选择Admin SDK,然后选择凭据,可以生成该文件:
参考文献