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를 제공한다.
--작성중--
Clients에서 Login을 선택
Installation 탭을 선택
Format Option의 "Keycloak OIDC JSON" 클릭
application.yml 에 작성하여 SSO 연동을 할 때 필요한 json 데이터다.
spring boot app 이 아래의 내용을 알고 있어야 keycloak 서버에 접속하여 인증,인가를 요청할 수 있다.
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을 참고하자.
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 로그인