JanRain Engageでmixiをログインに使う方法 - α

こんばんは、ritouです。

http://www.janrain.com/blogs/janrain-engage-adds-mixi-social-login-identity-provider
JS導入+簡単なAPIアクセスからF,T,G,Yなどのログインが利用できるJanRain Engageで、mixiが利用できるようになりました。という記事です。

特に驚くネタではないですね。
mixi Graph APIはOAuth 2.0ベースなわけなので、以前から「JanRainが空気読んでFacebookのカスタマイズ版のようにmixiに対しても実装してくれれば簡単にIdPのリストに入れられるな」という状態だったわけです。

とりあえず"簡単に"mixiのログインをサイトに導入する方法

では、使い方を紹介します。
JanRain EngageがRPXって名前だったころに使い方を説明するエントリを書いていました。
http://d.hatena.ne.jp/ritou/20100329/1269795153

1. JanRain Engageの利用登録

英語しかありませんがApplication登録のときに有料のやつ選ばないように気をつけてください。

2. Sign-In for Websitesの設定

ログイン部分の設定を行います。

3. mixiをProviderに設定するときにはmixiに対してClient登録が必要

英語で説明があります。

このとき、戻り先URLはJanRainになります。
理由はわかりますよね?mixi Graph APIたたいてプロフィール情報取得する処理は全てJanRain側でやるからです。

Client ID, Client SecretをJanRainに渡します。
理由はわかりますよね?mixi Graph APIたたいてプ(ry

そこまでやると、mixiがProviderとして設定可能になるはずです。
あとはJanRainの指示に沿って実装しましょう。

使ってみた

以前のエントリのサンプルで使ってるProviderにmixiを追加しました。
http://r-weblife.sakura.ne.jp/php-simple-rpx/index.php

mixiが選択できます。
OAuthの同意画面などが出てきて、これでうまくいくはず!

こんばんは、"繧、繝医え豌"です。
おおお、文字化け!
理由は何となくわかってますが今日はもう遅いので後で見てみます。

そろそろJanRain Engageみたいなプロダクトに疑問を抱いても良い時期

以上のように簡単にソーシャルログインが実装できちゃうのがJanRain Engageです。
だって、全てのAuthentication/Authorization結果のパースはJanRainが行うんだもの。
(この前紹介したAccount ChooserのGoogle Identity ToolkitのフェデレーションIDの部分も同じようなしくみです。全部Google様にお任せするのです。)

このしくみにおいて、JanRainが悪いことをしたらどうなるのでしょうか。

ユーザーのデータは、Provider→JanRain→(導入しているサイト)と流れます。
ユーザーはPowered by JanRainなんて表記はされているものの、JanRainにデータが渡ることは知らないでしょう。
Provider側からすると、Client登録されている戻り先URLはJanRainのものなので、適切な同意画面などを出すことで"Provider→JanRain"までデータが渡ることはユーザーに同意とっていることになります。
となると"JanRain→(導入しているサイト)"の間のデータのやりとりが暗黙のもとに行われていることになりますね。
(導入しているサイト)が、最初に「このログイン機能はJanRainにデータ処理してもらうのでProviderから受け取った認証結果から何からが全部をJanRainに渡ります。それでもいいですね?」っていう同意をとったりすれば良いのか。

ユーザーが自分のデータがどのような経路でサービスに渡されるのかを気し始めたこの世の中で、今のままではProviderがJanRainからのアクセスを遮断するなんてことも出てくるかもしれません。
ちなみに、Account ChooserのGoogle Identity Toolkitの場合、戻り先は(導入しているサイト)なのですが、データを受け取った後にまるっとGoogleに丸投げする形です。

ちょっとこのあたりは今後も注目していく必要がありそうですね。
ではまた。