Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-09-01.log failed
Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-09-01.log failed
Fast and Free SSO : Introductions
近年、企業のニーズとしてシングルサインオンの導入がどんどん増えつつある。
開発者にとってはコストを抑えながらお客様のニーズをどう充たせるか非常に悩ましいところである。
そういう場合、open source solutionsならコスト1)の面で有利なので、一応検討する価値はあると思う。
主なopen source solutionsには次のものがある。
- OpenSSO(Open Web Single Sign On)
- JOSSO(Java Open Single Sign On)
- CAS(Central Authentication Service)
- etc.(Atlassian Seraph, Shibboleth, CoSign, Enterprise Sign On Engine)
ここからは順番に各ソリューションの特性を比較してみる。
基本的に2007年開かれたJavaOne Conference Session TS-4604を元にしてある。
head-to-head comparisons
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) |
summary
どのsolutionを選ぶかはプロジェクトの目標によって違ってくると思う。 Conferenceでは選ぶ時に参考として次の基準を提示してあった。
- OpenSSO
- XML基盤ファイルを利用する際
- 言語に依存しないAPIが重要である場合
- cluster環境が必要な場合
- SSL相互認証が必要な場合
- SUN Java System「Access Manager」の機能をアップしたい場合
- JOSSO
- WASがsupport可能な場合
※supportしない場合、plugin開発の手間がかかる。
- CAS
- アプリがAcegiを利用するspring基盤のinfrastructureである場合
- 簡単なDB認証マネージメントを利用する場合
reference
1)
ダウンロード可能なOpenSSO Enterprise版は商用だとLicenseの購入が必要である。 1回Licenseを取得すると、コミュニティでコードベースのサポートを受けられる。
2)
Sun OpenSSO Enterprise版は Licenseの購入が必要。Sun OpenSSO Enterprise Price table参照
3)
執筆中の最新バージョンは3.0である。support可能なapplication serverを以下に示す。
.Apache Tomcat 6
.Apache HTTP server 2.2.x and 2.0.63
.BEA WebLogic Server/Portal 10
.IBM WebSphere Application Server 6.1
.IBM WebSphere Portal Server 6.1
.JBOSS Application Server 4.0.x and 4.2.x
.Microsoft IIS 6.0 and 7.0
.Sun Java System Application Server 8.1/8.2/9.0/9.1
.Sun Java System Proxy Server 4.0
.Sun Java System Web Server 7.0
.Apache Tomcat 6
.Apache HTTP server 2.2.x and 2.0.63
.BEA WebLogic Server/Portal 10
.IBM WebSphere Application Server 6.1
.IBM WebSphere Portal Server 6.1
.JBOSS Application Server 4.0.x and 4.2.x
.Microsoft IIS 6.0 and 7.0
.Sun Java System Application Server 8.1/8.2/9.0/9.1
.Sun Java System Proxy Server 4.0
.Sun Java System Web Server 7.0
4)
OpenSSOは基本的にエージェント型だが、リバースプロキシ型もサポートしている。 実際はリバースプロキシサーバーをアプリの前に立ってて、そこにエージェントをインストールすることになる。
アクセスが集中するとボトルネックになって、スループットが低下する恐れがある。 その反面、アプリサーバーにエージェントをインストールしなくても済む。
アクセスが集中するとボトルネックになって、スループットが低下する恐れがある。 その反面、アプリサーバーにエージェントをインストールしなくても済む。
5)
Javaしかサポートしていない。 しかし、「Policy Agent」、「Reverse Proxy]より洗練されたアクセスコントロールが可能である。
6)
「Identity Service」は簡単なwebインタフェイスであるが、OpenSSOの機能(authentication, authorization等)の利用が可能になる。
アプリに統合する際は、プログラミングが必要になるが、Policy Agent, Reverse Proxy, Client SDKに比べて、数ステップの省略ができる。
さらに、Rails, Perl, PHP等のnon-javaアプリでもうまく動作する。 javaアプリの場合はSecuring Applications With Identity Serviceの記事を参考して欲しい。
アプリに統合する際は、プログラミングが必要になるが、Policy Agent, Reverse Proxy, Client SDKに比べて、数ステップの省略ができる。
さらに、Rails, Perl, PHP等のnon-javaアプリでもうまく動作する。 javaアプリの場合はSecuring Applications With Identity Serviceの記事を参考して欲しい。
コメント