Spring Security framework는 authentication(인증), authorization(인가), protection from attacks(외부 공격으로 부터의 보호)를 위해 사용할 수 있는 프레임워크입니다.
프레임워크의 도움을 받지 않고 인증, 인가 등의 기능을 구현할 수도 있지만 프레임워크를 사용하면 직접 구현해야할 필요가 없어지고 또한 보안성도 보장이 된 기능들이기에 사용하는 것이 훨씬 편리하다고 합니다.
먼저 인증, 인가, 외부 공격으로 부터의 보호란 무슨 의미인지 Spring doc에 나온 내용을 간단하게 살펴보겠습니다.
1. Authentication(인증)
- 누가 특정 resource에 접근하려고 하는지 verify하는 방식.
- 일반적으로 username과password를 통해 인증을 한다.
- 인증이 완료되면 누구인지 신원을 알게되고 이를 토대로 authorization(인가)를 할 수 있게 된다.
2. Authorization(인가)
- 특정 resource에 접근 허용된 사용자가 누구인지 결정해주는 행위를 의미
3. Protection from attacks(공격으로 부터 보호)
- Spring security에서는 흔히 발생하는 외부 공격에 대한 방어 방법을 제공한다.
- CSRF로 부터 보호하는 방법, HTTP Headers를 이용한 보안 강화, HTTP Requests를 HTTPS로 우회하는 방법등을 제공한다.
이러한 보안에 필수적인 요소들을 쉽게 사용할 수 있도록 해주는 프레임워크입니다.
각각 어떤식으로 사용하면 되는지 사용법과 작동방식에 대해서도 차근차근 알아보도록 하겠습니다!
참고자료
[공식문서]
https://docs.spring.io/spring-security/reference/features/exploits/http.html
https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter
반응형
'Java Spring > Security' 카테고리의 다른 글
JWT란? JWT 생성과 사용 방법 알아보기 (0) | 2022.08.05 |
---|---|
Authorization(인가)-인가 내부 절차 & 권한 설정하기 (0) | 2022.08.01 |
Authentication(인증) (2) - 로그인 절차 & 코드구현 (0) | 2022.07.30 |
Authentication(인증) (1) - 사용자 정보 저장하기 & 비밀번호 암호화하여 저장하기(DelegatingPasswordEncoder는 무엇인가?) (1) | 2022.07.29 |
Spring Security의 작동 방식 알아보기 (0) | 2022.07.28 |