うちの製品(Questetra BPM Suite)でも使っているOAuthとOpenIDとSAMLについて、うまく整理がついてなかったため、あらためて調べてしっくりきたのでまとめておく。
最終的な自分の理解をざっくりまとめると
OAuth:認証&ほしいデータにもアクセスできる(OAuthの相手がデータも持っている)
OpenID、SAML:認証だけ、ほしいデータにアクセスできるかはまた別の話(OpenID、SAMLの相手=IDプロバイダはデータを持っていない)
ほしいデータがどこにあるかと認証先がどこかを意識するとうまく整理がついた。
※BASIC認証もOAuthと同じ分類に入る
どう理解していったか。まず「認証」と「認可」の違いについて再整理。
○認証と認可の違い
http://www.itmedia.co.jp/enterprise/articles/0804/22/news044.html
○非技術者のためのOAuth認証(?)とOpenIDの違い入門
http://www.sakimura.org/2011/05/1087/
→ここにある「OpenIDは紹介状、OAuthは合鍵」はある程度わかってから読むとかなりしっくりきた
さらに理解を深めるのに。
○OpenID SAMLとの違い
http://memoyasu.blogspot.com/2011/11/openid-saml.html
○OpenID や OAuth の役割と、既存のシングル・サインオンとの違い
http://www.goodpic.com/mt/archives2/2008/01/openid_oauth.html
→このページはOAuthやSAMLで検索するとかなり上位にくるが、整理がつく前に読んでたときは、うまく理解できなかった。自分が整理したかったポイントと観点が違ってたからだが
ちなみにSalesforceもSAMLに対応しているが、IDプロバイダにもサービスプロバイダにもなるので、整理がついてないとややこしい