やりたいこと
社内向けサイトの構築にあたってGoogle認証を使ってアクセス制御をしたいと思っていました。
上記のアクセス制御を実現できるIdentity-Aware Proxy(Cloud IAP)というサービスがあるのを知ったので検証してみました。
Gmailの独自ドメイン(Gsuite)を使用していてドメインでサイト(アプリ)のアクセス許可をしたい!という場合の手順になります。
事前作業
GCPのアカウントを取得する
大前提ですね。GAEを使用しますので、クレジットカードの登録が必要です。
Cloud SDKをインストールする
アプリをデプロイする際に必要ですのでインストールしてください。
このページからダウンロードできます。
GAEにアプリをデプロイしておく
アプリの作成方法がわからない方は、Google公式のドキュメントがありますので、こちらを参照してください。
手順
GCPコンソールにログインしてApp Engineのダッシュボードからアプリケーションを作成する
無料枠を利用する場合はus-のリージョンを選択することに注意してください。
Identity-Aware Proxyの設定を行う
OAuthの同意画面を設定していない場合、この段階で同意画面を作成するように促されるので、適切に設定してください。
Identity-Aware Proxyの設定画面を表示し、アクセス制限の対象とするアプリケーションを選択してください。
その後、右側のカラムに表示されている「メンバーの追加」ボタンを押します。
アクセスを許可したいドメインやGoogleグループ、アドレスを入力します。
役割は「Cloud IAP > IAP-secured Web app User」を選択してください。
設定完了後、IAPを有効にしてアクセス制御が動いていることを確認してください。
補足
コンテキストルート直下のindex.htmlにはアクセス制御がかからない?
IAPの設定反映に時間がかかるのか、設定そのものが悪いのかわかりませんが、コンテキストルート直下のindex.htmlには認証なしでアクセスできたことがありました…
対策としてindex.htmlはリダイレクトするだけのページにして、下位ディレクトリのhtmlに飛ばすようにしました。