spring boot 와 keycloak 연결하기

freejia·2021년 9월 11일
1

keycloak

목록 보기
2/2

1. 키클락의 Access Token 만들기

login 이라는 이름의 클라이언트를 선택하면 Setting 페이지로 연결된다.
아래의 설정을 입력하고, "Save"버튼을 눌러 반영하자.

Valid redirect URIs: 클라이언트 url
Client protocol: openid-connect
Access type: credential <-이것을 선택해야 Credentials탭 생성 및 secret 토큰 조회 가능
Service Accounts Enabled: ON
Authorization Enabled: ON

Credentials 탭에서 Secret 에 적혀진 시크릿 아이디를 확인한다.
시크릿 아이디는 백엔드에서 데이터를 주고받을 때 필요하다.

키클락은 access token을 생성하고 갱신하기 위한 REST API를 제공한다.
--작성중--

Keycloak OIDC JSON 생성

Clients에서 Login을 선택
Installation 탭을 선택
Format Option의 "Keycloak OIDC JSON" 클릭

application.yml 에 작성하여 SSO 연동을 할 때 필요한 json 데이터다.
spring boot app 이 아래의 내용을 알고 있어야 keycloak 서버에 접속하여 인증,인가를 요청할 수 있다.

2. Spring boot 애플리케이션 생성

build.gralde 에 dependency를 추가

spring boot keycloak stater에는 tomcat같은 web server가 내장되어 있다.

// spring web
implementation 'org.springframework.boot:spring-boot-starter-web'

// security (keycloak)
implementation("org.keycloak:keycloak-spring-boot-starter")

maven의 경우, pom.xml에 아래의 내용을 추가한다.
Maven Central을 참고하자.

3. 설정 클래스 추가

KeycloakSpringBootConfigResolver 라는 Bean을 주입해야 한다.

@Configuration
public class KeycloakConfig {

    @Bean
    public KeycloakSpringBootConfigResolver keycloakConfigResolver() {
        return new KeycloakSpringBootConfigResolver();
    }
}

참고
A Quick Guide to Using Keycloak with Spring Boot
Spring Boot Adapter
spring-boot-keycloak
Securing Spring Boot REST APIs with Keycloak
Securing a Spring Boot Application with Keycloak
질문답변
JBoss Keycloak
Keycloak REST API, Naver 로그인

profile
코딩 리딩 라이딩💛

0개의 댓글