Я написал приложение PHP, которое пытается создать пользователя в моем каталоге Google. Я не использую библиотеки Google. Мне удалось отправить запросы к Android Enterprise API. Я могу регистрировать и отменять регистрацию учетных записей Enterprise Service Account в моем MSA. Поэтому я предполагаю, что мой код для JWT и запросов работает.
Я создал учетную запись службы, включил «делегирование на уровне домена» и добавил следующее разрешение «https://www.googleapis.com/auth/admin.directory.user, https://www.googleapis.com/auth/admin.directory.group "в мой клиент API в окнах" Управление доступом клиента API ". Моя учетная запись службы имеет статусную роль «Редактор» в окнах «Разрешения для проекта».
Итак, сначала мой скрипт получает токен Bearer с сервера Google, для этого я создаю JWT и шифрую его своим закрытым ключом. Токен содержит следующие поля
"iss" => [email protected]
"scope" => "https://www.googleapis.com/auth/admin.directory.user, https://www.googleapis.com/auth/admin.directory.group"
"aud" => "https://www.googleapis.com/oauth2/v4/token",
"exp" => timestamp+3000,
"iat" => timestamp
Когда я делаю этот запрос, я получаю токен-носитель, но когда я использую этот токен для выполнения запроса на вставку, я всегда получаю сообщение «Не авторизован для доступа к этому ресурсу / api» с HTTP 403. Когда я добавляю поле «sub» в мой JWT и укажите адрес электронной почты администратора проекта «[email protected]». Я даже не могу получить токен-носитель, тогда я получаю ошибку 401 со следующим сообщением «Неавторизованный клиент или область в запросе».
После этого я попробовал что-то "легкое", я просто хотел получить список всех пользователей в моем каталоге. Но сервер Google просто возвращает ошибку "неверный запрос". У меня такая же ошибка с API Explorer, который находится на странице API. Может API сломан? По крайней мере, API Explorer должен работать. https://developers.google.com/admin-sdk/directory/v1/reference/users/list
У вас есть идеи, почему я не могу создавать пользователей с помощью своей учетной записи службы?
(Мне пришлось вставить несколько пробелов в области и URL-адреса, потому что мне не разрешено размещать более двух ссылок)
Привет Филип