Мы пытаемся внедрить 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. .
Мы успешно выполнили следующие шаги.
- Создание учетной записи службы.
- Делегирование всей учетной записи домена учетной записи службы.
- Авторизованный вызов 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."
}
}