前提条件
開始する前に、GCE APIをデプロイしておく必要があります。まだAPIを作成していない場合は、Googleドキュメントにある「Cloud Endpointsのクイックスタート」を読み、作業を完了させます。 このクイックスタートでは、3文字のIATAコードから空港名を返す/airportName
という単一のエンドポイントを持つ簡単なGCE APIを作成する手順を説明しています。
Auth0でAPIを定義する
[Auth0 Dashboard] > [Applications(アプリケーション)] > [APIs]に進み、新しいAPIを作成します。
http://google_api
) [API (APIオーディエンス)] のIDをメモしておいてください。
API構成を更新する
次に、GCE API用のOpenAPI構成ファイルを更新します。クイックスタート中に作成されたサンプルAPIでは、このファイルはopenapi.yaml
となっています。
セキュリティ定義を追加する
この構成ファイルを開き、新しくsecurityDefinitions
セクションを追加します。このセクションに、以下のフィールドを持つ新しい定義(auth0_jwt
)を追加します。
フィールド | 説明 |
---|---|
authorizationUrl | 認可URLで、"https://{yourDomain}/authorize" に設定する必要があります。 |
flow | OAuth2のセキュリティスキームで使用されるフローです。有効な値は"implicit" 、"password" 、"application" 、"accessCode" です。 |
type | セキュリティスキームの種類です。有効な値は"basic" 、"apiKey" 、"oauth2" です。 |
x-google-issuer | 資格情報の発行者で、"https://{yourDomain}/" に設定する必要があります。 |
x-google-jwks_uri | 署名の検証に使用される公開鍵のURIです。これは"https://{yourDomain}/.well-known/jwks.json" に指定します。 |
x-google-audiences | APIの識別子です。この値が、Auth0 DashboardでAPIに定義したものと一致することを確認してください。 |
エンドポイントを更新する
次に、前のステップで作成したsecurityDefinition
を使用してsecurity
フィールドを追加し、エンドポイントを更新します。
security
フィールドがGCEプロキシに、/airportName
パスがauth0-jwt
でセキュリティ保護されていることが期待されていることを伝えています。
OpenAPIの構成が更新されると、以下のようになります。
APIを再デプロイする
次に、GCE APIを再デプロイして、構成変更を適用します。Cloud Endpointsのクイックスタートに従った場合は、GoogleのCloud Shellに以下を入力することで再デプロイすることができます。APIをテストする
再デプロイが完了したら、セキュリティなしでAPIを再度呼び出します。Bearer {ACCESS_TOKEN}
を設定し、APIに対してGET
要求を実行することで、認可されたアクセスを取得します。