본문 바로가기
관리자

Programming-[Backend]/Keycloak

(35)
keycloak benchmark 성능 테스트 by kubernetes 보호되어 있는 글입니다.
[TIL] Keycloak - Google IDP Social Login시 prompt 설정 Google IDP Prompt 설정 keycloak에서 Google IDP를 설정하여 소셜 로그인을 할 때, 일부 환경(시크릿 모드 등)에서는 계정을 선택하는 화면이 나오지 않고 바로 로그인 되거나, 에러가 발생하는 경우가 발생한다. 이럴 경우 Keycloak admin console -> Identity providers -> Google -> Prompt 설정 값에 select_account 값을 넣어주면 된다. 그럼 이를 구글 요청 시 구글에서 인식하여 항상 계정 선택 화면을 띄우게 된다. 여러 개의 구글 계정을 갖고 있는 사람들이 많으므로 이런 설정을 해두는 것이 좋다.
keycloak user info endpoint 설정 user info endpoint keycloak에서 사용자의 정보가 변경되었을 때, 클라이언트가 해당 사용자 정보를 조회해서 최신 정보를 확인해야하는 경우가 있을 수 있다. 이를 위해 Keycloak은 user info endpoint를 제공한다. 이는 OIDC 표준 endpoint이기도 하다. 사용을 위해서는 특정 User가 특정 Client에 로그인하고 Access Token을 발급받은 상태여야한다. 그리고 User Info endpoint의 Authorization header에 이 토큰을 전달해줘야한다. Access Token을 발급받기 위해 client을 생성한다. 그리고 해당 client에 user info 요청이 들어왔을 때 정보를 전달해주도록 mapper 설정을 해줘야한다. Clients..
keycloak haproxy compose 내용 보호되어 있는 글입니다.
keycloak User 정보 마스킹 처리 보호되어 있는 글입니다.
keycloak 비밀번호 알고리즘 argon2, pbkdf2-sha256, 마이그레이션 필요 여부 keycloak 기본 설정keycloak 25버전 이상의 기본 비밀번호 해싱 알고리즘은 argon2로 되어있다. argon2는 2015년 알고리즘 대회에서 우승한 알고리즘이고, 기존 알고리즘들을 보완하여 나온 최신의 알고리즘이다. argon2에 대해기존 알고리즘들은 해싱이 빠르고, 그만큼 해킹할 수 있는 brute force식 공격이 편했다. 그래서 salt를 추가하고, 해싱을 반복하여 해킹 시도 한 번에 들어가는 시간이 늘어나도록 하였다. 그런데, 성능을 위해 빠른 해싱을 했다가 다시 시간이 늘어나도록 하는 것은 비효율적이고 동적이지도 못했다. 이에 따라 argon2와 같은 알고리즘은, 해싱을 시도하는 컴퓨터의 cpu, memory 등 리소스를 자동으로 탐색하고 그에 맞게 해싱 반복 횟수를 조절하여 환..
keycloak k8s 배포 1. 배경keycloak을 k8s로 배포하는 방법에 대해 정리한다. 여러 가지 방법들이 있겠지만 요즘 현업에서 가장 많이 사용하는 방식은 k8s로 배포하는 방식이다. 그리고 이전 글에서 정리한 것처럼 infinispan을 외부로 빼서 따로 처리하는 방법도 있겠으나(https://whitepro.tistory.com/1083, https://whitepro.tistory.com/1013, https://whitepro.tistory.com/1015), 이번에는 편의를 위해 embedded 형태로 keycloak과 infinispan은 1개 pod의 JVM 내에 배포하고 infinispan에 대해서는 신경쓰지 않는 기본적인 방법으로 배포를 하는 방법에 대해 정리한다.   2. Dockerfile다음과 같은 ..
[TIL] keycloak first_name, last_name 제거해도 google 소셜 로그인 시 값 생성됨 배경keycloak에서 기본적으로 생성되는 User Profile의 attribute 중, first name과 last name이 있다. 사용자의 이름 정보가 굳이 중요하지 않고, 개별 attribute로 저장하기 위해 이 두 속성값을 제거했는데 구글 소셜 로그인 시에는 자동으로 이 값들이 매핑되어 Users 화면에서 보이는 현상이 있었다.   원인keycloak에서 google용 Identity Provider의 기본 Mapping 설정상, first_name, last_name이 있어서 그렇다. 아래 화면처럼 Google IDP의 Mapper 설정이 비어있지만, spi 코드상 기본적으로 first_name, last_name이 세팅되도록 되어있다.  또 하나 중요한 점은, User를 정의하는 use..