Google App Engine でデータ登録などに使用する管理者用ページを作る
環境
- Google App Engine Standard
- Cloud Tools for Eclipse
- Java 8
web.xmlの設定
webapp/WEB-INF/web.xml に以下の項目を追記する
<security-constraint>
<web-resource-collection>
<web-resource-name>admin</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
url-patternで管理者アカウントが必要なページを指定。
この場合は /admin/ 以下のページ全てが対象
role-nameを*にするとGoogleアカウントを持っている人すべてがログインできる。
管理者の設定
管理者の設定はGoogle Cloud Console の「IAMと管理 -> IAM」から設定
projectを作成したオーナーはApp Engineの管理者権限がデフォルトで割り当てられているので追加の設定は無し
別のアカウントログインできるようにするには「追加」から以下の図のように「App Engine -> App Engine 管理者」で別アカウントのGmailのアドレスを入力して権限を与えること
アクセス
App Engine にデプロイしてから対応するページにアクセスすると以下の図のようなログイン画面が表示される
管理者アカウントだとhtml、jspページが表示される。
許可のないアカウントだと 403 Forbidden 「Error: Forbidden」が表示される
参考
web.xml による認証の設定、管理者の指定 - Google App Engine 入門