스프링 부트 공식 레퍼런스를 한글로 번역한 문서입니다.
전체 목차는 여기에 있습니다.
목차
- 12.13.1. Switch off the Spring Boot Security Configuration
- 12.13.2. Change the UserDetailsService and Add User Accounts
- 12.13.3. Enable HTTPS When Running behind a Proxy Server
12.13. Security
이번 섹션에선 스프링 부트와 함께 스프링 시큐리티를 사용할 때 묻는 질문들을 포함해서, 스프링 부트와 보안과 관련있는 질문들을 다룬다.
스프링 시큐리티를 자세히 알아보려면 스프링 시큐리티 프로젝트 페이지를 방문해봐라.
12.13.1. Switch off the Spring Boot Security Configuration
애플리케이션에 WebSecurityConfigurerAdapter
나 SecurityFilterChain
빈을 가지고 있는 @Configuration
을 정의하면 스프링 부트의 디폴트 웹 애플리케이션 시큐리티 설정이 꺼진다.
12.13.2. Change the UserDetailsService and Add User Accounts
AuthenticationManager
나 AuthenticationProvider
, UserDetailsService
타입 @Bean
을 제공하면, InMemoryUserDetailsManager
를 위한 디폴트 @Bean
이 생성되지 않는다. 따라서 스프링 시큐리티에 있는 모든 기능 셋을 (다양한 인증 옵션같은) 사용할 수 있다.
사용자 계정을 추가하는 가장 쉬운 방법은 자체 UserDetailsService
빈을 제공하는 거다.
12.13.3. Enable HTTPS When Running behind a Proxy Server
주요 엔드포인트를 전부 HTTPS를 통해서만 접근할 수 있도록 하는 건 어떤 애플리케이션에서든 중요한 일이다. 서블릿 컨테이너로 톰캣을 사용하는 경우, 스프링 부트는 몇 가지 environment 세팅을 감지하면 톰캣의 자체 RemoteIpValve
를 자동으로 추가하며, HttpServletRequest
에서 신뢰할 수 있는 요청인지 아닌지 판단해줄 거다 (실제 SSL 종료 처리를 하는 프록시 서버가 앞에 있을 때에도). 관례적인 이름을 따르는 요청 헤더(x-forwarded-for
, x-forwarded-proto
)가 있는지에 따라 결정하는 표준 동작이기 때문에, 대부분의 프론트 엔드 프록시에서 동작할 거다. 다음 예제처럼 application.properties
에 몇 가지 항목을 추가하면 이 밸브를 켤 수 있다:
server.tomcat.remoteip.remote-ip-header=x-forwarded-for
server.tomcat.remoteip.protocol-header=x-forwarded-proto
server:
tomcat:
remoteip:
remote-ip-header: "x-forwarded-for"
protocol-header: "x-forwarded-proto"
(이 프로퍼티 중 하나만 있어도 밸브를 켠다. 아니면 WebServerFactoryCustomizer
빈을 사용해 TomcatServletWebServerFactory
를 커스텀하면서 RemoteIpValve
를 추가해도 된다.)
스프링 시큐리티에서 모든 (또는 일부) 요청에 시큐어 채널을 요구하도록 설정하려면, 자체 SecurityFilterChain
빈을 추가해 아래 HttpSecurity
설정을 넣는 것을 고려해봐라:
@Configuration
public class MySecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
// Customize the application security ...
http.requiresChannel().anyRequest().requiresSecure();
return http.build();
}
}
Next :Hot Swapping
hot swapping과 관련된 how to 가이드
전체 목차는 여기에 있습니다.