OpenIDとは
OpenIDは、ユーザーのIDや認証、アクセス先に関する情報を、 特定のサービスに依存しない形で連携するためのプロトコルです。 OpenIDを用いたシステム連携を行うと、 複数のWebサービスで共通のユーザーIDとパスワードを使えます。 ユーザーIDをWebサービスごとに設ける必要がないため、 ユーザーは多くのパスワードを覚える手間を減らせるといったメリットがあります。 また、サービス提供者には、 ユーザーの認証情報(パスワードなど)を管理する必要がなくなったり、 他のWebサービスと連携しやすくなったりするといったメリットがあります。
一方、ユーザー情報の一元化が進むことで、 パスワードなどの情報が漏洩したときに、 不正にログインできるWebサービスが増えやすくなるというデメリットがあると言えます。 これに対しては、OpenIDを用いた認証の際に通常のパスワードよりも強い認証方式を採用したり、 不正なログインを監視して複数の認証方式を取るなど、 別の対策が必要になると考えられます。
OpenIDの元になる仕組みは、2005年5月、 Six Apart社のBrad Fitzpatrick氏によって開発されました(*1)。 2011年12月現在、この仕組みは「OpenID Authentication」と呼ばれています。 OpenID Authenticationでは、ユーザーIDとパスワードなどの認証情報は、 OpenID Provider (OP)と呼ばれる、専用のサーバに格納されます。 OpenIDを使ったユーザーの認証は、 Webサービスの提供者によって直接行われるのではなく、 ユーザーとOPの間で行われます。
認証に成功したことは、OPからWebサービスのサーバに、 ユーザーのWebブラウザを通じて伝えられます。 Webサーバはそれが正しいOPのメッセージであることが確認できると、 ユーザーがログインできると判断します。 つまりWebサービス側で個別にユーザー認証を実装していなくても、 ユーザーが利用できるWebサービスを増やしていくことができます。
OpenIDに関連する仕様は、 非営利団体であるOpenID Foundation(*2)において標準化されています(*3)。 日本では、日本支部であるOpenID ファウンデーション・ジャパンが活動しており、 技術文書の翻訳などが行われています(*4)。
OpenIDを用いた認証連携は、Google、Twitter、mixi、Yahoo!、 Facebookなどで採用されるようになってきています。
(*1) "lj_dev: Distributed Identity: Yadis"
http://lj-dev.livejournal.com/683939.html
(*2) OpenID Foundation
http://openid.net/
(*3) "Final: OpenID Authentication 2.0"
http://openid.net/specs/openid-authentication-2_0.html
(*4) OpenID ファウンデーション・ジャパン
http://www.openid.or.jp/