Spring Security docs로 공부하기 (#01)

1

Spring Security

목록 보기
1/5

스프링 시큐리티를 처음 접하는 사람들이 정확하게 이해해서 인증, 인가 처리를 구현하는 것은 쉽지 않다.

나 또한 스프링 시큐리티의 진입 장벽이 낮지 않다고 생각하고 단순히 구글링해서 클론코딩으로만 인증, 인가를 구현하는 것은 썩 좋지 않다고 생각한다.

때문에 이번 기회에 Spring Security docs를 읽어보면서 스프링 시큐리티의 동작원리, 인증, 인가 등등 자세히 알아보자.


Updating Dependencies

스프링 시큐리티를 사용하려면 Maven 또는 Gradle을 이용하여 종속성을 업데이트 하면 된다고 한다.

Maven

<dependencies>
	<!-- ... other dependency elements ... -->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-security</artifactId>
	</dependency>
</dependencies>

Gradle

dependencies {
	compile "org.springframework.boot:spring-boot-starter-security"
}

의존성을 추가한 뒤 서버를 실행시키면 아래와 같은 화면이 나타난다.


Spring Boot Auto Configuration

Spring Boot는 자동으로 Spring Security의 기본 구성(서블릿 FilterspringSecurityFilterChain)을 활성화한다.

FilterspringSecurityFilterChain이며, 이는 응용 프로그램 내에 모든 보안(응용 프로그램 URL 보호, 사용자 이름 및 비밀번호 확인, 로그인 양식으로 리디렉션 등)을 담당한다고 한다.

Spring Boot는 많은 설정을 하지는 않지만 많은 작업을 수행할 수 있다.(Spring Security 덕분에)

기능요약은 다음과 같다.

  • 응용 프로그램과의 모든 상호 작용을 위해 인증된 사용자 필요
  • 기본 로그인 양식 생성
  • 사용자 이름 user와 콘솔에서 제공하는 비밀번호를 사용하여 인증
  • BCrypt를 사용해서 비밀번호를 암호화
  • 로그아웃
  • CSRF 공격 방지
  • 세션 고정 보호
  • 보안 헤더 통합
    • 보안 요청을 위한 HTTP Strict Transport Security
    • X-Content-type-Options 통합
    • 캐시 제어(나중에 애플리케이션에서 재정의하여 정적 리소스를 캐싱할 수 있음)
    • X-XSS-Protection 통합
    • 클릭재킹 방지를 위한 X-Frame-Options 통합

0개의 댓글