目的
作成したGoogle App Engineのアプリケーション全体にアクセス制限を掛ける。環境
appengine-sdk 1.4.2インストール済みGAE+JRuby+Ruby on Railsという環境で検証しました。
概要
Google App Engineでのアクセス制限にはアクセス制限範囲の指定と認証方法の指定に分かれます。アクセス制限範囲は作成するアプリケーション側で指定し、認証方法は実行基盤であるGoogle App Engineで指定します。これにより認証方法に縛られないアプリケーションの構築が可能になります。アクセス制限範囲の指定
アクセス制限をかける範囲はアプリケーション側のweb.xmlで行います。アクセス制限を設定するのはこのファイルのsecurity-constraint要素です。詳細はweb.xmlとsecurity-constraintで検索して下さい(^^私の環境(JRuby on Rails)では下記の様に設定されていました。
プロジェクト/WEB-INF/web.xml(一部抜粋)
これを下記の様にアプリケーション全体に変更します。
/remote_api/*
admin
/contacts/*
*
アクセス制限範囲の設定はこれだけです。
/*
*
後はappcfgにてupdateを行えばアプリケーション側は完了です。
認証方法の指定(アプリケーション作成時)
認証方法の指定はGoogle app engine側で行います。Google app engine
認証方法の指定はアプリケーション作成時とアプリケーションの管理画面で指定できます。
アプリケーション作成時の認証方法の選択肢は下記の通りです。
Authentication Options (Advanced):
- Open to all Google Accounts users (default)
- Restricted to the following Google Apps domain
- (Experimental) Open to all users with an OpenID Provider
認証方法方法の指定(アプリケーション作成後)
アプリケーション作成後は下記の通りに設定しますが、上に書いた通り変更可能なものには制限があります。アプリケーションを選択し、左側のメニューにある[Administration]-[Application Settings]から設定します。アプリケーション作成時に[Open to all Google Accounts users]、[Open to all users with an OpenID Provider]を選んだ場合は双方向に変更可能です。Authentication Options:
- Google Accounts API
- (Experimental) Federated Login
[Restricted to the following Google Apps domain]を選んでいる場合は変更する事が出来ません。
Authentication Options:
- Google Apps
認証失敗時の画面
認証をGoogle Appsに設定していてGoogle Appsのメンバー以外がアクセスした場合認証をGoogle Accounts APIに設定していてGoogleにログインしていない場合
モザイク部分はアプリケーションのタイトルです。