Доступ к API-интерфейсу Google Adminsdk - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь получить список chrome устройств, зарегистрированных с указанным идентификатором клиента.

Я выполнил следующие шаги.

  1. Включен API-интерфейс каталога администратора Google
  2. Создана учетная запись службы и загружен файл jwt. json для подключения.
  3. Включено преобладание делегирования G-Suite для всего домена.
  4. Зарегистрирован этот идентификатор клиента как авторизованный клиент API через Google Admin (управление доступом клиента API)

    Идентификатор клиента: наша клиентская область API. Просмотр и управление метаданными Chrome устройств на ОС https://www.googleapis.com/auth/admin.directory.device.chromeos Просмотр Chrome Метаданные устройств ОС https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly Далее я использовал свой Node-модуль для генерации доступа JWT

Токен успешно создан.

{"access_token":"ya29.c.KpEB****K*********lufaGlx5k********hvAdADxBhOA****8R3rnTPKKnVb97sdPFG66wHy4FPrnx6KskafKXrBBfEgILdDelP-n5irpKm5h8y8oBWHO*******Xg","token_type":"Bearer","expiry_date":1587150649000,"refresh_token":"jwt-placeholder"}

Теперь я пытаюсь использовать этот токен на предъявителя для доступа к следующему API

https://www.googleapis.com/admin/directory/v1/customer/ourcustomerid/devices/chromeos

Это всегда выдает следующую ошибку.

{
  "error": {
    "errors": [{
      "domain": "global",
      "reason": "forbidden",
      "message": "Not Authorized to access this resource/api"
    }],

    "code": 403,
    "message": "Not Authorized to access this resource/api"
  }
}

Не уверен, в чем проблема.

1 Ответ

1 голос
/ 18 апреля 2020

Работает после добавления адреса электронной почты для олицетворенных пользователей ... Первоначально это был

const jwtAuth = new google.auth.JWT(
            quickstart.client_email,
            null,
            quickstart.private_key,
            [
                'https://www.googleapis.com/auth/admin.directory.device.chromeos',
                'https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly'
            ]
);

Затем я добавил тему в качестве адреса электронной почты для олицетворенных пользователей.

const jwtAuth = new google.auth.JWT(
            quickstart.client_email,
            null,
            quickstart.private_key,
            [
                'https://www.googleapis.com/auth/admin.directory.device.chromeos',
                'https://www.googleapis.com/auth/admin.directory.device.chromeos.readonly'
            ],
            'email address of the impersonated user',
);
...