У нас возникли проблемы с проверкой подлинности учетных записей служб для делегирования всего домена.Основная проблема заключается в том, что сложно исследовать и отлаживать конфигурацию аутентификации, поэтому мы хотели бы попросить несколько советов, как отладить конфигурацию.Или, может быть, нам не хватает некоторых параметров конфигурации, и вы можете указать нам на них.
Наш процесс:
- Создание SA (= служебной учетной записи) с включенным делегированием по всему домену.
- Аутентификация SA в консоли администратора GSuite (https://support.google.com/a/answer/162106?hl=en).
- использование client_id из файла учетных данных. (Теперь электронная почта)
- Области разделяются запятыми без пробелов между ними.
- Убедитесь, что установлен флажок «Безопасность> Справочник по API> Справочник по API ->« Включить доступ к API ».
Для некоторых доменов GSuite это рабочая конфигурация, но у нас есть несколько доменов, в которых эта конфигурация приводит к:
google.auth.exceptions.RefreshError: ('unauthorized_client: клиент не авторизован для получения токенов доступа с помощью этого метода.', '{\ n"error": "unauthorized_client", \ n "error_description": "Клиент не авторизован для получения токенов доступа с помощью этого метода." \ n} ')
В нашем понимании это ошибка, говорящаяидентификатор клиентаи области не были добавлены на страницу «Управление доступом клиента API».(= Список аутентифицированных клиентов)
Мы действительно убедились, что запрашиваемый домен GSuite имеет правильный client_id и области, добавленные в список аутентифицированных клиентов +, имеет «Включенный доступ API».Мы даже создали Shared Desktop с ними и сделали это сами, чтобы быть полностью в этом уверенными.Но ошибка все еще сохраняется.
Однако мы не можем повторить эту проблему на нашем тестовом домене GSuite.Мы опробовали несколько вариантов, используя тот же SA, что и клиент:
- Олицетворенная учетная запись не имеет прав доступа к ресурсу.Этот результат приводит к:
googleapiclient.errors.HttpError: https://www.googleapis.com/admin/directory/v1/users?customer=my_customer&alt=json возвращено «Не авторизовано для доступа к этому ресурсу / api»>
Области являются лишь частичными:
google.auth.exceptions.RefreshError: ('access_denied: запрошенный клиент не авторизован.', '{\ N "error": "access_denied", \ n" error_description ":" Запрошенный клиент не авторизован. "\ n} ')
«Включенный доступ API» не проверен.
googleapiclient.errors.HttpError: https://www.googleapis.com/admin/directory/v1/users?customer=my_customer&alt=json возвращено «Домен не может использовать apis.»>
Ошибка, которую мы получаем от клиента («Клиент не авторизован для получения токенов доступа с помощью этого метода.»), Мы можем выполнить репликацию только в том случае, если client_id вообще не входит в список аутентифицированных клиентов.Но мы уверены, что проблемные домены GSuite имеют аутентификацию SA на странице «Управление клиентским доступом к API».
Мы используем следующие области: https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/gmail.readonly,https://www.googleapis.com/auth/plus.login,https://www.googleapis.com/auth/calendar.readonly,https://www.googleapis.com/auth/contacts.readonly, https://www.googleapis.com/auth/admin.directory.user.readonly
Есть ли у вас какие-либоидеи как отладить / решить эту проблему?