ユーザーまたはアプリケーションが App Engine Admin API を使用できるようにするには、Google Cloud のプロジェクト オーナーは、プロジェクト内で API を有効にしてから、ユーザーまたはアプリケーションが HTTP リクエストの認証に使用できる認証情報を作成します。
たとえば、Admin API に HTTP リクエストを送信できるようにするには、オーナーが最初に Google Cloud プロジェクトを作成し、そのプロジェクトの認証情報を作成する必要があります。オーナーが初期プロジェクトを設定し構成すると、そのプロジェクトを管理目的に使用して、他のリソースをプログラムによって作成し管理できるようになります。たとえば、次のことができます。
- 他の Google Cloud プロジェクトを作成する。
- 新しく作成したすべてのプロジェクトで App Engine アプリケーションを作成する。
- 新しく作成した App Engine アプリケーションにアプリのバージョンをデプロイする。
- デプロイしたすべてのバージョンでリソースを管理する。
始める前に
次のタスクを完了するには、アクセスするユーザーとアプリケーション用に Admin API を有効にする Google Cloud プロジェクトのオーナーである必要があります。
プロジェクトの構成と認証情報の作成
Google Cloud プロジェクトを構成して認証情報を作成するには:
Google Cloud プロジェクトで App Engine Admin API と Cloud Storage API の両方を有効にします。
ユーザーとアプリケーションがプロジェクト内の Admin API へのアクセスに使用する認証情報を作成します。
認証情報を作成する場合は、Google Cloud Platform Auth ガイドを確認し、アプリの要件に適合する OAuth 2.0 の承認フローを選択します。
例
認証フローを示すために、以下の例ではクライアント側 OAuth 2.0 フローを使用してトークンを取得しています。このトークンは、cURL コマンドライン ツールを使用して Admin API へのリクエストを承認し、プロジェクト [MY_PROJECT_ID]
の App Engine アプリケーションにサンプルアプリをデプロイするために使用されます。
認証の例
この例の暗黙的な認可フローと呼ばれるクライアント側の承認フローでは、ユーザーに代わって Admin API にアクセスすることをクライアント アプリケーションを承認することがユーザーに要求されます。返されたアクセス トークンは、約 60 分間、または一般的にユーザーがアプリケーションでアクティブである間は有効です。
HTTP リクエスト
次の URL では、Google Cloud Console で作成されたクライアント ID を使用してアクセス トークンをリクエストし、アプリがトークンを受信する承認済み URI にユーザーをリダイレクトします。
https://accounts.google.com/o/oauth2/v2/auth?
response_type=token&
client_id=[MY_CLIENT_ID].apps.googleusercontent.com&
scope=https://www.googleapis.com/auth/cloud-platform&
redirect_uri=[MY_REDIRECT_URI]
ここで
[MY_CLIENT_ID]
は、Google Cloud コンソール内のいずれかの認証情報から取得したクライアント ID です。[MY_REDIRECT_URI]
は、Google Cloud コンソール内の同じ認証情報から取得した、対応する承認済みリダイレクト URI です。リダイレクト URI が指定されていない場合は、信頼できる URI(例:https://www.google.com
)を指定する必要があります。リダイレクト URI は、HTTP レスポンスの送信先を定義します。本番環境では、OAuth 2.0 サーバーからのレスポンスを処理するアプリケーションの認証エンドポイントを指定する必要があります。詳しくは、ウェブサーバー アプリケーションに OAuth 2.0 を使用するをご覧ください。
HTTP レスポンス
アプリケーションが URL を使用して承認をリクエストすると、以下のようにレスポンスでアクセス トークンが返されます。
https://www.google.com/#access_token=[MY_ACCESS_TOKEN]&
token_type=Bearer&
expires_in=3600
[MY_ACCESS_TOKEN]
は、リクエストに応じて返されたアクセス トークンです。
アクセス トークンを取得したら、トークンを使用して Admin API にアクセスできます。たとえば、アプリケーションの認証エンドポイントは、レスポンスからアクセス トークンをプログラムで抽出できます。cURL コマンドで手動でトークンを使用する方法については、次のコマンドをご覧ください。
cURL を使用した HTTP リクエストの例
次の cURL コマンドは、[MY_ACCESS_TOKEN]
アクセス トークンを使用して HTTP POST
リクエストを作成する方法を示しています。この cURL コマンドは、app.json
構成ファイルで定義されたリソースをプロジェクト MY_PROJECT_ID
のアプリケーションにある default
サービスの v1
バージョンにデプロイします。
curl -X POST -T "app.json" -H "Content-Type: application/json" -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions