Не удается прочитать пользователя с протоколом «OAuth 2.0 для серверных приложений» с помощью API администратора SDK - PullRequest
0 голосов
/ 03 октября 2019

Мы пытаемся внедрить OAuth 2.0 для серверных приложений. Последним мотивом является вызов Google API для чтения пользователей GSuite.

Документация Google для OAuth 2.0 для серверных приложений: .. - https://developers.google.com/identity/protocols/OAuth2ServiceAccount

API для чтения списка пользователей GSuite - https://developers.google.com/admin-sdk/directory/v1/reference/groups/list

В соответствии с документацией мы можем использовать «Клиентскую библиотеку API Google» или «HTTP / REST», однако наше требование - использовать HTTP / REST. .

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

  1. Создание учетной записи службы.
  2. Делегирование всей учетной записи домена учетной записи службы.
  3. Авторизованный вызов API с HTTP / REST.

Мы успешно можем получить «токен доступа» через POSTMAN после шага 3, описанного выше.

Запрос почтальона на получение access_token выполнен успешно, как показано ниже.

HTTP POST request :https://oauth2.googleapis.com/token

Body parameters: 
grant_type:urn:ietf:params:oauth:grant-type:jwt-bearer
assertion:The JWT, including signature. 

successful response :
{
"access_token": "ya29.c.EmmOB0vXrihl6nkZNr2gS1nKc4LypBlg3I1bZL2BUvPfZ53rs91fSA2TXR25TvtrZb551sdg1WwHnxg5VYWVC-SEveeypZebfwvhdGr9ECXCeuwAmfyV8TDUIN5nsqbZ7IxVyzgkew",
"expires_in": 3600,
"token_type": "Bearer"
}

Однако получаются ошибки / исключенияПри «вызове API Google»

Ошибки при вызове API с access_token, который мы получили.

1.Get Request via POSTMAN : Read all GSuite users  
https://www.googleapis.com/admin/directory/v1/users/?customer=my_customer
Header:Bearer ya29.c.EmmOB0vXrihl6nkZNr2gS1nKc4LypBlg3I1bZL2BUvPfZ53rs91fSA2TXR25TvtrZb551s dg1WwHnxg5VYWCVC-SEveeypZebfwvhdGr9ECXCeuwAmfyV8TDUIN5nsqbZ7IxVyzgkewfZ0

error response :
{
 "error": {
    "errors": [
        {
            "domain": "global",
            "reason": "backendError",
            "message": "Service unavailable. Please try again"
        }
    ],
    "code": 503,
    "message": "Service unavailable. Please try again"
 }
}

2.Получить запрос через POSTMAN: прочитать Группы GSuite

https://www.googleapis.com/admin/directory/v1/groups/? 
customer=my_customer
Header : Bearer ya29.c.EmmOB0v-Xrihl6nkZNr2gS1nKc4LypBlg3I1bZL2BUvPfZ53rs91fSA2TXR25TvtrZb551sdg1WwHnxg5VYWCVC-SEveeypZebfwvhdGr9ECXCeuwAmfyV8TDUIN5nsqbZ7IxVyzgkewfZ0

error response :
{
  "error": {
    "errors": [
        {
            "domain": "global",
            "reason": "notFound",
            "message": "Domain not found."
        }
    ],
    "code": 404,
    "message": "Domain not found."
 }
}

1 Ответ

0 голосов
/ 03 октября 2019

Похоже, вам не нужно передавать параметр запроса customer. Попробуйте вот так

https://www.googleapis.com/admin/directory/v1/groups/my_customer

подробнее об этом здесь

и https://www.googleapis.com/admin/directory/v1/users/my_customer

подробнее об этом здесь

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