전체 글 147

[keycloak 맛보기#10] 세션 및 토큰 관리

1️⃣ 개요Keycloak은 사용자 인증과 권한관리를 위한 Identity And Access management 솔루션이다.IAM 솔루션으로써 SSO(SingleSignOn), 사용자 Federation 등의 기능을 위해서는 세션 및 토큰 관리를 이해하는것이 매우 중요하다.이번 포스팅에서는 Keycloak의 세션 및 토큰 관리에 대해 다뤄보려고 한다.들어가기전에 세션과 토큰에 대한 아주 간단한 개념 정리를 해보자.구분세션 (인증)토큰 (인증+인가)기본 개념서버에 저장되는 사용자 상태 정보클라이언트와 서버 간의 지속적인 연결 상태서버 측에서 메모리나 데이터베이스에 저장됨클라이언트에 저장되는 인증 및 권한 증명서자체적으로 필요한 정보를 포함하는 데이터 조각주로 클라이언트 측에서 관리됨저장 위치서버 측에 저..

🌱 Infra/KeyCloak 2025.03.12

[keycloak 맛보기#9] 사용자 인증(Authentication)

📌 개요📎 공식문서 링크인증은 Client(사람/기기/애플리케이션 등)의 신원을 검증하는것을 말한다.Keycloak은 OAuth2.0 기반의 인증/인가 프로세스를 가지고 있고, Keycloak에서의 인증은 어떻게 사용할 수 있는지 어떤 기능이 있는지 살펴보고자 한다.   📌 인증 흐름 (Authentication flows) 📎 공식문서 링크 인증 흐름이란?인증 흐름이란 클라이언트가 시스템에 접근할 때 거치는 인증 단계의 순서와 방법을 정의한 것을 말한다.Keycloak에서는 인증 흐름을 재사용 할 수 있도록 Template 형태로 정의할 수 있다.Keycloak에서 인증을 어떻게 수행할지 그 방법과 순서를 Authentication Flow로 정의하고,정의된 Authentication Flow를..

🌱 Infra/KeyCloak 2025.03.09

[keycloak 맛보기#8] Federation with LDAP (Kubernetes/minikube) + Grafana 연동까지

📌 개요 LDAP이란? * 참고자료: https://www.okta.com/identity-101/what-is-ldap/LDAP(Lightweight Directory Access Protocol)이란, 디렉터리 서비스를 위한 프로토콜이다.일반적으로 회사에서 부서 및 사용자를 관리하기 위해 사용하며, 사용자/그룹/권한 등의 정보를 저장 및 조회 할 수 있다.dc=example,dc=org (회사) ├── ou=Development (개발부서) │ ├── cn=developer1 │ └── cn=developer2 ├── ou=Sales (영업부서) │ ├── cn=sales1 │ └── cn=sales2 └── ou=HR (인사부서) ├..

🌱 Infra/KeyCloak 2025.02.23

[keycloak 맛보기 #7] Production Keycloak을 위한 설정

들어가기전에, *https://www.keycloak.org/server/configuration-production Keycloak은 수백~수천명의 사용자에게 안전한 인증 및 권한부여를 제공할 수 있도록 설계되어있다.안전하고 안정적인 Keycloak을 프로덕션 환경에 배포하기 위해 설정해야 할 부분들을 확인 해 보자.  1. Keycloak의 Hostname 설정* 공식문서: https://www.keycloak.org/server/hostname ✓ Hostname을 설정해야하는 이유keycloak은 보안상의 이유로 hostname 설정을 필수로한다.▪︎ 설명Keycloak은 OIDC Discovery 엔드포인트, 사용자 비밀번호 변경 엔드포인트 등의 URL이 외부로 공개된다.이때, hostname이..

🌱 Infra/KeyCloak 2025.02.16

[keycloak 맛보기 #6] Keycloak의 인가 전략

개요, 인가란 무엇인가? 들어가기 전에 인가(Authorization)이 무엇인지 한번 더 개념을 정리해보자.인가는 "이 사용자가 특정 리소스나 기능에 접근할 권한이 있는지 확인하는 과정"이다.예를들자면 어떤 사용자가 ID/PW를 입력하고 사진첩 어플리케이션에 로그인했다면, 사용자 본인의 사진첩에만 접근 가능해야하며 다른 사용자의 사진첩에는 접근해서는 안된다.구분개념예시인증Authentication누구인지 확인하는 과정로그인인가Authorization무엇을 할 수 있는지 확인하는 과정내 사진첩에만 접근 즉, 인가란 사용자가 허용된 리소스에만 접근하도록 하는것이 인가의 개념이다.인가를 위해 고려해야하는 요소는 정말 많다.사용자 컨텍스트 (Who): 사용자 신원, 역할, 그룹, 속성, 조직 구조 내 위치리..

🌱 Infra/KeyCloak 2025.02.09

[keycloak 맛보기 #5] Keycloak의 애플리케이션 통합

참고자료책: https://www.yes24.com/Product/Goods/122459785테스트 소스코드: https://github.com/PacktPublishing/Keycloak---Identity-and-Access-Management-for-Modern-Applications-2nd-Edition 통합 방식 설명 Keycloak과 애플리케이션을 통합할 때,  Embedded와 Proxied 방식이 있다. 각 방법은 애플리케이션의 구조와 보안 요구 사항에 따라 선택할 수 있다.구분EmbeddedProxied설명애플리케이션 코드 내에서 Keycloak 어댑터를 직접 사용하여 인증 및 권한 부여를 처리한다.역방향 프록시를 사용하여  Keycloak과의 통신을 처리하는 역방향 프록시를 설정하여 애..

🌱 Infra/KeyCloak 2024.12.17

[keycloak 맛보기 #4] Keycloak의 애플리케이션 보안

웹 애플리케이션 보호  1️⃣ 개요웹 애플리케이션은 기본적으로 인가코드흐름(Authorization Code Flow)를 사용해야하며, PKCE(Proof key for Code Exchange)를 함께 사용하는것이 좋다.인가코드 흐름(Authorization Code Flow)는 아래와 같은 인증 흐름을 가진다.# [초기 로그인 흐름]Browser App Server Keycloak | | | |----(1) 접근 시도------------>| | | ..

🌱 Infra/KeyCloak 2024.12.09

[Redis/Valkey 기초 #1] Object, Data Type 이해하기

📌 Redis Object 개요 Redis 메모리를 저장공간으로 사용하는 In-Memory Key-value 스토어 이다.모든 데이터가 메모리에 저장되므로 빠른 읽기/쓰기가 가능하지만 메모리는 유한한 자원이므로 효율적인 관리가 필수적메모리를 효율적으로 관리할 수 있도록, Redis는 데이터를 Object로 정의하고있다.Redis의 고성능과 효율적인 메모리 사용을 가능하기 위해 Object는 아래와 같은 역할을 한다.데이터 표현모든 키-값 쌍을 RedisObject로 통일하여 표현다양한 데이터 타입(String, List, Hash 등)을 하나의 구조로 관리메모리 최적화데이터 특성에 따라 최적의 인코딩 방식을 자동 선택작은 데이터는 압축된 형태로 저장중복 데이터는 참조 방식으로 저장성능 최적화데이터 접근..

[keycloak 맛보기 #3] 접근권한인가 이해하기

참고자료* 책: https://www.yes24.com/Product/Goods/122459785* 테스트 소스코드: https://github.com/PacktPublishing/Keycloak---Identity-and-Access-Management-for-Modern-Applications-2nd-Edition 실습 준비) Keycloak & 테스트 애플리케이션 세팅 Keycloak 준비Keycloak을 로컬에서 먼저 실행한다.docker run -p 8080:8080 \ -e KEYCLOAK_ADMIN=admin \ -e KEYCLOAK_ADMIN_PASSWORD=admin \ quay.io/keycloak/keycloak \ st..

🌱 Infra/KeyCloak 2024.12.01

[keycloak 맛보기 #2] OpenID Connection 사용자 인증 이해하기

참고자료* 책: https://www.yes24.com/Product/Goods/122459785* 테스트 소스코드: https://github.com/PacktPublishing/Keycloak---Identity-and-Access-Management-for-Modern-Applications-2nd-Edition실습 준비) Keycloak & 테스트 애플리케이션 세팅Keycloak을 로컬에서 먼저 실행한다.docker run -p 8080:8080 \ -e KEYCLOAK_ADMIN=admin \ -e KEYCLOAK_ADMIN_PASSWORD=admin \ quay.io/keycloak/keycloak \ start-dev이후 테스트..

🌱 Infra/KeyCloak 2024.11.25
728x90