스프링 보안

Spring Security
스프링 보안
개발자4
안정된 릴리스
5.2.1 / 2019년 11월 4일, 2년 전(2019-11-04)
기입처자바
운영 체제크로스 플랫폼
유형웹 응용 프로그램 프레임워크 보안
면허증.Apache 라이센스 2.0
웹 사이트projects.spring.io/spring-security/

Spring Security는 엔터프라이즈 애플리케이션에 인증, 인증 및 기타 보안 기능을 제공하는 Java/Java EE 프레임워크입니다.이 프로젝트는 2003년 말 벤 알렉스에 의해 'Acegi Security'(이름 충돌을[2] 방지하기 위해 영어 알파벳의 첫 번째, 세 번째, 다섯 번째, 일곱 번째 및 아홉 번째 문자로 발음됨)로 시작되었으며 2004년 3월 Apache License에 의해 공개되었다.그 후 Acegi는 Spring 공식 서브 프로젝트인 Spring Security로 Spring 포트폴리오에 편입되었습니다.2008년 4월에 Spring Security 2.0.0이라는 새로운 이름으로 처음 공개되었으며 Spring Source에서 상업적 지원과 훈련을 받을 수 있습니다.

인증 흐름

그림 1은 스프링보안 시스템을 사용한 인증요구의 기본적인 흐름을 나타내고 있습니다.여기에는 다양한 필터와 최초 브라우저 요청부터 인증 성공 또는 HTTP 403 오류까지의 상호 작용 방법이 나와 있습니다.

ACEGI Authentication.JPG

브라우저가 "인증 자격 증명"을 제출합니다.
"인증 메커니즘"은 세부 정보를 수집합니다.
"authentication request" 객체가 구축됩니다.
인증요구 Authentication Manager로 전송
Authentication Manager(Authentication Providers 체인을 통해 요청을 전달하는 역할을 함)
'인증 프로바이더'는 다음 질문을 합니다.UserDetailsService을 제공하다UserDetails물건
그 결과UserDetails오브젝트(도 포함)를 사용하여 완전히 채워집니다.Authentication물건.
"인증 메커니즘"이 완전히 채워진 를 다시 수신하는 경우Authentication오브젝트, 이 요구는 유효한 것으로 간주됩니다.AuthenticationSecurityContextHolder; 및 원래 요청을 재시도합니다.
다른 한편으로,AuthenticationProvider이 요구를 거부하면 인증 메커니즘은 사용자 에이전트에 재시도를 요구합니다.
AbstractSecurityInterceptor 는 재생성된 요구를 인가하고 Java 예외를 슬로우합니다.(아크)AccessDecisionManager(결정을 위해)
ExceptionTranslationFilter 에 의해 느려진 예외를 HTTP 관련 오류 코드로 변환합니다.
에러 코드 403 – 주체가 인증되었기 때문에 단순히 충분한 액세스 권한이 없는 경우
를 기동합니다.AuthenticationEntryPoint– 인증 메커니즘인 주체가 인증되지 않은 경우

주요 인증 기능

  • LDAP(바인드 베이스와 패스워드 양쪽의 비교 전략 사용)를 사용해 인증 정보를 일원 관리합니다.
  • 널리 사용되는 중앙 인증 서비스를 사용한 싱글 사인온 기능.
  • Java Authentication and Authorization Service(JAAS) Login Module. Java 내에서 사용되는 표준 인증 방식입니다.이 기능은 JAAS Login Module에 대한 위임일 뿐입니다.
  • RFC 1945에서 정의된 기본 액세스 인증.
  • RFC 2617 및 RFC 2069에서 정의된 다이제스트액세스 인증
  • Secure Sockets Layer 표준을 상회한 X.509 클라이언트 증명서 프레젠테이션.
  • 인증용 CA, Inc SiteMinder(일반적인 상용 액세스 관리 제품).
  • HTTP 또는 HTTPS 접속을 통한 주요 ID 스위칭에 대한 Su(Unix)와 같은 지원.
  • Run-as-Replacement를 통해 다른 보안 ID를 가정할 수 있습니다.
  • 익명인증. 즉, 인증되지 않은 주체에게도 보안 ID가 할당됩니다.
  • Apache Tomcat, 수지, JBossJetty(웹 서버)위한 컨테이너 어댑터(커스텀 영역) 지원.
  • 브라우저 통합을 가능하게 하는 Windows NTLM(실험).
  • 서블릿 컨테이너 사양과 유사한 웹 양식 인증입니다.
  • HTTP 쿠키를 통한 "Remember-Me" 지원
  • 동시 세션 지원 - 주체에서 허용하는 동시 로그인 수를 제한합니다.
  • 커스터마이즈 및 커스텀 인증 실장 완전 지원.

주요 권한 부여 기능

인스턴스 기반 보안 기능

  • 도메인 개체에 적용할 수 있는 접근컨트롤 목록을 지정하기 위해 사용됩니다.
  • Spring Security는 데이터베이스에 ACL을 저장, 취득 및 변경하기 위한 저장소를 제공합니다.
  • 인가 기능은 메서드 호출 전후에 정책을 적용하기 위해 제공됩니다.

기타 기능

  • 사용자 인터페이스 메시지를 임의의 언어로 작성할 수 있는 소프트웨어 현지화.
  • 채널 보안: 특정 규칙을 충족하면 HTTP와 HTTPS 간에 자동으로 전환됩니다.
  • 프레임워크의 모든 데이터베이스 터치 영역에서의 캐시.
  • 이벤트 구동 프로그래밍을 용이하게 하기 위한 메시지 게시
  • JUnit을 통한 통합 테스트 실행 지원
  • Spring Security 자체에는 포괄적인 JUnit 격리 테스트가 있습니다.
  • 샘플 어플리케이션, 상세 Java Docs 및 레퍼런스 가이드.
  • 웹 프레임워크의 독립성.

릴리스

  • 2.0.0 (2008년 4월)
  • 3.0.0 (2009년 12월)
  • 3.1.0(2011년 12월 7일)
  • 3.1.2 (2012년 8월 10일)
  • 3.2.0 (2013년 12월 16일)
  • 4.0.0 (2015년 3월 26일)
  • 4.1.3 (2016년 8월 24일)
  • 4.2.0 (2016년 11월 10일)
  • 3.2.10, 4.1.4, 4.2.1(2016년 12월 22일)
  • 4.2.2(2017년 3월 2일)
  • 4.2.3(2017년 6월 8일)
  • 5.0.0(2017년 11월 28일)
  • 5.0.8, 4.2.8 ([3]2018년 9월 11일)
  • 5.1.0 GA(2018년 [4]9월 27일)
  • 5.1.1, 5.0.9, 4.2.9(2018년 [5]10월 16일)
  • 5.1.2, 5.0.10, 4.2.10(2018년 [6]11월 29일)
  • 5.1.3, 5.0.11, 4.2.11 ([7]2019년 1월 11일)
  • 5.1.4(2019년 [8]2월 14일)
  • 5.1.5, 5.0.12, 4.2.12(2019년 [9]4월 3일)

레퍼런스

  1. ^ "Spring Security 5.2.1 and 5.1.7 Released". spring.io. Retrieved December 4, 2019.
  2. ^ "Why the name Acegi?". spring.io.
  3. ^ "Spring Security 5.0.8 and 4.2.8 Released". spring.io. Retrieved 2019-06-09.
  4. ^ "Spring Security 5.1 goes GA". spring.io. Retrieved 2019-06-09.
  5. ^ "Spring Security 5.1.1, 5.0.9, and 4.2.9 Released". spring.io. Retrieved 2019-06-09.
  6. ^ "Spring Security 5.1.2, 5.0.10, 4.2.10 Released". spring.io. Retrieved 2019-06-09.
  7. ^ "Spring Security 5.1.3, 5.0.11, 4.2.11 Released". spring.io. Retrieved 2019-06-09.
  8. ^ "Spring Security 5.1.4 Released". spring.io. Retrieved 2019-06-09.
  9. ^ "Spring Security 5.1.5, 5.0.12, 4.2.12 Released". spring.io. Retrieved 2019-06-09.

외부 링크