土曜日、LDAPの話をしていた人がいて、そこでふと思ったことがあるんだけど、そのまえに、LDAPとか、SSOについて、まとめておこうと思う(そうしないと、ふと思ったことが通じないので)
■SSOとは
ここ
なぜ「シングル・サインオン」が必要なのか?
http://www.atmarkit.co.jp/fnetwork/rensai/dirt01/01.html
に書かれているように(以下斜体は上記サイトより引用)
SSO(シングルサインオン)とは
1回の認証手続きで、複数のOSやアプリケーションなどにアクセスできること(またはそれを実現するための機能)を「シングル・サインオン(Single Sign-On)」と呼びます。
こうすると
ユーザーは複数のIDやパスワードを覚えておく負担から解放されます。パスワードを1つ覚えておくだけで、厳格なパスワード管理も現実的なものとなり、より高いセキュリティを実現することが可能になります。
実装方法としては、共通の認証サーバーをたてて、
1.ユーザーは認証サーバーにアクセスして、認証を行おうとする
2.認証サーバーから複数のアプリがよびだされ
3.アプリと認証サーバー間で認証情報を渡しあう
こんなかんじ
この認証サーバー、アプリ間のやり取りの方法はいろいろ。
仮名でサーバーからアプリにアクセスしたり、認証情報をPOSTでブラウザに送り返し、そのデータをもとにアプリに入ったりなどなど・・・
■SSO関連技術
こんなかんじ
・社内レベルでの実現
OpenLDAP
ActiveDirectory
・Webサービス、サイト間など
OpenID、OAuth
SAML,Liberty Alliance
(Microsoft Passport)
もっとも、それぞれ、SSOだけじゃなくって、ほかの部分も含んでいるけど・・・
ActiveDirectoryとOpenLDAP間では、連携できるが、どのように情報をマッピングするかなどなど、いろいろ考える点がある。