gcloud
を使用せずにGoogle Cloudサービスアカウントの認証ベアラートークンを取得することはできますか?
つまり、HTTPリクエスト(おそらく、JSONキーファイルによって何らかの方法で署名されたもの)を作成して、
gcloud auth application-default print-access-token
この要求は、gcloud
をインストールしたくない場合があり、これを提供する可能性のある内部サーバーメタデータにアクセスできない場合に、自分のサーバーで行われます(Compute Engineの場合など) 。
このようなものを提供するoauthエンドポイントはありますか?
または、gcloud
を使用して長寿命トークンを生成する方法はありますか?
私はGoogle Cloudエコシステムを初めて使用するので、無知と用語を言い訳します...
これはまさにあなたが探しているものだと思います:
https://developers.google.com/identity/protocols/OAuth2#serviceaccount
正直なところ、あなたが達成しようとしていたことは正しいとは思いません。
gcloud auth application-default print-access-token
探していたものを実行することを意図していないトークンを取得します。
「このコマンドは、通常はサービスアカウントを使用するが、ユーザー資格情報を提供しやすいローカル開発環境でコードを実行する必要があるコードを開発する場合に役立ちます。」
これにより、このソリューションの実装についてもう少し説明する必要があります。 https://developers.google.com/identity/protocols/OAuth2ServiceAccount
2番目の質問「gcloudで長寿命トークンを生成する方法はありますか?」ではありません。ただし、更新トークンを使用して、新しいアクセストークンを生成できます。この質問の最初の回答を確認してください。
OAuth2およびGoogle API:アクセストークンの有効期限?
また、認証メカニズムとして使用できるpythonライブラリの例を次に示します。