Programming-[Backend]/Keycloak

Keycloak - 12. Keycloak 확장

컴퓨터 탐험가 찰리 2024. 8. 10. 20:06
728x90
반응형

KeyCIoak - 모던 애플리케이션을 위한 ID 및 접근관리 | 에이콘출판(주) | 스티안 토르거센, 페드로 이고르 실바 지음, 최만균 옮김

서적을 참고하여 요약한 시리즈 글이다.

 


 

1. 서비스 공급자 인터페이스 이해하기

 

1.1 SPI 구조

Keycloak의 UI, UX 변경, 데이터 및 기능 통합 등을 사용하기 위해 Keycloak이 제공하는 인터페이스들을 사용할 수 있다. 자바에서의 Service Provider Interface(SPI)의 개념이 Keycloak에도 적용되어있다.

 

 

1.2 SPI 목록

spi 목록을 확인하기 위해서는 관리 콘솔의 홈페이지 부분에서 Provider Info 부분을 살펴보면 된다. 아래 그림처럼 social 이라는 검색어를 입력해보면 Keycloak에 social SPI를 적용할 수 있는 Provider가 어떤 종류들이 있는지 확인할 수 있다.

 

 

1.3 커스텀 SPI 패키징

Keycloak은 JAR로 패키징된 사용자 정의 제공자를 사용한다. 이외에 Keycloak이 런타임에 사용자 정의 제공자를 검색하고 초기화할 수 있도록 service descriptor 파일도 포함해야한다. service descriptor 파일은 JAR 파일 내 META-INF/services 디렉터리에 있다.

 

1.4 커스텀 SPI 설치

 

공식문서를 참고해서 추가적으로 공부할 필요가 있는 부분인 것 같다.

https://www.keycloak.org/docs/latest/server_development/#_providers

 

여기서 5. Service Provider Interfaces 부분을 참고하자

 

1.4.1 JAR 배포

JAR 파일을 직접 설치하는 것이 가장 일반적이고 간단한 방법이다. 책에서는 JAR 파일을 $KC_HOME/standalone/deployments 디렉터리에 넣으면 된다는데 공식문서를 보면(공식 문서의 Service Provider Interfaces - Javascript Providers - Create a JAR with the scripts to deploy 부분), providers/ 디렉토리에 넣으라고 한다. docker로 봤을 땐 opt/keycloak/providers 디렉터리가 있다.

 

 

1.4.2 나머지 방법

 

wildfly 방식, EJB 방식에 대해 책에서 상세히 다루지는 않고 있다. 그리고 JBoss 모듈을 기반으로 한다고하는데, keycloak이 버전업되어 module 형태를 지원하는지도 잘 모르겠다. 책에서 기록해놓은 링크도 주소가 바뀐 것 같아서, 향후 필요하다면 관련 내용을 찾아봐야할 것 같다.

 

 

이후 부분

 

이후 부분은 버전업도 되고해서, 책은 참고만 하고 공식 문서를 쭉 공부하는 편이 나을 것 같다!

 

https://www.keycloak.org/docs/latest/server_development/#preface

 


 

 

 

728x90
반응형