Spring Security とは?

Spring Security

Spring Security最新情報

NRIのOpenStandiaが提供するSpring Security最新情報

OSSの保守サポートサービスの内容はこちら OSSの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Spring Securityバージョンアップ情報

■2023-03-01
[VerUP]Spring Security 5.7.7(リリース日:2023/02/22)
■2023-03-01
[VerUP]Spring Security 6.0.2(リリース日:2023/02/21)
■2023-03-01
[VerUP]Spring Security 5.8.2(リリース日:2023/02/21)
■2023-01-05
[VerUP]Spring Security 6.0.1(リリース日:2022/12/20)
■2022-11-29
[VerUP]Spring Security 6.0.0(リリース日:2022/11/22)
■2022-11-08
[VerUP]Spring Security 5.7.5(リリース日:2022/11/01)
■2022-11-08
[VerUP]Spring Security 5.6.9(リリース日:2022/11/01)
■2022-09-14
[VerUP]Spring Security 5.7.3(リリース日:2022/08/16)
■2022-06-28
[VerUP]Spring Security 5.7.2(リリース日:2022/06/21)
■2022-06-28
[VerUP]Spring Security 5.6.6(リリース日:2022/06/21)

すべてを見る

更新日:2022-12-26

Spring Securityの概要

Spring Securityの概要1Spring Securityの概要2

   

Spring Security(スプリングセキュリティ)は、Springベースのアプリケーションに対してセキュリティ強化を実現するためのフレームワークです。

以下を実現することが主な目的です。
・ 認証 (BASIC認証、X.509クライアント認証、LDAP認証、OpenID認証など)
・ 認可 (URLパスとロールによるアクセス許可/拒否、OAuth 2.0など)
・ セッション固定攻撃、クリックジャッキング、CSRFなどの攻撃に対するセキュリティ保護

 

上記以外にも多数の認証、認可、セキュリティ対策が可能で、それでも対応できない場合は用件に応じてカスタマイズすることもできます。Spring Securityは、サーブレットフィルタの仕組みを利用して、こうした機能を実現しています。

 

Spring Securityは、Springベースのアプリケーションのセキュリティ機能を実現するため、2003年にベンアレックス氏らにより「Acegi Security」として開発され、Spring Frameworkの開発者らに渡す時に「Spring Security」という名前にすることを提案しましたが、レビューの時間がなかったため、しばらくは「The Acegi Security System for Spring」と呼ばれていました。(「Acegi」という名前は開発者であるベンアレックス氏が1990年代に作ったBBS(電子掲示板)の名前で、特に意味があるわけでなかったようです。)
当初の構成では、Acegi Securityが認可を実現し、認証はTomcatなどのサーブレットコンテナが行うように設計、開発されていましたが、サーブレットコンテナの機能的な制限や設定上の問題により、誤った設定やユーザーの混乱の要因となったため、Acegi Securityに独自の認証機能が実装されるようになっていきました。
その後、プロジェクトは開発の規模を大きくしながら、2005年には公式のSpring Frameworkサブプロジェクトになり、2007年にAcegi Securityは「Spring Security」へと改名されました。

TOPに戻る

Spring Securityの主な特徴

Spring Securityは広範囲な認証モデルを提供しています。認証モデルの多くは、サードパーティが独自に開発・提供しているか、IETF(Internet Engineering Task Force)などの標準化団体により仕様が策定されています。Spring Securityはこれらを実装しているほか、独自の認証機能も提供しています。またSpring Security 5.0 からは Spring Framework 5.0 で導入された WebFlux にも対応しています。

具体的には、現在Spring Securityは以下のような認証テクノロジーとの統合機能を提供しています。

• HTTP BASIC認証
• HTTP Digest認証
• HTTP X.509クライアント証明書認証
• LDAP認証
• Formベース認証
• OpenID
• SAML
• リクエストヘッダーを利用した認証
• CAS
• remember-me認証
• 匿名認証
• Java Authentication and Authorization Service (JAAS)
• Java EEコンテナ認証
• Kerberos
• Java Open Source Single Sign-On (JOSSO) *
• OpenNMS Network Management Platform *
• Mule ESB *
• Grails *
• Tapestry *
• Elastic Path *
• Atlassian Crowd *
• 独自に開発した認証システム など

 (*はサードパーティにより提供されているものを示しています)

また、Spring Security 5.7以降では、WebSecurityConfigurerAdapterが非推奨となり、コンポーネントベースのセキュリティ設定に移行することが推奨されるため、それ以前のバージョンとのセキュリティ設定の書き方に大幅な変更がありました。
具体的な記載については、以下の公式ブログを参考にしてください。
https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter

TOPに戻る

Spring Securityを構成するモジュール

Spring Security には、以下のプロジェクトモジュールが含まれています。

Core spring-security-core.jar 認証、認可のためのコアとなるインタフェースやクラスを含む必須モジュールです。
Remoting spring-security-remoting.jar Spring Remotingと連携するためのモジュールです。
Web spring-security-web.jar サーブレットやフィルタなどの、Webセキュリティのためのモジュールです。
Config spring-security-config.jar セキュリティネームスペース解析やJavaコンフィグレーションなどを使用して各種設定を行うためのモジュールです。
LDAP spring-security-ldap LDAPによる認証やユーザ管理を行うためのモジュールです。
OAuth 2.0 Core spring-security-oauth2-core.jar OAuth 2.0認証フレームワークとOpenID Connect Core 1.0を使用するためのコアモジュールです。
OAuth 2.0 Client spring-security-oauth2-client.jar OAuth 2.0 認証フレームワークとOpenID Connect Core 1.0のクライアントアプリケーション向けモジュールです。
OAuth 2.0 JOSE spring-security-oauth2-jose.jar JOSE(Javascript Object Signing and Encryption)フレームワークを使用するためのモジュールです。
ACL spring-security-acl.jar ACLを使用してアプリケーションのドメインオブジェクトの認可を行うためのモジュールです。
CAS spring-security-cas.jar CAS シングルサインオンを行うためのモジュールです。
OpenID spring-security-openid.jar OpenID認証を行うためのモジュールです。
Test spring-security-test.jar テスト用のクラスが含まれています。

TOPに戻る

Spring Security 5.x に含まれるサンプルアプリケーション

Spring Security 5.x には、以下のサンプルアプリケーションが用意されています。

  • Tutorial Sample
  • Contacts
  • LDAP Sample
  • OpenID Sample
  • CAS Sample
  • JAAS Sample
  • Pre-Authentication Sample

TOPに戻る

Spring Securityと同類のソフトウェア

Spring Securityは、Springベースのアプリケーションのセキュリティを強化することに特化したフレームワークであり、これと同類のソフトウェアはありません。ただし、Springベースのアプリケーションの認証や認可を実現するために、別のソフトウェアを使用することはできます。例えば、Spring Securityを使わずに、KeycloakやOpenAMなどとSpringベースのアプリケーションを連携することもできます。Spring FrameworkにはKeycloakと簡単に連携するためのモジュールが提供されており、Spring Securityを使った上でKeycloakと連携することも、Spring Securityを使わずに連携することも可能です。

TOPに戻る

Spring Securityのライセンス

Spring Securityのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。

 

Spring Securityのライセンスについてご不明な点がありましたら、お気軽にお問い合わせください。

TOPに戻る

関連OSS

Spring Framework
Spring Boot
Keycloak

TOPに戻る

Spring Securityのダウンロード

Spring Security ダウンロードページ

TOPに戻る

Spring Securityのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

・オープンソース年間サポートサービス

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO