관련기술 모음
- https://memo.polypia.net/archives/3821
Keycloak vs CAS 선택은
국내에서는 Springboot을 많이 쓰다보니 CAS를 많이 쓸 것 같지만
사용의 난해성 때문에 Keycloak이 더 많이 사용된다
(CAS는 딱 이정도만 해보고 포기 https://memo.polypia.net/archives/3783)
Keycloak을 서비스에 적용하려고 보면 약간의 문제가 있다
- application 서버와 별도 인스턴스를 띄워야한다는 문제
- 회원 디비가 application과 별도로 관리된다는 문제
해야하는 일
- 로그인, 회원가입 화면 만들기 – 보통 테마만 추가
- 커스텀 회원정보 수정화면/기능 만들기 application에 또는 keycloak 커스텀
- 회원가입, 로그인 로그 저장
- 회원가입, 로그인 이벤트 전달
어려운 부분
- 회원디비를 application에 두고 연동해서 사용
이건 매우 어렵다. 잘 안된다. 극한의 커스터마이징을 하려면… 그냥 따로 만드는게 낫다
서비스 초반에는 있는 그대로 쓰자…. - 디비를 공유
캐시때문에 싱크가 안맞다 - 그냥 무엇이건 커스터마이징…
간단하게 결론을 내면
뭘 쓰건 기본기능 그대로 쓸게 아니라면 사용이 쉽지는 않다.
초반에는 서비스를 오픈소스에 맞춰서 쓰자
Keycloak 사용후기
keycloak은 간편한 편이다.
그런데 서비스 개발용이 아니라 블로그, 위키 등 운영 용으로 만들어진게 아닐까?
개발자가 서비스를 개발할 때 사용하기는 불편하다.
(14버전쯤)추가기능 구현도 도큐먼트 대로 되지도 않고 엄청 복잡했는데
한달정도 보다보니 구조파악이 되고 좀 할만해졌다. 소스보고 알아서 분석해서 써야한다.
그냥 도큐먼트만 보고 하려면 rest api 호출하는것도 쉽지가 않다.(공식문서에 주소를 엉터리로 적어놔서 ㅋ)
keycloak 소스코드와 포럼의 질문답변을 잘 읽어봐야한다
JBoss 스타일로 만들어져서 Spring생태계에 익숙한 개발자가 접근하기 쉽지 않다
jas-rx 기반 resteasy, wildfly 서버, jboss의존성 관리 등등..
- https://github.com/keycloak
- https://github.com/ScriptonBasestar-io/keycloak-providers
- https://github.com/thomasdarimont/keycloak-user-storage-provider-demo
- https://www.baeldung.com/java-keycloak-custom-user-providers
- https://github.com/thomasdarimont/keycloak-extension-playground
- https://github.com/zonaut/keycloak-extensions