おはようございます、ritouです。
JWTへの注目の高まりを感じる
去年からJWT(JSON Web Token)に注目が集まっています。
http://oauth.jp/json-web-token-jwt
来月のJICS 2013でもJWTに関する基調講演がありますし、2日目のIdentity Technologies IntroductionではMichael B. Jones氏からJWT, JOSEの説明があります。
3月5日(火)基調講演にDeNA山口氏による「MobageオープンプラットフォームにおけるJWT活用」をプログラムに追加しました。
3/5基調講演にDeNA追加 - Japan Identity & Cloud Summit(学認シンポジウム, OpenID Summit)
渋谷のD社方面からJWTのかほりがぷんぷんするなーと思っていたわけですが、ライブラリも作られたようです。
にひりずむ::しんぷる - JSON::WebToken released
OpenID ConnectのID Tokenを検証
Acme::JWTというのが以前からあったわけですが、今後はこちらの方がメンテされるんじゃないかと思い、OpenID ConnectのID Tokenを検証してみました。
YConnectのようなHMAC-SHAxxxの署名つきのID Tokenの場合はPodを読めば簡単に動くので、RSAのほうのサンプルです。
以下のような処理を行います。
サンプルに含まれるID Token, X.509証明書はこの前作ったOPのものです。
Discoveryの方法などが気になったらこちらを参照してください。
X.509証明書から公開鍵を取り出すあたりはOAuth 1.0の署名時代のノウハウを流用し、あとはdecodeを呼ぶだけです。
今回のOpenID Connectのユースケースに限らず、文字列長が気にならないユースケースであれば、JSONだけではなくいろいろなデータにさくっと署名をつけてやりとりできるので捗ります。
ぜひみなさんも触ってみたら良いかと思います。
ではまた!