Google アカウントでユーザーを認証する
始める前に
このページでは、App Engine スタンダード環境またはフレキシブル環境のアプリケーションをデプロイし、それを Identity-Aware Proxy(IAP)で保護する手順について説明します。このクイックスタートには、ログインしているユーザーの名前を確認する App Engine スタンダード環境ウェブアプリのサンプルコードが含まれています。ここでは、Cloud Shell を使用してサンプル アプリケーションのクローンを作成し、デプロイします。このクイックスタートを使用すると、ご自身の App Engine スタンダード環境または App Engine フレキシブル環境アプリで IAP を有効にできます。
コンテンツ配信ネットワーク(CDN)からリソースを提供する予定の場合、ベスト プラクティス ガイドの重要な情報をご覧ください。
1 つの App Engine アプリケーションが複数のサービスで構成されている場合、サービスごとに異なる IAP 権限を構成できます。たとえば、一部のサービスのみを一般公開しながら、その他のサービスを保護された状態にすることができます。
このタスクを Cloud Console で直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。
以降のセクションでは、[ガイドを表示] をクリックした場合と同じ手順について説明します。
始める前に
- Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
Cloud Shell の起動
- コンソール ウィンドウの上部にある [Cloud Shell を有効にする] をクリックします。
コンソールの下部の新しいフレーム内で Cloud Shell セッションが開き、コマンドライン プロンプトが表示されます。シェル セッションが初期化されるまで、数秒かかる場合があります。
- Cloud Shell に次のように入力して、プロジェクトのプロジェクト ID を表示します。
gcloud projects list
- 次のコマンドを実行してデフォルト プロジェクトを設定します。
YOUR-PROJECT-ID
はこのクイックスタートで使用するプロジェクト ID です。gcloud config set project YOUR-PROJECT-ID
サンプルコードの取得
Cloud Shell に次のコマンドを入力して、サンプル アプリケーションを取得します。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
サンプルコードが入っているディレクトリに移動します。
cd python-docs-samples/appengine/standard_python3/hello_world/
アプリケーションのデプロイ
gcloud
を使用してアプリケーションを App Engine にデプロイします。gcloud app deploy
-
target url:
はhttps://YOUR_PROJECT_ID.appspot.com
の形式で表示されます。アプリケーションにアクセスするには、ウェブブラウザでその URL に移動します。
IAP の有効化
プロジェクトの選択
-
[Identity-Aware Proxy] ページに移動します。
[Identity-Aware Proxy] ページに移動 - アクティブなプロジェクトがない場合は、IAP で保護するプロジェクトを選択するように指示されます。サンプル アプリケーションをデプロイしたプロジェクトを選択します。
OAuth 同意画面の構成
プロジェクトの OAuth 同意画面を構成していないと、画面を構成するように指示されます。この画面では、メールアドレスとプロダクト名が必要です。
-
OAuth 同意画面に移動します。
同意画面を構成 - [サポートメール] で、一般公開される連絡先として表示するメールアドレスを選択します。メールアドレスは、現在ログインしているユーザー アカウント、または現在ログインしているユーザーが属する Google グループに属している必要があります。
- [アプリケーション名] に、アプリケーションの表示名を入力します。
- 任意の詳細を追加します。
- [保存] をクリックします。
プロダクト名やメールアドレスなど、OAuth 同意画面の情報を後で変更する場合は、上記の手順を繰り返して同意画面を構成します。
IAP アクセス権の設定
- [Identity-Aware Proxy] ページに移動します。
[Identity-Aware Proxy] ページに移動 - 左側のボックスをオンにして、変更するリソースを選択します。右側のパネルで [メンバーを追加] をクリックします。
- [メンバーを追加] ダイアログで、プロジェクトの IAP で保護されたウェブアプリ ユーザー役割を付与するグループまたは個人のメールアドレスを追加します。
メンバーにすることができるアカウントの種類は以下のとおりです。
- Google アカウント: user@gmail.com
- Google グループ: admins@googlegroups.com
- サービス アカウント: server@example.gserviceaccount.com
- G Suite のドメイン: example.com
追加する Google アカウントは、自分がアクセスできるものにしてください。
(兄弟関係にあるリソースが制限されている状態のままで)リソースを公開するには、IAP で保護されたウェブアプリ ユーザー役割を「allUsers」または「allAuthenticatedUsers」に付与します。この 2 つの違いについては、公開アクセスのセクションをご覧ください。
- メンバーの追加が完了したら、[追加] をクリックします。
IAP の有効化
-
[Identity-Aware Proxy] ページの [HTTPS Resources] で、アクセスを制限する App Engine アプリを見つけます。[公開] 列には、アプリの URL が表示されます。アプリの IAP を有効にするには、
- IAP を有効にするには、
appengine.applications.update
、clientauthconfig.clients.create
、clientauthconfig.clients.getWithSecret
権限が必要です。上記の権限は、プロジェクト編集者などの役割によって付与されます。詳細については、IAP で保護されたリソースへのアクセスを管理するをご覧ください。
- IAP を有効にするには、
- IAP によってリソースを保護することを確認するには、表示された [IAP の有効化] ウィンドウで [有効にする] をクリックします。IAP を有効にすると、アプリケーションへのすべての接続でログイン認証情報が要求されます。
アクセスをテストする
IAP で保護されたウェブアプリ ユーザーについての上述のロールを使用して、IAP に追加した Google アカウントからアプリの URL にアクセスします。アプリに無制限にアクセスできるはずです。
Chrome のシークレット ウィンドウを使用してアプリにアクセスし、プロンプトが表示されたらログインします。IAP で保護されたウェブアプリ ユーザーのロールによる認証を持たないアカウントでアプリにアクセスしようとすると、アクセスできないことを示すメッセージが表示されます。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。
次のステップ
- ユーザーの ID の取得方法を確認し、独自の App Engine アプリを開発する。