Spring Security

귀찮Lee·2022년 7월 25일
0

Spring Security

목록 보기
1/13

◎ 스프링 시큐리티(Spring Security)

  • Spring Security

    • Spring Framework 기반의 애플리케이션의 인증(Authentication)과 인가(Authorization or 권한 부여) 기능을 가진 프레임워크

    • 스프링 기반의 애플리케이션에서 보안을 위한 표준, 모든 자바 어플리케이션에 사용할 수 있지만 주로 웹 어플리케이션에서 쓰임

      • 인터넷 환경에서 서비스되는 웹 어플리케이션 특성상 적절한 보안장치가 필수적
    • 스프링의 대부분 프로젝트들처럼 확장성을 고려한 프레임워크

      • 다양한 요구사항을 손쉽게 추가 변경 가능
    • Java 8 이상의 환경이 필요

◎ 필수 용어 및 개념

  • 주체(Principal)

    • 유저, 기기, 시스템 등이 될 수 있지만 보통 유저(사용자)
  • 인증(Authenication)

    • 특정 리소스에 접근하려고 하는 사용자가 누구인지 확인할 때 사용
    • 주체의 신원(identity)을 증명하는 과정
      • 주체는 신원 증명 정보(identity)를 제시, 주체가 유제일 경우 password를 제시
  • 인가 (권한 부여, Authorization)

    • 인증을 마친 유저에게 권한(authority)을 부여하여 특정 리소스에 접근할 수 있게 허가하는 과정
    • 안가는 인증 과정 이후 수행
    • 권한은 ROLE 형태로 부여하는게 일반적
  • 접근 통제 (Access control)

    • 어떤 주체가 어플리케이션 리소스에 접근할지를 제어하는 행위
    • 접근 통제 결정(access control decision)이 뒤따름
    • 리소스의 접근 속성과 유저에게 부여된 권한 또는 다른 속성들을 결정

◎ Spring Security 특징

  • 모든 요청에 대해 인증을 요구

  • 사용자 이름 및 암호를 가진 사용자가 양식 기반으로 인증할 수 있도록 허용

  • 사용자의 로그아웃을 허용

  • CSRF(Cross-Site Requset Forgery) 공격을 방지

  • Session Fixation(세션 고정 공격)을 보호합니다.

  • 보안 헤더 통합

    • HSTS 강화
    • X-Content-TypeOption
    • 캐시 컨트롤 (정적 리소스 캐싱)
    • X-XSS-Protection XSS 보안 : 스크립트 공격 보안
    • 클릭재킹을 방지하는 X-Frame 옵션 통합
  • Servlet API 제공

  • 기타

    • 보안에 필요한 많은 것들을 스프링 시큐리티에서 제공
    • 커스터마이징을 하는데에 있어 간편, Spring Framework의 핵심 기능등을 그대로 활용
    • 개발자가 직접 제로 베이스에서에서 보안 로직을 작성하지 않아도 체계화된 보안 프로세스를 적용 가능

◎ Spring Security 예제

profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!

0개의 댓글