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

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

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

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

Какой URL для Gsuite?

1 ответ

Решение

Если ваша цель - получить информацию о пользователе в 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.

Другие вопросы по тегам