Почтальон и сервисный аккаунт Google, как авторизоваться? - PullRequest
0 голосов
/ 17 марта 2019

я прочитал эту документацию

https://cloud.google.com/docs/authentication/getting-started?hl=ru#auth-cloud-implicit-java

https://cloud.google.com/storage/docs/reference/libraries?hl=ru

https://cloud.google.com/docs/authentication/production?hl=ru#obtaining_and_providing_service_account_credentials_manually

https://developers.google.com/identity/protocols/OAuth2ServiceAccount#callinganapi

(я уже получаю учетные данные .json учетной записи службы)

И не могу сообразить, на какой адрес идет запрос с учетными данными для получения токена авторизации или ключа API

, там только библиотеки.так учетные данные как-то авторизуются, но как с HTTPS?

1 Ответ

0 голосов
/ 20 марта 2019

найдено.

подписал его с RS256 на JWT.io с параметрами

HEADER:

{"alg": "RS256", "typ": "JWT"," kid ":" your_private_key_id "}

PAYLOAD:

{" iss ":" your_client_email_of_service_account "," sub ":" your_client_email_of_service_account "," aud ":" 10111012 * "scope": "https://www.googleapis.com/auth/devstorage.read_only"," iat ": current_unix_time," exp ": current_unix_time + 3600}

VERIFY SIGNATURE

your_private_key в последнем поле (без \ n)

получил закодированный ключ

, а затем

POST / oauth2 / v4 / token HTTP / 1.1

Хост: www.googleapis.com

Content-Type: application / x-www-form-urlencoded

Cache-Control: без кэширования

grant_type = urn% 3Aietf% 3Aparams% 3Aoauth% 3Agrant-type% 3Ajwt-Носитель и утверждение = ENCODED_KEY_FROM_JWT.IO

, и я получил ответ

{

"access_token": "ya21.c.ElrSBodwuWANeh7Q0-zlXpOxqm9-uEszPElsY2tvoG5aPxRgOkasN5G2sMgj3iosPVbRYk1wXw_DcBnm2FtuNBlZpv_wCC0YS5pWMykR8Ouf5CZg-8OK842rvfk",

"expires_in": 3600,

"token_type": "Bearer"

}

также не забудьте дать привилегии вашей учетной записи службы для чтенияв хранилище

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