Google App EngineでGoogle Apps用OpenID

sdk1.3.4でのOpenID対応を実際に試してみました。
コードはこちら(Javaです)
http://code.google.com/p/appengine-openid-test/


以下の記事を参考にさせてもらいました。
@hidemotoNakada さん
http://d.hatena.ne.jp/hidemon/20100521/1274472966

@int128 さん
http://d.hatena.ne.jp/int128/20100525/1274809086


ただし、お二方と違って自分は
web.xmlのsecurity-constraint
を利用しませんでした。

リダイレクト先が気にくわなかったので^^)
代わりにOpenIDFilterを自前で実装しています。

AppEngine でのOpenIDの特徴

sdk1.3.4で追加された機能では、OpenIDのややこしいところが、
AppEngine内でProxy的に実装されているので、
自前アプリからそこにリダイレクトする事で実現されます。
(認証後も同様にProxy的なものを経由するようです。)

userService.createLoginURL()の引数

Google Appsの場合、federatedIdentityにはドメイン名を指定します。
上記Proxyに、
httpから始まったら外部のサービス
そうでなければGoogle Apps
というロジックが入っているのだと思います。