GoogleアカウントのOpenID連携ログインに比べて、やることがいくつかあります。
- 1. ドメインを取得する
- 2. サーバを用意して、http://example.com/でアクセス可能にしておく。
- 3. Google Appsに登録する(無料版で(for Businessじゃなくても)OK)
- 4. OpenID を使用した連携ログインを有効にする
- Google Appsの管理コンソール → 高度なツール → OpenID を使用した連携ログインでできますが、デフォルトONなので、不要かも知れません。
- 5. http://example.com/openidファイルの配置と、Apacheの設定
要はこの5の手順が重要で、
java - Spring Security 3.0 Google Apps open id sign in using OpenID4Java - Stack Overflow
に、書いてあるように、http://example.com/openidのファイル(またはスクリプト)を用意しておかないと、
org.openid4java.discovery.yadis.YadisException: 0x706: GET failed on http://domain.com/openid?id=... : 404:Not Found.
というエラーが出ます。
で、その対処として、パラメータリストを書き変えたけど、エラーが出たよとか、
verifyの代わりに、verifyNonseを使ったらうまく行くらしい?とか、
あとは、Google Apps Account as OpenID
に、http://example.com/openidっていうPHPスクリプト書いたら動いたぜとか、
色々あったんですが、最終的には上のサイトの設定で動きました。
ソース
githubにあげました。
taka2/OpenIDTest - GitHub
余談
前回、自社ドメインでやろうとしたら、
見事にOpenID を使用した連携ログインが無効になっていたのですが、
ノリで有効にしてもらえる社風でもないので、
自分でドメイン取ってやることにしました。
あんまりお金をかけたくなかったので、
8月一杯のキャンペーンで、.infoドメインが99円/年!
につられてみました。
.infoとかでGoogle Apps登録できるか不安でしたが、
特に問題なく登録できています。
あと、ついでに、Amazon EC2で割り当てされた、
Elastic IPを、取得したドメインから正引きできるようにしました。
快適かも知れません。