現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。システム統括部脇阪です。Partyの略で、OpenIDでログインできるサイトのことです。日本ではsmart.fm(旧iKnow!)が有名です。Provider)と言います。今回はOPに関しては取り扱いません。RPになるメリットって?ユーザーごとに適したサービスを提供するには、サイトごとにID登録を行ってもらう必要があります。ID登録の敷居は高く、ユーザー数がまだ少ないサイトやこれから新規に立ち上げる予定のサイトにとって、自前のID登録のみで新規にユーザーを獲得するのは敷居が非常に高いのではないでしょうか。そこでOpenIDの出番です。OpenIDでのログインに対応させた場合、ターゲットユーザーをOpenID対応しているOPの全ユーザーの数だけ増やせることになります。ユーザーから見ても、新しくIDとパスワードを覚える必要がないですし、普段使い慣れているIDでログインして利用できるサービスなので使ってみようという気持ちが生まれやすくなると思います。開発者にとっては、認証管理の大部分をOPに任せることができ、開発コストの削減でメインのサービス部分の開発に時間を注ぐことができます。そんなOpenIDですが、メリットだけではなくデメリットもいくつかあります。OP側が何らかの障害が発生してRPへのログインが正常に行われないようなことが起きないとは限りません。RPの認証のセキュリティ強度もOP次第で下がってしまうことになるので、ユーザーは信頼性の高いOPを選択する必要があります。・利用するOPを入力の二通りの方法がありますが、最近は「利用するOPを入力」のUX(ユーザーエクスペリエンス)を改善するために、「利用するOPを選択」する方法が一般的になりつつあります。することでユーザーの入力回数を減らし、RPがユーザーに信頼性の高いOPを選択させることが可能になります。JAPANをはじめとする主要なOPは「ログインボタン」の画像を提供していますので、今回はそれを使ってサンプルコードを動かしたいと思います作ってみよう!OpenIDのプロトコルは少々複雑ですが、幸いなことにさまざまな言語で使えるライブラリが存在しているので、開発者は仕様に沿って1から機能を開発する必要はありません。仕様を知っておくことに越したことはありませんが...たとえば、PHP,Ruby,Pythonであれば、http://openidenabled.com/にて1.0と2.0に対応したライブラリが公開されていますし、PerlであればNet::OpenIDありますし、Javaにもopenid4javaというのがあるようです。JAPANで多く使われているPHPでRPを作成しようと思います。前述したhttp://openidenabled.com/から、PHP用のライブラリをダウンロードします。JAPANはOpenID2.0ですので、2.0用のライブラリを使用します。examples解凍されたディレクトリの中身を見てみましょう。Authディレクトリの中に、OpenIDのライブラリがあります。これらを利用すればRPにもOPにもなれるのですが、今回は「10分で作るRP」と言う事に(勝手に)したので、examplesの中にあるサンプルコードを流用します。~/(作業用ディレクトリ)次にログイン画面兼ログイン後に遷移されるindex.phpを作成します。※画像はRP側のサーバーに配置してください画像リンクの遷移先はサンプルコードであるtry_auth.phpでパラメータとしてopenid_identifierとactionを指定する必要があります。前者はyahoo.co.jpやmixi.jpなどOPのURLを入力し、後者はverifyを指定します。IDでログイン」ボタンをクリックすると、Yahooのログイン画面に遷移し同意画面にて同意すると、finish_auth.php(common.phpのgetReturnTo関数の中で指定されたファイル)が呼び出されてレスポンスを受け取り、最終的にindex.phpがincludeされます。ここで表示されているhttps://me.yahoo.co.jp〜で始まるURLがユーザーのOpenIDとなりますので、開発者はこのIDにユーザーの情報を紐付けたり、Sessionに格納したり、DBに保存したりすることでさまざまなサービスを展開することができるようになります。ちなみに、サンプルコードではOpenIDは$esc_identityという変数に格納されています。IDでログイン」ボタンは、Yahoo!デベロッパーネットワークにていくつかデザインが選べるようになっていますので、サイトのデザインにあったものを選ぶことができます。サンプルは下記URLからhttps://developer.yahoo.co.jp/other/openid/loginbuttons.html最後に今回はYahoo!のOpenIDに対応したRPの構築方法について簡単に説明させていただきました。実際に運用しようとすると、他のOPに対応するためにOpenID入力フォームを用意したり、OpenIDと個人情報の紐付けなどを行う必要があると思いますが、そこは対応したいサイトのコンセプトや、開発者の腕次第だと思います。Yahoo!ではモバイル版OpenIDやOAuthハイブリッドなど新しい技術の調査を行っています。今後はそういった技術の調査結果などを載せていきたいと思います。JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。JAPANのサービス開発を支える技術やデザイン、文化を発信しています。Reserved.このページの先頭へ。