Marble Noteの技術 3.ユーザ管理

いまのところMNではユーザサービスとしてブックマークとセレクションの二つの機能を用意しています。こういったユーザ個々人に合わせたパーソナライズを行う際に避けて通れないのが、個人認証。一般的にIDとパスワードを発行し、アクセスしてきたユーザが誰でどのデータを表示すればいいのかを管理する必要があります。
そしてパスワードの紛失などに備えて再発行の為の仕組みも必要。よくあるのはリマインダ用に質問と答えを登録させ、質問の答が一致すればパスワード再発行とか、メールアドレスを登録しておいた上で、要求に応じてそのアドレスへパスワードを書いたメールを送信、などなど。
IDとパスワードの組やメールアドレス、リマインダなどの情報は厳重管理が求められます。いったん漏洩してしまうと成り済ましが横行してシステムは破綻するし信頼も失う。


そしてここで発想の転換。認証情報を自分で持たず、外部の機関に委託してしまえば安心。TypeKeyの出番です。
ユーザはMNへログインする際にいったんTypeKeyの認証サーバにリダイレクトされ、認証されれば戻ってきます。運用側で持っていればいいのはユーザIDだけ。パスワードの管理や再発行などは全てTypeKeyが提供する為、独自に用意せずともOK*1
更にMNの基盤であるRails向けにTypeKeyGeneratorというライブラリが存在する事が大きい。これによりほとんどコードを記述する事なくTypeKey認証をシステムへ組み込む事が可能。

*1:というか知りたくても知り得ない