近年、企業のニーズとしてシングルサインオンの導入がどんどん増えつつある。
開発者にとってはコストを抑えながらお客様のニーズをどう充たせるか非常に悩ましいところである。
そういう場合、open source solutionsならコスト1)の面で有利なので、一応検討する価値はあると思う。
主なopen source solutionsには次のものがある。
ここからは順番に各ソリューションの特性を比較してみる。
基本的に2007年開かれたJavaOne Conference Session TS-4604を元にしてある。
OpenSSO | JOSSO | CAS | |
---|---|---|---|
特徴 | .SUN社が製品として提供していた「Access Manager Module」をOpenSSOとしてオープンソース化 以下に主な機能を示す。 .Authentication .Java2 platform、J2EE platform agents .Single-domain SSO .Session management .Policy .Console .Administration tools .Federation .Policy agents | .JAAS, Web Services/SOAP, EJB, Struts, Servlet/JSP,J2EE基盤, JMX, Spring .Apache Axisを実装したweb serviceを利用 .「Reverse Proxy component」でn-tier設定が可能 .supports Identity stores such as RDBMS, LDAP(including Acitve Directory) and XML .X.509 client certificates | .ドキュメントが充実なプロトコル .多様なClient libraryを提供 ex)Java、.NET、PHP、Perl、Apache、uPortal等 .uPortal、BlueSocket、TikiWiki、Mule、Liferay、 Moodle等との統合をsupport .Communityドキュメント、実装をsupport .多様なauthentication mechanismとの統合が可能 ex)LDAP(Active Directory), JDBC, X.509, RADIUS .password認証、証明書(Certificate)認証基盤 .「Authentication Handler interface」の実装が必要 |
License | CDDL v1.02) | GNU Lesser General Public License | Apache License, Version 2.0 |
Integrating applications | OpenSSOとアプリとの統合方法は以下の4種類がある。 .Policy Agents3) .Reverse Proxy4) .Client SDK5) .Identity Service6) | .Java .Apache2.2(php、perl、python、ruby) .ASP.NET | .Java techonology client .JSP software client .uPortal client .Acegi .Perl .ASP.NET .PHP |
Server support | .Apache Tomcat .Sun Java System Web Server .Microsoft IIS .Domino .Glassfish Application Server .BEA WebLogic .Oracle Application Server .Apache Geronimo Application Server .JBoss Application Server | .Apache Tomcat .Jboss Application Server .BEA WebLogic .Websphere CE Application Server .Microsoft IIS as an ISAPI connector | .springが配置可能なサーバー |
cross-domain SSO | 〇(CDSSO Controller) | 〇 | 〇(SAML) |
customize | .Authentication Moduleの作成でカスタマイズ可能 .Authentication User Interface JSPページはRealm、Locale、Client typeでカスタマイズ可能 | .supportしないWASの場合、plugin作成が必要 | .基本的にHTTPSのみ実装 .HTTPで切り替えるのが容易 .ログインページの外観が変えられる。 .Authenticatorの変更可能(LDAP等) |
deployment | warファイルで配布可能 | 配布の際、以下の設定が必要 .Single Sign-On Gateway .Authenticator .Identity Manager .Session Manager | .Server-side pre-built WARファイル、又はカスタマイズ可能 .Client-side 各applicationごとにCAS client配布 |
support for web service security | 〇(secure web services using SAML) | △(WAS依存の為、制限がある。) | 〇(protecting URLs) |
どのsolutionを選ぶかはプロジェクトの目標によって違ってくると思う。 Conferenceでは選ぶ時に参考として次の基準を提示してあった。
※supportしない場合、plugin開発の手間がかかる。