現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。OpenIDをリニューアルしました。世間ではtwitterが流行し、twitterのOAuthを使ってシングルサインオンを実現するサイトが多数生まれていますが、今回のリニューアルを機にたまにはOpenIDのことも思い出してあげてください。今回のOpenIDのリニューアルではいくつかのバグ修正、iPhone用の画面の出し分けなどとともに、次の拡張仕様に対応しました。Exchange(以下AX)今回の記事ではAXの簡単な説明と、サンプルコードを用いてYahoo!プロフィールに登録してあるユーザーの属性情報を取得してみます。扱うことが可能になります。同様の拡張仕様にSREGというものがありますが、SREGはあらかじめ定義された属性情報しか受け渡しができません。それに対してAXはOPが拡張して特殊な属性情報を渡すことも可能ですし、SREGで提供できる情報はAXでもすべて提供できます。JAPANのOpenIDはAXのみに対応しています。JAPANでは下記の情報をRPに提供します。属性情報の詳細仕様についてはデベロッパーネットワークのOpenID拡張仕様についてのドキュメントを参照ください。「mixiのOpenIDを使うとニックネームが取れるのにYahoo!だと何で取れないの?ムキー」って言う人もこれで安心ですね!サンプル前回はサンプルコードをPHPで作成しましたが、今回はPythonのWebフレームワークであるDjangoを用いて作成します。元に実際に動かせるサンプルを作成しました。以下からダウンロードできます。ZIPファイルダウンロード(26KB)動かしてみる以下のサンプルは以下のような環境で動作確認を行いました。Python2.6.5Django1.1SQLite3これらのインストールは完了しているものとして今回は話を進めさせていただきます。サンプルの動作確認は下記のコマンドを実行する必要があります。localhost:8000これで作業は完了です。http://localhost:8000/consumerにアクセスしてみると下記のような画面が出力されます。ログインボタンをクリックして、Yahoo!にログインを行うと下記のような同意画面が出力されます。JAPANのOpenIDでは、RPが要求してきた属性情報に対しユーザーが渡しても良いと判断したもののみを渡す仕様です。よって、この画面ですべてチェックを入れて同意を行うと、下記のように出力されるはずです解説どのようにしてAXのリクエストを構築しているかですが、これはconsumer/view.pyの下記の部分で行っています。53RPが必要なスキーマのURLを随時追加していく形になります。よって渡している属性情報が異なるため、実際に使う場合にはこの部分に追加または削除をすると良いでしょう。レスポンスに関しても同様です。getSingleメソッドの第二引数にはデフォルトの値を入れます。OpenIDのAXを使ってプロフィール情報を取得するサンプルをお見せしました。popupについてご説明させていただきたいと思います。JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。JAPANのサービス開発を支える技術やデザイン、文化を発信しています。Reserved.このページの先頭へ。