2017-12-20 32 views
2

스프링 부트 애플리케이션을보다 안전하게 만드는 데 도움을 드리고 싶습니다.스프링 부트 및 키 클로크

현재 보안이 구현되지 않은 RESTful API가 있습니다. 이 API는 HTTP 요청 (GET, POST, PUT ...)을 통해 다른 스프링 부팅 응용 프로그램에서 액세스합니다.

최근에는 키 클로크 (kecloak)를 사용하여 안전한 스프링 부팅 응용 프로그램을 만드는 방법을 보여주는 자습서 인 REDHAT을 살펴 보았습니다.

이 보안 조합 (springsecurity-keycloak)을 데스크톱 응용 프로그램 (Java에서도)이 클라이언트 인 클라이언트로 사용하는 방법을 배우고 싶습니다. 어떤 충고라도 도움이 될 것입니다.

1) 봄 부팅 Keycloak Adapter을 사용하여 다음 중 하나를

당신은 여기에 2 가지 옵션이 있습니다, 셀소

답변

0

을 주셔서 감사합니다.

2) 또는 KeyCloak과 스프링 OAuth2 패키지를 사용하십시오 (Keycloak는 다른 OAuth2 서버이기 때문에). 다음은 Keycloak에서 전달 된 JWT (공유 키 기반)와 작동하는 샘플 구성입니다.

@Configuration 
@EnableResourceServer 
@EnableGlobalMethodSecurity(prePostEnabled = true) 
public class JwtSecurityConfig extends ResourceServerConfigurerAdapter{ 

    @Override 
    public void configure(ResourceServerSecurityConfigurer config) { 
     config.tokenServices(createTokenServices()); 
     config.resourceId(the aud claim that you setup under Keycloak/realm/mappers); 
    } 

    @Bean 
    public DefaultTokenServices createTokenServices() { 
     DefaultTokenServices defaultTokenServices = new DefaultTokenServices(); 
     defaultTokenServices.setTokenStore(createTokenStore()); 
     return defaultTokenServices; 
    } 

    private TokenStore createTokenStore(){ 
     return createJwtTokenStore(); 
    } 

    @Bean 
    public TokenStore createJwtTokenStore() {    
     return new JwtTokenStore(createJwtAccessTokenConverter()); 
    } 

    @Bean 
    public JwtAccessTokenConverter createJwtAccessTokenConverter() { 
     JwtAccessTokenConverter converter = new JwtAccessTokenConverter(); 
     converter.setSigningKey(shared secret that is configured in keycloak client); 
     return converter; 
    } 
} 
+0

정말 고마워요. 정말 감사드립니다. 불편을 끼쳐 드리지 않으시면 [이 게시물] (https://stackoverflow.com/questions/48027176/simple-example-using)에서 좀 더 pratical aproach로 답변을 작성해주십시오. -spring-boot-and-keycloack). 다시 감사합니다. –