[Spring Security] 기본 개념

·2022년 11월 19일
0

SpringSecurity

목록 보기
1/13
post-thumbnail

🌿Spring Security

🔐보안(Security)

보안이 필요한 이유

  1. 인증(Authentication)
    • 로그인 기능을 구현할 경우, 사용자의 인증 정보를 사용하여 자격을 증명하는 기능이 존재하지 않아 제 3자가 타인의 정보로 로그인을 행할 가능성이 있다.
  2. 인가(Authorization)
    • API에 대한 권한 부여 기능이 없다면, 손님이 자기 입맛대로 커피 목록을 변경할 수 있음
  3. 외부 공격으로부터의 대응

🌿Spring Security란?

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

직접 보안 기능을 구현할 수 있지만, 웹 애플리케이션 보안의 대한 대부분의 기능을 안정적으로 지원하고 구조적으로 잘 만들어 검증된 Spring Security 프레임워크를 사용하는 것이 안전하다.

Spring Security의 기능

  • 다양한 유형의 사용자 인증 기능 적용
    • 폼 로그인 인증, 토큰 기반 인증, OAuth2 기반 인증
  • 애플리케이션 사용자의 역할에 따른 권한 레벨 적용
  • 애플리케이션에서 제공하는 리소스에 대한 접근 제어
  • 민감한 정보에 대한 데이터 암호화
  • SSL 적용
  • 일반적으로 알려진 웹 보안 공격 차단

Spring Security의 용어

Principal(주체)

  • 애플리케이션에서 작업을 수행할 수 있는 사용자, 디바이스 또는 시스템 등이 될 수 있다.
  • 인증 프로세스가 성공적으로 수행된 사용자의 계정 정보를 의미

Authentication(인증)

  • 애플리케이션을 사용하는 사용자가 본인이 맞음을 증명하는 절차
  • 해당 작업을 정상적으로 수행하기 위해서는 Credential(신원 증명 정보) 를 필요로 한다.

Credential(신원 증명 정보)

  • 사용자를 식별하기 위한 정보로서 Authentication(인증) 과정을 정상적으로 수행하기 위해 필요한 정보를 말한다.
  • ex. password

Authorization(인가 또는 권한 부여)

  • Authentication(인증)이 정상적으로 수행된 사용자에게 하나 이상의 권한을 부여하여 특정 애플리케이션의 특정 리소스에 접근할 수 있게 허가하는 과정
  • 반드시 Authentication(인증)과정 이후에 수행되어야 하며, 권한은 일반적으로 역할 형태로 부여된다.

Access Control(접근 제어)

  • 사용자가 애플리케이션의 리로스에 접근하는 행위를 제어하는 것
profile
🧑‍💻백엔드 개발자, 조금씩 꾸준하게

0개의 댓글