Spring/Spring Security

[Spring Security] Spring Security 란? + 용어 정리

jungha_k 2022. 11. 22. 11:56

✨ Section 3에서 만들었던 샘플 애플리케이션에 없는 요소들 :

 

- 인증(Authentication) 기능 

: 로그인 기능

 

- 인가(Authorization) 기능 

: API 대한 권한 부여 기능

 

- 웹 보안 취약점 대비

 


 

Spring Security 란?

 

: Spring MVC 기반 애플리케이션의 인증(Authentication), 인가(Authorization) 기능을 지원하는 보안 표준 프레임워크

 

 

Spring Security로 할 수 있는 보안 강화 기능

  • 다양한 유형의 사용자 인증 기능 적용 
    ex) 폼 로그인 인증토큰 기반 인증OAuth 2 기반 인증, LDAP 인증
  • 애플리케이션 사용자의 역할(Role)에 따른 권한 레벨 적용
  • 애플리케이션에서 제공하는 리소스에 대한 접근 제어
  • 민감한 정보에 대한 데이터 암호화
  • SSL 적용
  • 일반적으로 알려진 웹 보안 공격 차단
  • SSO, 클라이언트 인증서 기반 인증, 메서드 보안, 접근 제어 목록 ...

 

 

Spring Security 를 사용해야 하는 이유

: 보안 강화 솔루션으로 Spring Security 만 한게 없다!

 

직접 보안 솔루션을 개발해서 쓰는 것보다 

잘 만들어진 Spring Security 를 사용하는 것이 훨씬 쉬움!

 

Spring Security 의 기본 옵션 - 대부분의 보안 요구 사항을 만족 시킬 수 있다.

특정 보안 요구 사항? - 커스터마이징 해서 사용!

 


Spring Security 용어 정리 (보안 영역 개념)

 

1) Principal = 주체

: 인증 프로세스가 성공적으로 수행된 사용자의 계정 정보

애플리케이션에서 작업 수행 가능한 사용자, 디바이스, 시스템

 

 

2) Authentication = 인증

: 애플리케이션 사용자가 본인이 맞음을 증명하는 절차 

Authentication 수행 위해 Credential 이 필요하다. 

 

* Credential = 신원 증명 정보 (사용자 식별 정보) ex) 패스워드

 

 

3) Authorization = 인가, 권한 부여

: Authentication 이 정상적으로 수행된 사용자에게, 하나 이상의 권한(authority)을 부여

그 권한으로 특정 애플리케이션의 특정 리소스에 접근할 수 있게 허가하는 과정

 

반드시 Authentication 이후에 수행된다!

일반적으로 역할(Role : user, admin..) 형태로 부여됨

 

 

4) Access Control = 접근 제어

: 사용자가 애플리케이션의 리소스에 접근하는 행위를 제어하는 것