
이 책은 Keycloak을 사용한 Identity and Access Management(IAM)에 대한 포괄적인 가이드를 제공합니다. 설치, 애플리케이션 보안, OAuth 2.0 및 OpenID Connect와 같은 표준, 생산 환경 구성, 사용자 관리, 인증, 확장과 같은 고급 주제를 다룹니다. 2판은 Keycloak, OpenID Connect 및 OAuth 2.0의 힘을 활용하여 현대 애플리케이션을 보호하는 데 중점을 둡니다.
이 책이 다루는 내용
- Chapter 1: Keycloak에 대한 간단한 소개와 직접 설치 및 실행하는 방법을 제공합니다. 또한 Keycloak 관리자 콘솔과 계정 콘솔에 대한 소개를 포함합니다.
- Chapter 2: 샘플 애플리케이션을 통해 Keycloak으로 첫 번째 애플리케이션을 보호하는 방법을 설명합니다. 이 샘플은 단일 페이지 애플리케이션과 REST API로 구성됩니다.
- Chapter 3: Keycloak이 지원하는 표준에 대한 간단한 소개와 비교를 제공하여 애플리케이션을 Keycloak과 안전하고 쉽게 통합할 수 있도록 합니다.
- Chapter 4: OpenID Connect 표준을 활용하여 사용자를 인증하는 방법을 가르칩니다. 이 챕터는 애플리케이션이 OpenID Connect를 통해 Keycloak에 인증하는 방법을 보고 이해할 수 있는 샘플 애플리케이션을 활용합니다.
- Chapter 5: OAuth 2.0 표준을 활용하여 REST API 및 기타 서비스에 대한 액세스를 승인하는 방법을 가르칩니다. 샘플 애플리케이션을 통해 애플리케이션이 OAuth 2.0을 통해 액세스 토큰을 얻고 보호된 REST API를 호출하는 방법을 직접 경험할 수 있습니다.
- Chapter 6: 웹, 모바일, 네이티브 애플리케이션뿐만 아니라 REST API 및 기타 백엔드 서비스를 포함한 다양한 유형의 애플리케이션을 보호하는 모범 사례를 다룹니다.
- Chapter 7: Go, Java, 클라이언트 측 JavaScript, Node.js 및 Python을 포함한 다양한 프로그래밍 언어에 대한 Keycloak과의 애플리케이션 통합 단계를 제공합니다. 또한 모든 프로그래밍 언어나 프레임워크로 구현된 애플리케이션을 보호하기 위해 리버스 프록시를 사용하는 방법도 다룹니다.
- Chapter 8: Keycloak에서 사용자에 대한 정보를 사용하여 액세스 관리를 수행하는 방법을 다룹니다. 역할과 그룹, 사용자에 대한 사용자 지정 정보를 포함합니다.
- Chapter 9: TLS 활성화, 관계형 데이터베이스 구성, 추가 규모와 가용성을 위한 클러스터링을 포함하여 Keycloak을 생산 환경에 구성하는 방법을 가르칩니다.
- Chapter 10: Keycloak에서 제공하는 사용자 관리 관련 기능을 자세히 살펴봅니다. 또한 LDAP, 소셜 네트워크, 외부 ID 공급자와 같은 외부 소스에서 사용자를 페더레이션하는 방법을 설명합니다.
- Chapter 11: Keycloak에서 제공하는 다양한 인증 기능을 다룹니다. 2단계 인증 활성화와 보안 키를 포함합니다.
- Chapter 12: Keycloak이 서버 측 세션을 활용하여 인증된 사용자를 추적하는 방법을 이해하는 데 도움을 줍니다. 또한 애플리케이션에 발급된 토큰을 관리하는 모범 사례를 설명합니다.
- Chapter 13: Keycloak을 확장하는 방법을 설명합니다. 로그인 페이지와 계정 콘솔과 같은 사용자 대면 페이지의 모양과 느낌을 수정하는 방법을 다룹니다. 또한 Keycloak의 강력한 기능 중 하나인 대량의 확장 포인트에 대한 사용자 지정 확장을 제공하는 방법을 간단히 소개합니다.
- Chapter 14: 생산 환경에서 Keycloak을 보호하는 모범 사례를 제공합니다. 또한 애플리케이션을 보호할 때 따를 수 있는 몇 가지 모범 사례를 간단히 소개합니다.
이 챕터는 Keycloak을 소개하고 설치 및 실행 단계를 제공합니다. 관리자 및 계정 콘솔, 영역 생성, 사용자, 그룹, 역할 생성을 다룹니다.
책 요약에서: 이 챕터에서 Keycloak을 설치하고 실행하는 방법을 배웠습니다. 또한 Keycloak 관리자 콘솔을 사용하여 영역을 생성하고, 사용자를 생성하고, 그룹을 생성하고, 역할을 생성하는 방법을 배웠습니다. Keycloak 계정 콘솔에 대한 간단한 소개도 받았습니다.
단일 페이지 애플리케이션과 REST API를 포함한 샘플 애플리케이션을 Keycloak으로 보호하는 방법을 설명합니다. 로그인 및 백엔드 호출을 포함합니다.
책 요약에서: 이 챕터에서 프론트엔드 웹 애플리케이션과 백엔드 REST API로 구성된 첫 번째 애플리케이션을 보호하는 방법을 배웠습니다. 또한 프론트엔드가 Keycloak과 인증하는 방법과 백엔드를 안전하게 호출하는 방법을 배웠습니다.
OAuth 2.0, OpenID Connect, JWT 및 SAML 2.0의 개요를 제공하며 IAM에서의 역할을 설명합니다.
책 요약에서: 이 챕터에서 OAuth 2.0을 사용하여 애플리케이션과 타사 애플리케이션이 사용자 대신 HTTP 서비스에 제한된 액세스를 제공하는 방법을 배웠습니다. 또한 OpenID Connect를 사용하여 사용자를 인증하고 사용자에 대한 제한된 정보를 얻는 방법을 배웠습니다. JWT를 토큰으로 활용하는 방법과 SAML 2.0이 오늘날 여전히 관련된 이유도 배웠습니다.

OpenID Connect를 사용한 사용자 인증을 시연합니다. 디스커버리 엔드포인트, ID 토큰 및 로그아웃 메커니즘을 포함합니다.
책 요약에서: 이 챕터에서 OIDC 인증 흐름의 상호작용을 직접 경험했습니다. 애플리케이션이 디스커버리 엔드포인트를 통해 Keycloak의 엔드포인트를 발견하는 방법을 배웠습니다. 사용자를 인증하는 방법과 ID 토큰의 내용을 이해하는 방법을 배웠습니다. 또한 사용자가 로그아웃하는 방법을 처리하는 방법도 배웠습니다.

액세스 토큰 얻기, 사용자 동의, 토큰 범위 제한 및 검증을 다룹니다.
책 요약에서: 이 챕터에서 OAuth 2.0 인증 코드 그랜트 유형을 사용하여 액세스 토큰을 얻는 방법을 직접 경험했습니다. 또한 사용자 동의를 요구하는 방법과 청중, 역할 및 범위를 통해 액세스 토큰에 부여된 액세스를 제한하는 방법을 배웠습니다. 액세스 토큰을 검증하는 방법도 배웠습니다.

웹, 모바일, 네이티브 앱 및 서비스를 보호하는 모범 사례.
책 요약에서: 이 챕터에서 내부 애플리케이션과 외부 애플리케이션의 차이를 배웠습니다. 외부 애플리케이션은 사용자 대신 리소스에 제한된 액세스를 제공합니다. 또한 서버 측 웹 애플리케이션과 SPA를 포함한 웹 애플리케이션을 보호하는 방법을 배웠습니다. 네이티브 및 모바일 애플리케이션을 보호하는 방법을 배웠습니다. 베어러 토큰으로 REST API 및 기타 서비스 유형을 보호하는 방법도 배웠습니다.

Go, Java, JavaScript, Node.js와 같은 다양한 언어에 대한 통합 단계와 프록시 사용.
책 요약에서: 이 챕터에서 사용하는 기술 스택에 따라 Keycloak과 다양한 유형의 애플리케이션을 통합하는 방법을 배웠습니다. 또한 Keycloak과 통합할 때 사용할 수 있는 다양한 옵션과 필요에 가장 적합한 옵션을 선택하는 방법도 배웠습니다.
RBAC, GBAC, ABAC 및 중앙 집중식 승인을 위한 Keycloak 사용을 논의합니다.
책 요약에서: 이 챕터에서 애플리케이션의 보호된 리소스에 대한 액세스를 승인하기 위해 선택할 수 있는 다양한 전략을 배웠습니다. 또한 Keycloak을 활용하여 애플리케이션에 다양한 승인 전략을 제공하는 방법을 배웠습니다.
TLS, 데이터베이스 설정, 클러스터링 및 로드 밸런싱을 다룹니다.
책 요약에서: 이 챕터에서 생산 환경에 Keycloak을 구성하는 주요 단계를 다루었습니다. 여기서 제공된 정보를 통해 Keycloak을 생산 환경에 배포하는 주요 측면을 이해하고 안전하고 확장 가능한 배포를 만들 수 있습니다.

사용자 관리, LDAP, Active Directory 및 ID 공급자와의 페더레이션.
책 요약에서: 이 챕터에서 Keycloak의 사용자 관리 주요 측면을 제시했습니다. 사용자를 로컬로 관리하거나 LDAP 또는 ID 공급자와 같은 외부 저장소에서 페더레이션할 수 있음을 배웠습니다. 또한 영역을 소셜 ID 공급자와 통합하는 방법과 사용자가 Keycloak 계정 콘솔을 통해 계정을 관리할 수 있는 방법을 배웠습니다.

인증 흐름, 비밀번호, OTP, WebAuthn 및 강력 인증.
책 요약에서: 이 챕터에서 Keycloak에서 사용자를 인증하는 방법에 대한 더 자세한 정보를 제공했습니다. 먼저 인증 흐름 개념과 사용자를 인증하는 새 흐름을 만드는 방법을 소개했습니다. 또한 비밀번호 관리와 OTP 및 WebAuthn을 사용한 강력 인증 활성화를 배웠습니다.
세션 관리, 토큰 처리, 취소 및 모범 사례.
책 요약에서: 이 챕터에서 토큰 및 세션 관리의 주요 측면을 배웠습니다. 이 챕터에서 배운 내용을 활용하여 보안, 사용자 경험 및 애플리케이션과 Keycloak의 성능에 미치는 영향을 고려한 세션 만료 및 토큰 취소에 대한 명확한 정책을 정의할 수 있습니다.

테마 사용자 지정, 인증, 이벤트 리스너 및 SPI.
책 요약에서: 이 챕터에서 Keycloak의 주요 측면 중 하나인 확장성을 배웠습니다. Keycloak을 확장하기 위한 주요 개념인 SPI와 사용자 지정 제공자를 배포하는 방법을 배웠습니다. 또한 Keycloak의 모양과 느낌을 사용자 지정하는 방법과 인증 흐름을 확장하는 방법을 배웠습니다.

Keycloak 배포 및 애플리케이션을 보호하는 모범 사례.
책 요약에서: 이 챕터에서 생산 환경에 Keycloak을 안전하게 배포하는 여러 중요한 측면을 배웠습니다. Keycloak 자체와 데이터베이스를 보호하는 방법을 배웠습니다. 또한 애플리케이션을 보호하는 몇 가지 모범 사례를 배웠습니다.
