스프링 시큐리티 - 주요 기능

김진아·2024년 9월 11일

스프링부트

목록 보기
6/6

스프링 시큐리티란?

자바 기반의 애플리케이션을 위한 강력한 인증 및 권한 부여 프레임워크이다. 애플리케이션의 보안을 관리하기 위해 다양한 기능을 제공하고, 인증, 권한 부여, 공격 방어 및 보안 관련 설정을 쉽게 처리할 수 있게 도와준다.

이번 포스팅에서는 간단하게 어떤 기능을 갖고있는지 알아보고, 이후에 실제 내가 사용하는 세부기능에 대해서 자세한 포스팅을 할 예정이다.



주요 기능


인증 (Authentication)

사용자 또는 시스템의 신원을 확인하는 과정이다.

  • 폼 기반 인증 : 로그인 폼을 사용하여 인증
  • HTTP Basic 인증 : HTTP 헤더를 통해 인증
  • OAuth2 / OpenID Connect : 소셜 로그인 및 외부 인증 제공자 사용
  • LDAP : 디렉토리 서비스 사용
  • JWT : JSON Web Tokens으로 상태 없는 인증

권한 부여 / 인가 (Authorization)

권한 부여는 인증된 사용자가 접근할 수 있는 자원을 결정하는 과정이다.

  • 역할 기반 접근 제어 : 사용자 역할에 따라 접근 제어
  • 세부 권한 제어 : 메소드나 자원 단위로 권한 설정
  • 메소드 보안 : @PreAuthorize와 같은 애너테이션으로 메소드 접근 제어

보안 필터링

보안 필터는 HTTP 요청 및 응답을 가로채고 처리한다.

  • 필터 체인 : 여러 보안 필터를 사용하여 요청을 처리
  • CSRF 보호 : Cross-Site Request Forgery 공격 방지

세션 관리

세션 관리는 사용자의 세션을 안전하게 관리하는 기능을 제공한다.

  • 세션 고정 공격 방지 : 로그인 시 세션 ID 변경
  • 세션 타임아웃 : 비활동 시 세션 만료

암호화

암호화는 민감한 데이터를 안전하게 보호하는 데 사용된다.

  • 패스워드 암호화 : 사용자 패스워드를 안전하게 해싱하여 저장

보안 헤더

보안 헤더는 HTTP 응답에 추가하여 웹 애플리케이션의 보안을 강화한다.

  • XSS 방어 : Content Security Policy(CSP) 사용
  • Clickjacking 방지 : X-Frame-Options 헤더 사용
  • HSTS : HTTPS를 강제하여 중간자 공격 방지

CORS

  • CORS 설정 : 다른 도메인에서의 요청을 제어한다.
profile
https://develop-chick.tistory.com/ 첫번째 블로그

0개의 댓글