«Авторизация учетной записи службы без OAuth», можем ли мы получить файл из Google Cloud Storage с помощью этого подхода? - PullRequest
1 голос
/ 03 августа 2020

Согласно этой документации Дополнение: Авторизация учетной записи службы без OAuth , там указано:

Если API, который вы хотите вызвать, имеет определение службы, опубликованное в API Google Репозиторий GitHub , вы можете выполнять авторизованные вызовы API, используя JWT вместо токена доступа

Я вижу Google Cloud Storage , опубликованный в этом репозитории Github, но я не могу показаться чтобы иметь возможность получить файл в Google Cloud Storage с подходом в документации. В соответствии с заголовком JWT и примером полезной нагрузки, показанным на шаге 3 документации, я внес следующие изменения:

  • Изменение kid с abcdef1234567890 на мою учетную запись службы private_key_id
  • Измените iss и sub на мою учетную запись службы client_email
  • Замените aud на https://storage.googleapis.com/
  • Замените iat и exp на сейчас и сейчас + 1 час

Я использую подписанный JWT в качестве токена-носителя, пытаясь получить файл из http://storage.googleapis.com/<bucket>/path/file, но продолжаю получать этот ответ

<?xml version='1.0' encoding='UTF-8'?><Error><Code>AuthenticationRequired</Code><Message>Authentication required.</Message></Error>

Действительно ли мы можем использовать этот подход с Google Cloud Storage? Я делаю что-то не так?

Обратите внимание, что я могу получить доступ к файлу с помощью oauth access_token, следуя другому подходу, описанному на той же странице документации , но я предпочитаю не делать запрос на получение access_token прежде, чем делать запрос на получение файла.

...