そもそも、なぜ外部認証サービスなのか?。
利用者にいつも使っているプロバイダのIDを使って気軽にアプリケーションを使って欲しい、そして、アプリケーションにユーザー登録機能を組み込む手間を省きたい、というのが大きな理由である。
他に、メディア系サイトに多いのだが、ユーザー登録と称して大量の個人情報を集めているところがある。こんな事をしていて情報流出したらダメージは計り知れない。メールアドレスの収集さえ危険である。
このような考えの開発者には、外部認証サービスという選択は適切なものではないだろうか。
ここで今日の一言、
お金をかけても良いシステムができるわけではない、 情報をたくさん集めても活用できるわけではない。 |
by 筆者 |
※注意
Googleアカウントしか利用を許可しないのであれば外部認証サービスを組み込む必要はなく、GAE上で標準で提供されている仕組みを使えば良い。
それでは本題の外部認証サービスの組み込みについて、説明していく。
外部認証サービスというとまず、OpenID を思い浮かべる。しかし一口に OpenID と言っても、サービスプロバイダーによって実装レベルが違うようだ。またサイトによっては OpenIDではなく、OAuth や独自の仕組みを提供しているところもある。今まで調べた中では、主に次の方法でサービスの組み込みが可能なようだ。
- サービス認証モジュールを自前で用意する
- フレームワークや外部にあるライブラリーを利用する
- 外部サービスを利用する
2 フレームワークや外部にあるライブラリーは多種多様で数は多い。ある程度使われてきたモジュールは信頼感も高い。ただ、網羅的にプロバイダーに対応しているモジュールはほとんど無い。またモジュール内部が複雑だったり、欲しい機能とマッチしないこともあると思う。
3 外部サービスというのは、外部認証サービスプロバイダーと(自社)アプリケーションの中間に位置し、認証情報の中継を行うサービスのことである。利点としては、中継サービスのインターフェースに合わせたモジュールを用意すれば、多くのサービスプロバイダーと接続できるということである。欠点としては、一定範囲を越えるサービスは有料だったり、特に日本のサービスプロバイダーに対応していない点である。
このサービスとしては以前 RPX と呼ばれていた Janrain Engage がある。RPX については、次のサイトで説明がある。
参考: masayangの日記 RPXを使って認証を賢く簡単に
次回以降 2 の方法を主に、外部認証の組み込みについて解説していく。