Какой URL-адрес для аутентификации пользователей Gsuite с помощью curl? - PullRequest
0 голосов
/ 16 ноября 2018

Я хочу аутентифицировать пользователей Gsuite, чтобы они могли создавать группы из приложения моей компании, я должен сделать это с помощью CURL, по какому URL-адресу я должен отправить запрос на публикацию?

Например, если я хочу авторизовать пользователя в Google plus, я бы набрал этот URL

CURLOPT_URL => "https://www.googleapis.com/plus/v1/people/me?access_token=" . $access_token,

Что такое URL для Gsuite?

1 Ответ

0 голосов
/ 18 ноября 2018

Если ваша цель - получить информацию о пользователе в G Suite:

CURLOPT_URL => "https://www.googleapis.com/admin/directory/v1/users/john@example.com?access_token=" . $access_token;

Примечание. Пожалуйста, обратитесь к API Справочника, чтобы узнать, как выполняется делегирование.Это обязательно.Токены обычного доступа не будут работать без включенного Domain-wide Delegation.

Для ваших учетных данных (токена доступа) понадобятся правильные области:

https://www.googleapis.com/auth/admin.directory.group
https://www.googleapis.com/auth/admin.directory.user

Для ваших учетных данных потребуется правильное делегирование.

Пример Python:

SCOPES = [
        "https://www.googleapis.com/auth/admin.directory.group",
        "https://www.googleapis.com/auth/admin.directory.user"
        ]

key_file = 'google-directory-api-service-account.json'

SERVICE_ACCOUNT_EMAIL = 'directory@development-123456.iam.gserviceaccount.com'
ADMIN_EMAIL = 'gsuite-admin@example.com'

credentials = service_account.Credentials.from_service_account_file(
                        key_file,
                        scopes = SCOPES)

credentials = credentials.with_subject(ADMIN_EMAIL)

Делегирование по всему домену

В нижней части этого ответа приведены распространенные ошибки, которые я видел при настройке доступа к G Suite.

Если ваша цель - получить информацию, хранящуюся в токене Google OAuth 2.0:

Эти URL-адреса ожидают токен доступа Google OAuth 2.0.alt=json указывает возвращаемый JSON.

Примеры, которые можно проверить в командной строке:

curl -k "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ACCESS_TOKEN"

curl -k "https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=ACCESS_TOKEN"

Также существует конечная точка v3 для:

curl -k "https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=ACCESS_TOKEN"

Типичные проблемы при настройке доступа API к G Suite:

  • Доступ не настроен.API каталога администратора ранее не использовался в проекте 123456789012 или он отключен.

Перейдите в консоль Google Cloud.Включите API для Admin SDK.

  • Не авторизован для доступа к этому ресурсу / api.

Вы неправильно настроили делегирование для всего домена.

  • Клиент не авторизован для получения токенов доступа с помощью этого метода

Вы попытались настроить делегирование по всему домену для существующей учетной записи службы.Вам необходимо создать новую учетную запись службы, которой не назначены роли IAM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...