メインコンテンツへスキップ
Google Cloud Endpoints(GCE)は、APIの作成、維持、およびセキュリティ保護などの機能を提供するAPI管理システムです。GCEはOpenAPIを使用して、APIのエンドポイント、入出力、エラー、およびセキュリティ記述を定義します。 OpenAPI仕様の詳細については、GitHubのOpenAPI Specification(OpenAPIの仕様)リポジトリを参照してください。 このチュートリアルでは、Auth0を使用してGoogle Cloud Endpointsをセキュリティ保護する方法を説明します。

前提条件

開始する前に、GCE APIをデプロイしておく必要があります。まだAPIを作成していない場合は、Googleドキュメントにある「Cloud Endpointsのクイックスタート」を読み、作業を完了させます。 このクイックスタートでは、3文字のIATAコードから空港名を返す/airportNameという単一のエンドポイントを持つ簡単なGCE APIを作成する手順を説明しています。

Auth0でAPIを定義する

[Auth0 Dashboard] > [Applications(アプリケーション)] > [APIs]に進み、新しいAPIを作成します。
Dashboard - APIの作成 - 統合 - Googleのエンドポイント
次のステップで使用するために、(上のスクリーンショットにあるhttp://google_api[API (APIオーディエンス)] のIDをメモしておいてください。

API構成を更新する

次に、GCE API用のOpenAPI構成ファイルを更新します。クイックスタート中に作成されたサンプルAPIでは、このファイルはopenapi.yamlとなっています。

セキュリティ定義を追加する

この構成ファイルを開き、新しくsecurityDefinitionsセクションを追加します。このセクションに、以下のフィールドを持つ新しい定義(auth0_jwt)を追加します。

エンドポイントを更新する

次に、前のステップで作成したsecurityDefinitionを使用してsecurityフィールドを追加し、エンドポイントを更新します。
上の例では、securityフィールドがGCEプロキシに、/airportNameパスがauth0-jwtでセキュリティ保護されていることが期待されていることを伝えています。 OpenAPIの構成が更新されると、以下のようになります。

APIを再デプロイする

次に、GCE APIを再デプロイして、構成変更を適用します。Cloud Endpointsのクイックスタートに従った場合は、GoogleのCloud Shellに以下を入力することで再デプロイすることができます。

APIをテストする

再デプロイが完了したら、セキュリティなしでAPIを再度呼び出します。 以下のような応答が返されます。
期待どおりの結果です。 次に、Auth0 DashboardのGoogle Endpoints API定義の [Test(テスト)] ページに移動し、[Response(応答)]の下にあるアクセストークンをコピーします。 Authorization Header(認可ヘッダー)にBearer {ACCESS_TOKEN}を設定し、APIに対してGET要求を実行することで、認可されたアクセスを取得します。 これで作業完了です。