2023. 3. 16. 16:32ㆍSpring
◎ Spring Security
-> spring MVC 기반 애플리케이션의 인증(Authentication)과 인가(Authoriztion / 권한 부여) 기능을 지원하는 보안 프레임워크
-> 스프링 시큐리티를 이용해 보안의 기능을 사용할 수 있다.
-> 스프링 시큐리티의 보안 기능을 통해 토큰 기반 인증, OAuth2 기반 인증 등의 다양한 사용자 인증 기능을 적용할 수 있고, 애플리케이션 사용자의 역할에 따른 권한 레벨을 적용할 수 있으며 ,애플리케이션에서 제공하는 리소스에 대한 접근 을 제어할 수 있다. 또한, 민감한 정보에 대해서는 암호화를 적용하여 데이터를 보호할 수 있다. 이러한 보안 기능을 사용하여 웹 보안 공격을 차단한다.
◎ Spring Security 용어
-> Principal(주체) : 애플리케이션에서 작업을 수행할 수 있는 사용자, 디바이스 및 시스템을 의미한다. 일반적으로 인증 프로세스를 성공적으로 통과한 사용자의 계정 정보를 의미한다.
-> Authentication(인증) : 애플리케이션을 사용하는 사용자가 사용자 본인임을 증명하는 절차로 인증을 정상적으로 수행하려면 사용자를 식별하기 위한 정보인 Credential(신원 증명 정보)가 필요하다. Credential은 사람의 정보를 확인할 수 있는 주민등록증을 생각하면 된다. 또한 사이트에서 로그인할 때 입력하는 비밀번호(password)도 로그인 아이디를 증명하기 위한 Credential이라 할 수 있다.
-> Authorization(인가 / 권한 부여) : Authentication이 정상적으로 수행된 사용자에게 하나 이상의 권한을 부여하여 특정 애플리케이션의 리소스에 접근을 허용하는 과정이다. Authorization은 반드시 Authentication절차를 거친 후에 수행되어야 한다. 권한은 일반적으로 Role형태로 부여한다.
-> Access Control(접근 제어) : 사용자가 애플리케이션의 리소스에 접근을 제어하는 것이다.
※ Spring Security는 왜 쓸까?
- 애플리케이션에 보안을 강화하지 않으면 애플리케이션의 사용자에 대한 정보를 보호할 수 없다. 애플리케이션에 대한 여러 정보들을 보호하기 위해 보안을 적용하는데 Spring Security는 보안을 강화하기 위한 다양한 기능을 제공하고 있다. 또한 기본 옵션 이외에 특정 보안 요구 사항을 만족해야 하는 경우 Spring Security를 사용하면 코드의 커스터마이징이 용이하고 유연한 확장이 가능하다.
-> 애플리케이션에 보안을 적용해야 하고 그 보안을 적용하기 위해 Spring Security를 사용한다.
'Spring' 카테고리의 다른 글
Spring Security의 인증 처리 흐름 (0) | 2023.03.16 |
---|---|
Spring Security의 웹 요청 처리 (0) | 2023.03.16 |
애플리케이션 빌드/실행/배포 (0) | 2023.03.10 |
TDD(Test Driven Development) (0) | 2023.03.08 |
Mockito (0) | 2023.03.08 |