Учетная запись службы не авторизована для доступа к этому ресурсу / api при попытке доступа к каталогу api с помощью Python - PullRequest
1 голос
/ 17 февраля 2020

Мы используем Python, чтобы получить всех пользователей из определенного управляемого домена G Suite, но после выполнения следующего учебного пособия и предоставления всего доступа, необходимого для учетной записи службы, следующий фрагмент по-прежнему выдает «Не Авторизован для доступа к этому ресурсу / 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)

1 Ответ

3 голосов
/ 17 февраля 2020

Существует (очень расплывчатая) подсказка в документации Google к решению:

Примечание. Только пользователи, имеющие доступ к API-интерфейсам администратора, могут получить доступ к API-интерфейсу администратора SDK. поэтому для доступа к API-интерфейсу администратора SDK ваша учетная запись службы должна выдавать себя за одного из этих пользователей. Кроме того, пользователь должен хотя бы один раз войти в систему и принять Условия использования G Suite.

Чтобы добиться олицетворения в Python, отправьте «субъект» при аутентификации с помощью OAuth2. библиотека. Субъектом должен быть пользователь с доступом к 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...