のGoogle Cloud Platformの認証ガイドはここに決定的なリソースです: https://cloud.google.com/docs/authentication
Googleのさまざまな認証メカニズムが異なる目的を果たすため、私はあなたがについて尋ねたもの、そしてあなたがより明確になるはずのための正しい選択を説明しましょう。
APIキーを使用すると、API呼び出しを行うプロジェクトを識別することができます。彼らはクォータを使ってプロジェクトに代わって行われたリクエストを制限するのに適しています。 APIキーは、一般にクライアントアプリケーションやウェブページに埋め込まれているため、一般に安全とはみなされません。このため、APIキーは認証も許可もしません。匿名ユーザーが呼び出しを行えないようにする必要がある場合は、APIキーでは十分ではありません。
次は、OAuthです。 OAuthは、Googleアカウントを持つ実際の人間のユーザーを認証されたAPI呼び出しに変える方法です。 gcloud
などのアプリをローカルで実行しているときや、人間にGoogle Cloudを使用する権限を人に依頼する必要があるWebサイトを構築している場合など、自分自身で何かをしたいときに使用します代わりに。このプロセスには、クライアントIDと秘密が含まれ、リフレッシュトークンとアクセストークンで終わります。いくつかのフレーバーがあります。
最後に、サービスアカウント。あなたのアプリが、特定の人間ではなく、どこかで動いている場合は、アプリケーションのサービスアカウントを作成してモデルをモデル化する必要があります。サービスアカウントは、パスワードを持たない特別なユーザーです。代わりに、彼らは彼ら自身として認証することができるようにアプリで展開することができる秘密鍵ファイルを持っています。これは、アプリが特定のユーザー(たとえば、gcloud
やgsutil
などのクラウド管理プログラム)のために実行されなければ、通常は必要なものです。
Google Cloud Java libraryには「Application Default Credentials」という機能があり、アプリケーションがApp EngineまたはGCEで実行されている場合にauthを設定する必要はありません。ローカルマシン上で自分でコードを実行し、gcloud
をインストールする場合は、authも処理できます。
ここGCSバケットを作成し、Compute Engineのプログラムのan exampleだ:それはすべての認証については何も言っていませんか
Storage storage = StorageOptions.getDefaultInstance().getService();
Bucket bucket = storage.create(BucketInfo.of("myBucketName"));
お知らせ。アプリケーションのデフォルトの資格情報によって、適切なサービスアカウントまたはユーザーが選択されます。それはあなたがそのような環境にいることを前提としています。秘密鍵.jsonファイルをお持ちの場合は、代わりに次のようにしてください:
これだけです!
すぐに返信いただきありがとうございました。 GoogleCredentialsクラスはサービスアカウントキーを使用してユーザーを認証しますので、OAuthクライアントIDとAPIキーの使用方法を示すAPIスニペットを提供してください。これらの3つすべてを使用して認証を実装する必要があるためです。 googleクラウドクライアントライブラリAPIの例を提供してください –
OAuthの様々な味があります。私はあなたのアプリがうまく答えるためにしたいことをもっと知る必要があります。 Google OAuthの一般的なガイドはhttps://developers.google.com/identity/protocols/OAuth2、Javaライブラリとサンプルはこちら:https://developers.google.com/api-client-library/java/ google-oauth-java-client/oauth2 –
seckがGCSからオブジェクトをフェッチしてローカルで処理するための簡単なアプリケーションを開発していますが、OAuthクライアントのように認証に使用する認証情報タイプを使用するオプションを指定する必要があります。 IDまたはサービスアカウントのキーなどです。私は認証にサービスアカウントキーのJSONファイルを使用でき、OAuthクライアントIDから取得したクライアントの秘密のJSONファイルを使用したいと考えています。 「googleクラウドクライアントライブラリAPIの例」をお勧めします。 –