728x90
반응형
1. 서론
키클락이랑 스프링부트랑 연결하는 부분을 마무리하였습니다.
이제 전체 키클락 인증서버가 스프링부트에의해 연결되어있음을 볼 수 있습니다. 우리는 키클락이 다 해주기 때문에 access_token을 발급받을 필요가 없고, 인증 헤더에 명시적으로 무언가를 표시할 필요도 없습니다. 이제는 보안설정에 대해 알아보겠습니다.
2. 본론
일단 메이븐에 다음과 같은 설정을 추가해줍니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
키클락은 KeycloakWebSecurityConfigurerAdapter을 Springboot의 WebSecurityConfigurerAdapter처럼 제공해줍니다. 참 좋군요
@Configuration
@EnableWebSecurity
@ComponentScan(basePackageClasses = KeycloakSecurityComponents.class)
class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
// Submits the KeycloakAuthenticationProvider to the AuthenticationManager
// roles 앞에 ROLE_ 와 같이 접두사를 붙이지 않도록 도와준다.
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
KeycloakAuthenticationProvider keycloakAuthenticationProvider = keycloakAuthenticationProvider();
keycloakAuthenticationProvider.setGrantedAuthoritiesMapper(new SimpleAuthorityMapper());
auth.authenticationProvider(keycloakAuthenticationProvider);
}
// keycloak.json 대신에 Spring Boot yml 파일을 이용하도록 돕는다.
@Bean
public KeycloakSpringBootConfigResolver KeycloakConfigResolver() {
return new KeycloakSpringBootConfigResolver();
}
// Specifies the session authentication strategy
@Bean
@Override
protected SessionAuthenticationStrategy sessionAuthenticationStrategy() {
return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.authorizeRequests()
.antMatchers("/customers*", "/users*")
.hasRole("user")
.anyRequest()
.permitAll();
}
}
3. 결론
이전과 똑같이 잘 동작함을 확인하면 됩니다.
728x90
반응형
'Dev' 카테고리의 다른 글
8. [SSO] Keycloak User Storage SPI 번역해보기 (0) | 2020.10.12 |
---|---|
7. [SSO] Keycloak Default DB 변경해보기 (2) | 2020.10.08 |
5. [SSO] Keycloak & Springboot 적용기 - 2 (0) | 2020.09.27 |
4. [SSO] Keycloak & Springboot 적용기 (2) | 2020.09.26 |
[SSO] Keycloak 공식문서 따라해보기 - 3 (2) | 2020.09.25 |