OpenIDとOAuthの違い

以下を読んでの雑感。もうちょっと簡単に書けると思う。

どういうサービス?

ウェブサービスで共通して使えるアカウントを提供するサービス。

利点

AというサイトでもBというサイトでもCというサイトでも新たにアカウントを作成することなくサービスを使うことが出来る。アカウントを一つに出来ることでパスワードの管理が煩雑にならずにならないし、アカウントを作る手間が省けて便利。

仕組み

アカウントを管理している認証を行うサイトが一つだけあって、それに対してA・B・Cっていうサイトが認証をしにいくって感じ。

OAuth

どういうサービス

Aっていうサイトが提供しているサービス内容をBっていうサイトでも使えるようにするサービス。説明するのに便利だからここからはTwitterを例に書いてみる。

利点

Twitterを例にとるとBっていうサイトから認証したアカウントに対してTwitterが提供しているサービス(タイムラインの取得だとか、つぶやきの投稿だとか)を使うことが出来る。

仕組み

Bっていうサイトに対してTwitterを更新したり出来る権限を与えているようなもの。Bは信頼できますよーっていうのをユーザがTwitterに対して保障する。

違い

OpenIDはユーザを管理していて、OAuthはサイトが提供しているサービスを管理している。僕の認識では似て非なるものって言うよりも全然違うもの。



まとめ

簡単に書いてみたけど、OAuthとOpenIDの違いは僕の中でこんなもん。
最近TwitterのOAuthを使ってユーザ管理をして簡単にウェブサービスをつくろうみたいなのがよくあるけど、Twitterのサービスを使わないのにOAuthをつかって認証しようとしてるとかいうサイトがもしあるんであれば使い方を間違ってると思うよ。