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には次のものがある。

  1. OpenSSO(Open Web Single Sign On)
  2. JOSSO(Java Open Single Sign On)
  3. CAS(Central Authentication Service)
  4. 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」の実装が必要
LicenseCDDL v1.02) GNU Lesser General Public License Apache License, Version 2.0
Integrating applicationsOpenSSOとアプリとの統合方法は以下の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等)
deploymentwarファイルで配布可能 配布の際、以下の設定が必要
.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
  1. XML基盤ファイルを利用する際
  2. 言語に依存しないAPIが重要である場合
  3. cluster環境が必要な場合
  4. SSL相互認証が必要な場合
  5. SUN Java System「Access Manager」の機能をアップしたい場合
  • JOSSO
  1. WASがsupport可能な場合

※supportしない場合、plugin開発の手間がかかる。

  • CAS
  1. アプリがAcegiを利用するspring基盤のinfrastructureである場合
  2. 簡単な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
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の記事を参考して欲しい。

コメント

コメントを入力. Wiki文法が有効です:
P H​ A L Y
 

QR Code
QR Code study:sso:comparisons (generated for current page)