nihimotoの日記

https://mapsengine.google.com/map/edit?mid=zhpqXW1XM-zc.kmD-c8p1GAWI

OpenIDに関するまとめ(by OpenIDに乗り遅れた人)

毎週毎週新しい用語が出てきて忙しいかぎりです、IT業界は。
だんだんやけくそ気味ですが、乗り遅れてしまったOpenIDについてまとめてみます。
(乗り遅れてばっかりだ、もぅ・・・(TT )

OpenIDの難しい理屈はおいておいて、一般消費者向けの情報をまずは確認。


OpenIDとは? - Yahoo! JAPAN
http://openid.yahoo.co.jp/

OpenIDでこんなに便利に

* OpenIDとは、世界中のOpenID対応サイトで共通して利用できるURL形式のIDのことです。
* OpenID対応サイトで利用すれば、新たにアカウントを作成したり、ログインするために別々のIDやパスワードを入力する必要がなくなります。
* 現在、世界中で数多くのウェブサイトがOpenIDに対応しており、その数は日々増え続けています。

と、いうこと。
Yahooで作ったOpenIDが他のOpenID対応サイト、たとえばはてなやライブドアなどでもログインに使えるということですね。セキュリティ大丈夫なんでしょうか・・・でも、便利ではあります。問題はどれがOpenID対応サイトなのかさっぱりわからないのと、そもそも対応数が少なそう、ということでしょうか。

さて、基礎知識を仕入れたところで、そろそろマニアックに。Geekな感じを目指して。


OpenID - Wikipedia
http://ja.wikipedia.org/wiki/OpenID

こちらから引用。


OpenIDを管理するサイトに、個人情報を記述したページを作れば(証明したい相手が、OpenIDを採用しているなら)、そのページのURLを広くインターネットで、個人の同一性の証明として使うことができる。

* 記述方法は、OpenIDを管理するサイトによる。
* 使用する情報は個人の選択による。(見せたい情報を登録する)

OpenIDはURL形式になっており、OpenIDを管理するサイトのURLにそのサイト内でのIDを付け加えたものである。 認証はOpenIDを管理するサイトを利用して行われる。

しかし、URL形式ってことは、めちゃくちゃ長そうですね・・・
認証はOpenIDを管理するサイトを利用して行われる、ということは、ログインの処理をそのサイトがやってくれるということ。単純に考えてログイン処理を作る必要がなくなるので、製作コストを抑えられそうですね。


OpenIDを発行しているサイト

* Yahoo! Japan
* OpenID.ne.jp
* livedoor Auth
* はてなでOpenID

OpenIDで利用可能なサイト

* プロフサービス アバウトミー
* ソーシャルニュースサイトChoix
* ミニブログサイトHaru.fm
* はてなスター
* 読書管理サイトStack Stock Books
* PlaceEngine Map

うーん、少ないです・・・
これじゃぁ共通認証のメリットの享受はできそうにないですね。これが本当に有効になってくるのはまだまだ先のことになりそうです。GmailとかGmailとかGmailとかは対応しないんですかねぇ・・・

しかし、これだけの規模にしては、Geekな人たちの言では、いかにも流行りそうな気配を感じます。
ということで次はここ

OpenIDが熱狂的に受け入れられる理由 ? @IT
http://www.atmarkit.co.jp/news/analysis/200704/23/openid.html

これは2007年4月の記事なのですが

1200サイトが対応、7500万人が利用

とのこと。さりげに米国ではかなり使われているようですね。
米国で流行るものは日本でも流行る、半年遅れで。
そんな法則から言えば、日本でももっと拡大しそうですね。

OpenIDの仕様が実現する認証の仕組みを簡単に述べると、(1)ユーザーにIDとして付与したURLを利用した認証サーバの発見、(2)URLとリダイレクトの仕組みを用いた認証要求と認証アサーション応答、(3)URLパラメータによる属性情報の要求と応答、となる。ユーザーから受け取ったパスワードをデータベースへ照会するなどの狭義の「認証」部分の仕様はOpenIDの仕様には含まれていない。認証メッセージのやり取りを行うプロトコル仕様だけを定めているところはSAML(Security Assertion Markup Language)と同じである

なるほど、ID内のURLというのはどこのサーバーで認証を行えばいいのか、という目印になるんですね。OpenIDを発行するサーバーみんなでアカウント情報を共有するのではなく、一箇所だけにおいてしまって他のサイトは常にそのサーバーに問い合わせをしにいく。これなら重要なアカウント情報が広まってしまうのを防げるわけですね。これでセキュリティの問題はクリア、ということですか。

しかし、逆に言えばIDを発行したサーバーに縛られることにもなるわけですね。YahooでOpenIDを作った場合、Yahooの認証サーバーが落ちてたら、全てのサイトにログインできなくなると。となると、どこでOpenIDを作るか、は結構重要な気がします。サーバーダウンくらいならまだいいですが、ハッキングを受けてアカウント情報が漏洩したら、そのOpenIDを使っていた全部のサイトでIDを変更する羽目になりそうですね・・・

 OpenIDを提供する多くの認証サービスでは、ユーザー自身によってメールアドレスや住所などの属性情報の登録、管理が行えるほか、コンシューマから属性情報が要求された際、その内容の確認とリクエストに応じるか否かの判断もユーザー自身が行えるようになっている。

ほぅほぅ。コンシューマーというのは、この場合サービス提供者、つまりECサイトやポータルサイトのようなところを示すのでしょう。余計なところに余計なタイミングで余計な情報を渡さないでいい、というのは実にいいですね。また、住所や電話番号も要求してきて本当に渡さないといけない(たとえば商品発送するときに住所が必要なように)タイミングで、許可を出すだけで入力しないでも渡せるというのは便利かもしれません。

気になるのは、OpenID対応のECサイトで商品を購入する、となると、まったく業務関係のない2サイトが密接に絡み合うわけで、そのときにどんな手順を踏めばいいのか、一般消費者にはわかりにくくなるんではないかな・・・という点です。一般消費者にわかりにくいようでは、OpenIDECサイトなど作るわけもないですし・・・


さて、ようやくですが、実際にOpenIDを作ってみることにしましょう。
個人的にははてなが好きではあるのですが、50人未満の企業に大切な個人情報を預けるのは少々不安なのでYahooで作ってみることにします。なお、数年前にとんでもない個人情報漏洩をしたのは棚に上げます。

Yahooでアカウントはすでにもっているので、適当にやってみると・・・えと1分でできました。

OpenID設定情報

あなたのOpenIDは、 https://me.yahoo.co.jp/a/m.**********.**********************- です。

このOpenIDを使って、OpenID対応サイトにログインができます。OpenID対応サイトは、このOpenID をYahoo! JAPANから受け取ることで、あなたがYahoo! JAPANの利用者であることを認識します。Yahoo! JAPAN IDやパスワードはOpenID対応サイトには送信されません。

こんな感じ。
※IDはもちろん伏せさせていただいています。

えーっと、やっぱり長いですね。当たり前ですが・・・
伏せてあるところもランダムな英数字なので、IDを記憶しておこうなんてとてもじゃないですが不可能な感じです。しかし、使い方とのころを良く見てみると

覚えておくのはYahoo! JAPAN IDだけ

お持ちのYahoo! JAPAN IDにOpenIDの設定をすると、使い慣れたYahoo! JAPAN IDとパスワードで、OpenID対応サイトにログインできます。Yahoo! JAPANのログインサービスを利用すれば、ログインシールやログイン履歴など、安全に配慮したセキュリティー機能が利用できます。

と書いてあります。どういうことでしょう。
とりあえず、OpenID対応サイト、アバウトミーにログインしてみることにします。
このサービスは自分のプロフィールを掲載してネット上においておくことができるサービスです。


アバウトミー - 自分発見プロフィール|プロフ
http://aboutme.jp/central

とりあえず、ログイン画面へ行ってみると右側に「外部IDでログイン」という、OpenID発行サイトの一覧があります。

アバウトミー - 自分発見プロフィール : ログイン : @nifty
https://aboutme.jp/account/login

先ほどYahooでOpenIDを発行したので、当然Yahooをクリックしてみると、Yahooのログイン画面が出てきました。YahooIDとパスワードを入力して送信してみると、見事にアバウトミーのプロフィール登録画面へ進むことができました。

えーっと、結局発行したOpenID使ってないんですけど・・・???
OpenIDの技術仕様は完全な形では実装されていないんでしょうか。
たしかに、あの長いURLをIDとして覚えておけというのは無理ですから、納得のいく対処ではあるんですが、結局いままで調べたことってなんだったんだろう・・・

消費者サイドの理解としては、
「ログインだけYahooとかでっかいところでしておけば、OpenID対応って書いているサイトならどこでも使えるようになりますよ」
っていうことでいいんですかね・・・?