Java_Spring Security

Minki CHO·2023년 1월 13일
0

CodeStates

목록 보기
15/43

Spring Security

if. 보안을 고려하지 않은 상태로 오픈된다면
-로그인 기능(인증 Authentication) 없음
:타인이 나의 정보를 애플리케이션 API 호출로 조회 가능함
-API에 대한 권한 부여(인가 Authorization) 기능 없음
:손님이 판매되는 커피 종류를 마음대로 등록할 수 있음
-웹 보안 취약점에 대한 대비가 전혀 이루어지지 않음
:웹 애플리케이션을 위협하는 세션 고정 공격, 클릭재킹 공격, CSRF 등 보안 취약점에 대한 고려가 이루어 지지 않음

"Spring Security 라는 보안 프레임워크를 이용하여 해결"

Spring Security란
: Spring MVC 기반의 애플리케이션의 인증Authentication과 인가Authorization/권한부여 기능을 지원하는 보안 프레임워크

Spring Security로 할 수 있는 보안 강화 기능
기능1 다양한 유형(폼 로그인 인증, 토큰 기반 인증, OAuth 2 기반 인증, LDAP 인증)의 사용자 인증 기능 적용
기능2 애플리케이션 사용자의 역할Role에 따른 권한 레벨 적용
기능3 애플리케이션에서 제공하는 리소스에 대한 접근 제어
기능4 민감한 정보에 대한 데이터 암호화
기능5 SSL 적용
기능6 일반적으로 알려진 웹 보안 공격 차단

  • 이외에도 SSO, 클라이언트 인증서 기반 인증, 메서드 보안, 접근 제어 목록Access Control List 같은 보안을 위한 대부분의 기능을 지원

Spring Security에서 사용하는 용어 정리
용어1 Principal 주체
: Spring Security에서 사용되는 Principal이란 애플리케이션에서 작업을 수행할 수 있는 사용자, 디바이스 또는 시스템 등이 될 수 있음
: 일반적으로 인증 프로세스가 성공적으로 수행된 사용자의 계정 정보를 의미

용어2 Authentication 인증
: 애플리케이션을 사용하는 사용자가 본인이 맞음을 증명하는 절차
: Authentication을 정상적으로 수행하기 위해서는 사용자를 식별하기 위한 정보가 필요한데, 이를 Credential(신원 증명 정보)라고 함
: Credential ex. 주민등록증/ 로그인을 위해 입력하는 패스워드

용어3 Authorization 인가 또는 권한 부여
: Authentication이 정상적으로 수행된 사용자에게 하나 이상의 권한Authority를 부여하여 특정 애플리케이션의 특정 리소스에 접근할 수 있게 허가하는 과정
: Authorization은 반드시 Authentication 과정 이후에 수행되어야 함
: 권한은 일반적으로 역할Role 형태로 부여됨

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

Spring Security를 사용해야 하는 이유
: 애플리케이션의 보안을 강화하기 위해 솔루션으로 Spring Security만한 다른 프레임워크가 존재하지 않기 때문
: Spring Security에서 지원하는 기본 옵션을 통해 대부분의 보안 요구사항을 만족시킬 수 있지만,
때로 기본 옵션만으로 만족시킬 수 없는 특정 보안 요구 사항을 만족시켜야 할 경우가 있는데,
Spring Security를 이용하면 코드의 커스터마이징이 용이하고, 유연한 확장이 가능함

profile
Developer

0개의 댓글