2011年11月28日月曜日

OpenID  SAMLとの違い

OpenIDとSAMLとの違いについてまとめる。

【参照URL】
http://identitymeme.org/doc/draft-hodges-saml-openid-compare.html

上記の資料に丁寧にまとめられているが、今理解している範囲でまとめると、ポイントは以下になる。
  1. SAML仕様は、運用前に、信頼関係(トラストサークル)を構築する必要がある(SPとIdP間でのメタデータの交換、証明書の交換)。OpenID仕様では、信頼関係を構築する必要がない。どのRPもOPと認証連携できることが原則。なお、OpenID仕様では、OpenIDのプロトコルの中で、OPのエンドポイントURLのディスカバリ、共有鍵の交換を実施している。
  2. 1により、PKI基盤を用いているSAML仕様のほうが、セキュリティ強度が高いと思われる。
  3. SAML仕様では、アサーションという認証情報(XML形式)を規定している。OpenID仕様は、アサーションという形では規定されておらず、キーと値のペアで認証情報をOPとRP間で交換する。
  4. 3により、XML形式で認証情報をやりとりするSAML仕様より、OpenID仕様のほうが処理が軽い(レストフル)と思われる。
  5. SAML仕様は、認証プロトコルのほかに、ユーザの属性情報および認可情報のプロトコルを定義している。OpenID仕様では、認証プロトコル、ユーザの属性情報の交換(CX)を定義しており、認可情報のプロトコルは定義していない。そういう意味で、SAML仕様のほうが、定義範囲が広い。
  6. SAML仕様では、IdPとSP間で仮名IDを使用し、ID連携している(transient/persistent)。一方、OpenID仕様では、グローバルなOpenID(URL)で認証連携している(そもそもID連携していない)。
上記から、高いセキュリティ要件が求められ、かつガチガチに使用するWebサービスの範囲が決まっているお客様に関してはSAML仕様を採用し、mixiやfacebookなどOpenなWebサービス間の認証連携が求められる際にはOpenID仕様を採用して、仕様の使い分けが重要であると考える。

1 件のコメント:

匿名 さんのコメント...

素晴らし、まとめ。まったくその通りかと思います。