Programming-[Backend]/Keycloak (45) 썸네일형 리스트형 keycloak NICE 본인 인증 구현 - iOS 팝업, 사파리 ITP 문제 1. ITP(지능형 추적 방지)가 뭔가요?ITP(Intelligent Tracking Prevention)는 애플이 Safari 브라우저에 도입한 초강력 개인정보 보호 기술입니다. 사용자가 여러 웹사이트를 돌아다닐 때 광고 회사들이 쿠키를 이용해 사용자를 추적(Tracking)하는 것을 막기 위해, 제3자 쿠키(Third-party Cookie)의 접근을 아주 엄격하게 차단합니다.2. 왜 '일반 팝업'에서 세션(로그인 상태)이 날아갈까?이해하기 쉽게 '본인 인증' 팝업을 띄우는 상황을 상상해 보세요.사용자가 내 웹사이트(A.com)에서 로그인한 상태로 '인증하기' 버튼을 누릅니다.window.open 등으로 새 팝업창이 뜹니다.팝업창 안에서 본인확인기관(NICE.com)으로 페이지가 이동하여 인증을 진행.. keycloak B2C 적용 속성값, Organization 정리 보호되어 있는 글입니다. Keycloak Realm간 권한 매핑 보호되어 있는 글입니다. keycloak service account 설정 방법(ver 26.2.1~) service account service account 방식은 client가 token을 갖고 resource server에 요청하는 방식이 아니라, resource server간 자원을 요청하기 위한 통신을 목적을 갖는다. 이때 keycloak 설정에 대해서 간략히 기록해둔다. keycloak public client 설정보통 아래 그림과 같은 구조로 클라이언트 - 서버 구조를 만들어두고 keycloak을 이용하여 인증한다. resource server를 keycloak client로 등록할 때, public client로 standard flow만 체크하여 OAuth 2.1의 authentication flow가 적용되도록 한다. Service Account 설정: Credential Clien.. keycloak용 백엔드 서버: 다중 약관 동의 설계 배경백엔드 서버는 keycloak을 보조하기 위한 역할로 존재. 기본적으로 keycloak은 인증만 목적으로하는 모듈임CIBA(Client Initiated Backchannel Authentication) 등 중간 서버가 있어야하는 인증 방식이 필요한 경우다중 약관 동의, 서비스별 추가 데이터 등이 필요한 경우 다중 약관 동의 항목 설계 필요성keycloak에서는 기본적으로 단일 약관 내용만 제공하고, 동의 여부도 timestamp를 기록하기 위한 update 방식을 채택하므로 요구사항을 충족하기에는 어려움이 있음. 개별로 SPI, entity 등을 개발하여 keycloak에 적용하는 경우 keycloak version up 대응 시 위험 요소로 작용할 수 있음 따라서 백엔드 서버에서 약관 동의 항목용.. keycloak v26.1.2 image build issue( w/ Docker engine 28.x.x) 배경keycloak을 26.0.1 버전을 사용하다가, 26.1.2 버전으로 업그레이드 하면서 Docker image build 관련 이슈가 발생했다. 아래 코드처럼 Dockerfile을 작성하였는데 이미지 빌드까지는 잘 되는데 Runtime에 에러가 발생했다. Dockerfile 예시ARG AWS_ECR_REPOSITORY_FE_URIFROM ${AWS_ECR_REPOSITORY_FE_URI}:latest AS baseFROM quay.io/keycloak/keycloak:26.2.1 AS builderWORKDIR /opt/keycloakENV KC_HEALTH_ENABLED=${KC_HEALTH_ENABLED:-true} \ KC_METRICS_ENABLED=${KC_METRICS_ENABLE.. Keycloak Infinispan 통신 방식 정리: udp, jdbc-ping, kubernetes 배경keycloak은 여러 instance간 infinispan cache를 통해 세션 정보 등을 동기화한다. 그리고 이런 동기화에 쓰일 통신의 스택 정보를 KC_CACHE_STACK 옵션을 통해 설정할 수 있다. https://www.keycloak.org/server/caching#_transport_stacks 26.0.1 버전까지 udp가 기본 스택이였으나 26.2.1로 버전업을 하면서 jdbc-ping 방식이 default로 변경되었다고 한다. 어짜피 k8s 환경이라 kubernetes 스택을 사용하고 있었는데, 이번 기회에 정리를 좀 하고 가야겠다는 생각이 들었다. 각 방식별 특징 1. UDPUDP는 보통 네트워크에서 TCP/UDP로 OSI 7 Layer 개념에서 4 Level Layer로.. keycloak upstream header is too big. 502 Gateway Error w/ nextAuth 배경keycloak을 k8s headless service로 운영하고, 앞단에 nginx proxy 서버를 두는 구조에서 클라이언트 쪽에서 아래 메시지와 함께 에러가 발생했다. upstream sent too big header while reading response header from upstream Syntax: client_header_buffer_size size; Default: client_header_buffer_size 1k; Context: http, server 그러면서 502 Gateway Error가 나는 문제였다. 원인클라이언트에서 nextAuth.js 라는 라이브러리를 사용하고 있었는데, keycloak에서 내보내는 3가지 쿠키(KEYCLOAK_SESSION, KEYCLOA.. 이전 1 2 3 4 ··· 6 다음