BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Spring (Acegi) Security 2.0 の OpenID のサポート、REST 用機能、性能アップ

Spring (Acegi) Security 2.0 の OpenID のサポート、REST 用機能、性能アップ

SpringSource(サイト・英語) の社長で CEO の Rod Johnson 氏が Spring Security 2.0.0 のリリースを発表した(source)。これは Acegi Security (source)を Spring アプリケーション(source)のための公式なセキュリティモジュールとして置き換えたものである。以前 InfoQでレポートしたとおり、Acegi Security はエンタープライズソフトウェア向きの Java セキュリティフレームワークとしてはもっとも包括的なもので(参考記事・英語)、包括的な認証、認可、インスタンスベースのアクセスコントロール、チャネルセキュリティ、そしてヒューマンユーザディテクション機能を提供する。

Acegi Security は Spring Developers メーリングリストに投げられた Spring ベースのセキュリティ実装の作業有無についての質問に呼応して、2003 年の末ごろにスタートした。そのとき以来、Acegi は世の中にある数少ない Java セキュリティフレームワークのうちのひとつとなり、そして間違いなくもっとも包括的なものとなった。最初、Servlet や EJB のセキュリティ標準の機能不足やポータビリティの欠如が人々の Acegi に対する興味を惹きつけるきっかけとなり、その後、Acegi は今日実装されている認証スキームのほとんどをサポートするプロジェクトへと発展していった。認証については多く議論されてきたが、セキュリティに関してもっとも困難なチャレンジ(そしてもっとも議論されてきていないもの)は認可である。Acegi は Web リクエストやメソッド呼出、そしてドメインオブジェクトインスタンスへのアクセスについても、個別に認可を与えることができる。

 新しい特性(source)としては設定の簡略化や数多くの新機能が含まれる。新機能は、 OpenID、NTLM、JSR 250 アノテーション、AspectJ ポイントカットのサポート、ドメイン ACL の強化、RESTful URI 認可、グループ、ロールの階層化、ユーザ管理 API、データベースを利用した「Remember Me」、ポートレット認証、その他の言語、Web Flow 2.0 のサポート、Spring IDE による可視化と入力補完、Spring Web Services 1.5 を通じた WSS サポートの強化など。

これは、Spring Portfolio にとっての重要なステップだ。Spring (Acegi) Security はすでに Java プラットフォームでもっとも幅広く利用されているエンタープライズセキュリティフレームワークとなっている。SourceForge でのダウンロード回数は 250,000 件を超え、リリースごとのダウンロード回数は 20,000 件を超えた。利用がより簡単になったことで、今回のリリースは間違いなくこれまでにないレベルで採用されることになるだろう。

 Acegi Security のホームページには新しいプロジェクトに関するより多くの技術的詳細が記載されている。 

Spring Security 2.0.0 は Acegi Security の堅牢な基礎の上に構築され、そこに多くの新しい機能を追加している。 
  • 名前空間ベースの設定シンタックスの簡略化。古い設定では XML を数百行にわたって書かなければならなかったが、「設定より規約」のアプローチにより、多くのデプロイメントでは 10 行以下で済むようになった
  • OpenID との統合。OpenID は最近登場した Web のシングルサインオン標準で、Google 、IBM、Sun、Yahoo やその他多くのサイトでサポートされている
  • Windows NTLM のサポート。Windows ベースの企業ネットワークにおける簡単な企業規模のシングルサインオンを提供する
  • JSR 250( EJB 3 ) セキュリティアノテーションのサポート。認可メタデータのための標準モデルを提供する
  • AspectJ pointcut expression language のサポート。Spring が管理するオブジェクトに横断的にセキュリティロジックを適用することを可能にする
  • 高性能なドメインオブジェクトインスタンスセキュリティ( ACL ) 機能のための大幅な改良
  • RESTful Web リクエストの認可を包括的にサポート。これは RESTful システムを構築するための Spring 2.5 @MVC で使うと効果的である
  • 長い間待ち望まれてきた、グループ、階層化されたロール、ユーザ管理 APIのサポート。これらはすべて開発期間を削減し、システム管理の劇的な改善を実現する
  • 改良された、データベースを利用した「Remenber Me」の実装
  • 設定不要なポートレット認証のサポート
  • その他の言語のサポート
  • その他多くの改良点、ドキュメント、新しいサンプル
  • Spring Web Flow 2.0 を通じた、Web の状態やフロー遷移に対する認可を新規サポート
  • Spring IDE におけるセキュアなメソッドの可視化および設定ファイルの入力補完を新規サポート
  • Spring Web Services 1.5 を通じた WSS(旧 WS-Security ) のサポートを強化

Matt Raible 氏は Spring Security 2.0 へアップグレードする際の個人的な経験について書いている(source)。 

Spring Security 2.0 は嬉しいことに XML をまったく使用せず飛躍的に多くのパワーと柔軟性を与えてくれる。開発者たちに感謝したい。

 Matt 氏は今回のアップグレードについて完全なチェンジログ(source)も公開している。

Chris Baker 氏は自身の「 Acegi から Spring Security 2.0 への移行手順」という記事のなかで詳細な解説をし、既存の Acegi ベースの Spring アプリケーションを Spring Security 2.0 を利用したものに変更するための手順(source)についてあらましを述べている。

このショートガイドではデータベースに格納されたリソースへのアクセスについて Spring Security 2.0 で設定する方法を記しており、Spring Security 2.0 で使えるようになった多くの新機能については詳しく述べていないが、フレームワークのなかでももっとも一般的に利用される機能を紹介できたと思うし、これを読んだ人の役に立つことを望んでいる。 

ACEGI と比べたときの Spring Security 2.0 のメリットのひとつは、設定ファイルの記述が簡潔になったことだ。私が以前書いた ACEGI の設定ファイル( 172 行 )を新しいもの( 42 行 )と比べれば、その差は歴然だ。

ステップ 1 で述べたように、全ステップのなかで Spring Security のダウンロードが一番ややこしかった。それが終わればあとは楽だ。

Rod Johnson 氏は、「 Acegi を使うたびに妖精さんが一人死んでいく」(source)という先の Dan 氏のコメントに答えるかたちで、新しいバージョンのセキュリティフレームワークは「妖精さんの王国にとって望ましい」(source)ものだとユーモラスに宣言している。 Spring Security 2.0 のリリースに先立って、SpringSource の Ben Alex 氏も Dan 氏の発言にコメントしている(source)

私たちは、コミュニティフォーラム、開発者メーリングリスト、JIRA、ユーザカンファレンス BOF、教育、サポート、コンサルティング、そしてチームブログから非常に多くのフィードバックを受け取っている。大勢の人々が Spring Security (旧 Acegi )の設定ファイルフォーマットの改善を求めていたことはほとんど疑いないし、私たちはそれを実現するために多大な時間を費やしてきた。 

来週の Spring Experience カンファレンス(編集部注:元記事発行時点)で私が発表するとおり、Spring Security 2.0.0 M1 は非常に簡潔に設定ができるというのを特徴としている。

Spring Security の最新リリースはこちらからダウンロードできる(source)

Spring に関するさらなる情報は infoq.com/jp/Spring (source)で見つけることができる。

原文はこちらです:     http://www.infoq.com/news/2008/04/spring-security

この記事に星をつける

おすすめ度
スタイル

BT