Получить токен аутентификации учетной записи службы без gcloud?
можно ли получить токен носителя авторизации для учетной записи Google Cloud service без использования gcloud
?
то есть я хотел бы сделать HTTP-запрос (предположительно, подписанный каким-то образом моим файлом ключа JSON), который предоставил бы мне эквивалент
gcloud auth application-default print-access-token
этот запрос будет сделан на моем собственном сервере, где я, возможно, не захочу устанавливать gcloud
и где у меня нет доступа к каким-либо внутренним метаданным сервера, которые могли бы предоставить это (например, как случай с вычислительным двигателем).
есть ли какая-то конечная точка oauth, которая предоставляет что-то вроде этого?
альтернативно, есть ли способ генерировать долгоживущие токены с gcloud
?
Я новичок в облачной экосистеме Google, поэтому извините мое невежество и терминологию...
2 ответов
Я думаю, что это именно то, что вы ищете:
https://developers.google.com/identity/protocols/OAuth2#serviceaccount
честно говоря, я не думаю, что то, чего вы пытались достичь, было правильным, бегом
gcloud auth application-default print-access-token
вы получаете токен, который не намерен делать то, что вы искали:
" эта команда полезна при разработке кода, который обычно использует учетную запись службы, но должен код в локальной среде разработки, где проще предоставить учетные данные пользователя."
Это должно помочь вам немного больше в реализации этого решения: https://developers.google.com/identity/protocols/OAuth2ServiceAccount
для вашего второго вопроса: "есть ли способ генерировать долгоживущие токены с помощью gcloud?"нет нет. Однако для создания новых маркеров доступа можно использовать токен обновления. Проверьте первый ответ на этот вопрос:
OAuth2 и Google API: время истечения срока действия маркера доступа?
а также Вот пример библиотеки python, которую вы можете использовать в качестве аутентификации механизм: