認証方法の選択

Cloud Endpoints Frameworks は、さまざまなアプリケーションや利用方法に適した複数の認証方法をサポートしています。Endpoints Frameworks は、受信リクエストを API バックエンドに渡す前に、デコレータで指定された認証方法を使用してリクエストを検証します。このドキュメントでは、サポートされる各認証方法の概要と使用例について説明します。

API キー

API キーは、割り当て、課金、モニタリングのために Google Cloud Platform(GCP)プロジェクトを識別する暗号化された単純な文字列です。デベロッパーが Google Cloud Platform Console でプロジェクトの API キーを生成し、API 呼び出しのすべてに、そのキーをクエリ パラメータとして埋め込みます。

デコレータで API キーを必須として指定した場合、Endpoints Frameworks はその API キーを使用して、API キーが関連付けられている GCP プロジェクトを検索します。API キーが GCP プロジェクトまたは API が有効になっている他の GCP プロジェクトで生成されたものでない場合、リクエストは拒否されます。詳しくは、API キーで API アクセスを制限するをご覧ください。

認証情報は有効期間の短いトークンや署名付きリクエストを使用し、リクエスト ヘッダーで送信されますが、それとは異なり、クライアントは API キーをクエリ パラメータとして送信します。クエリ パラメータが HTTPS で暗号化されるとしても、API キーは安全ではありません。たとえば、各リクエストの URL 全体がクリアテキストでサーバーログに保存されている可能性があります。API 呼び出しにユーザーデータが含まれる場合は、セキュリティ上の理由により、API キーを単独で使用しないでください。API キーは、以下で説明するいずれかの認証方法とともに使用できます。

API キーの保護や API キーに対する制限の追加に関するベスト プラクティスについては、API キーの使用をご覧ください。「API キーの使用」は Google API を使用するクライアントを対象としていますが、これらのベスト プラクティスは、Endpoints Frameworks を使用して作成した API にも適用されます。

使用例

割り当てなどの Endpoints 機能を使用する場合には、クライアント アプリケーションに関連付けられている GCP プロジェクトを Endpoints が識別できるよう、各リクエストで API キーを渡す必要があります。

API キーの詳細については、API キーを使用する理由と条件をご覧ください。

Firebase Authentication

Firebase Authentication には、モバイルアプリやウェブアプリでユーザーを認証するためのバックエンド サービス、SDK、ライブラリが用意されています。Firebase Authentication は、Google、Facebook、Twitter、GitHub などのさまざまな認証情報を使用してユーザーを認証します。

Firebase のクライアント ライブラリは、ユーザーが正常にログインした後、秘密鍵を使用して JSON ウェブトークン(JWT)に署名します。Endpoints Frameworks は、JWT が Firebase によって署名されていること、Firebase アプリケーションを識別する JWT 内の「iss」(issuer)クレームがデコレータの issuer 設定と一致することを検証します。

使用例

Firebase 認証は他の Firebase サービスと緊密に統合されているため、Firebase を使用するモバイルアプリやウェブアプリに適しています。Firebase Auth による認証をご覧ください。

Auth0

Auth0 は、ID プロバイダ、プラットフォーム、スタック、デバイスに依存することなく、アプリと API に対して認証と承認を行うサービスです。

Auth0 では、多数のプロバイダと Security Assertion Markup Language の仕様がサポートされています。また、ウェブアプリやモバイルアプリでユーザーを認証するための、バックエンド サービス、SDK、ユーザー インターフェースのライブラリが用意されています。Auth0 は、さまざまなサードパーティ ID プロバイダと統合できます。また、カスタム ユーザー アカウントを管理することもできます。

Auth0 に用意されているクライアント ライブラリは、ユーザーがログインした後、JWT を生成してそれに署名します。Endpoints Frameworks は、JWT が Auth0 によって署名されていること、Auth0 アプリケーションを識別する JWT 内の「iss」クレームがデコレータの issuer 設定と一致することを検証します。

使用例

Auth0 は、コンシューマ向けおよびエンタープライズ向けのウェブアプリやモバイルアプリに適しています。詳細については、Auth0 による認証をご覧ください。

Google ID トークン認証

Google ID トークンを使用した認証では、ユーザーは Google アカウントでログインすることによって認証されます。認証が済むと、ユーザーはすべての Google サービスにアクセスできます。Google ID トークンを使用して、Google API や、Endpoints Frameworks を使用して実装した API を呼び出すことができます。Endpoints Frameworks は、公開鍵を使用して Google ID トークンを検証し、JWT 内の「iss」クレームが https://accounts.google.com または accounts.google.com であることを確認します。

使用例

Google ID トークンを使用した認証は、すべてのユーザーが Google アカウントを所有している場合に適しています。たとえば、API が G Suite アプリケーション(Google ドライブ コンパニオンなど)に関連付けられている場合は、Google ID トークン認証を選択できます。Google ID トークン認証では、ユーザーは Google アカウントでログインすることによって認証されます。認証が済むと、ユーザーはすべての Google サービスにアクセスできます。

詳細については、Google ID トークンによる認証をご覧ください。

JWT とサービス アカウント

JSON ウェブトークン(JWT)は一般的に、接続されているアプリケーションの間でクレームやアサーションを共有するために使用されます。サービス アカウントを表す JWT は、以下のいずれかによって署名されます。

  • サービス アカウント。

  • Google の承認サービス(Google 承認サービスによって署名された JWT は、Google ID トークンと呼ばれます)。

サービス アカウントによって署名された JWT を使用してリクエストを認証するほうが実装は簡単ですが、多数のサービス アカウントがある場合や、他者が所有しているサービス アカウントから認証情報を受け入れる場合は、Google ID トークンを使用することをおすすめします。Google ID トークンを使用する場合、https://accounts.google.com または accounts.google.com をすべてのサービス アカウントの発行者としてホワイトリストに登録するだけで済みます。

使用例

JWT とサービス アカウントはマイクロサービスに適しています。詳細については、サービス アカウントによる認証をご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

App Engine 用 Cloud Endpoints Frameworks
ご不明な点がありましたら、Google のサポートページをご覧ください。