Google Identity Toolkit

HTML/JavaScriptとサーバサイドJavaでログイン機能実装のため
Google Identity Toolkitを使用することにしました。

こんなやつです
f:id:yustam:20120716134155j:image

右側は通常のログインフォームで左側は選択したIDP(Identity Providers)へ認証を行う機能を持っています

HTML/JavaScriptを使用したクライアントサイドの実装はとても簡単で
Google Accountsにてスクリプトを自動で作成してくれます。
手順はUsing the GITkit API directly - Google Identity Toolkit — Google Developersを参考に

できたらHTMLにコピペするだけでOK

  • -

次にJavaで認証などを実際に行うサーバサイドの処理ですが
Google Developersの仕様を読んで作ろうとしたのですがIDPの認証の部分がうまく行かず
(呼び出すたびに動作が変わったり仕様の書き方が曖昧で具体的なサンプルがほとんど見つかりませんでした)

結局こちらのGoogle Identity Toolkit用Javaライブラリを使用しました
Google Identity Toolkit Integration Guide for Java Platform - Google Identity Toolkit — Google Developers

要約すると以下の3つのクラスを作成してweb.xmlにリスナーを設定
1.AccountServiceの実装クラス
2.TokenGeneratorの実装クラス
3.設定情報と上の2つを読み込むServletContextListenerの実装クラス

IDPとの面倒くさい処理はライブラリに含まれるサーブレットにお任せなので
開発者はクライアントやIDPから渡されるユーザ情報を使って認証を行うロジックを作成するだけでOK

  • -

ライブラリのダウンロードはGoogle Codeからですが

gitkit-java-client-library -


Java Client library for GITKit - Google Project Hosting

mavenリポジトリを作ってくれている方がいたので一応メモしておきます
MikeMitterer/public.maven.repository · GitHub

<repository>
    <id>public.maven.repository</id>
    <name>public.maven.repository on GitHub</name>
    <url>https://raw.github.com/MikeMitterer/public.maven.repository/master</url>
    <layout>default</layout>
</repository>

<dependency>
    <groupId>com.google.gitkit</groupId>
    <artifactId>gitkit</artifactId>
    <version>1.1</version>
</dependency>