1부. Keycloak 시작하기1장. Keycloak 시작하기__기술 요구 사항__Keycloak 소개 __Keycloak 설치 및 실행____도커에서 Keycloak 실행____OpenJDK를 통한 Keycloak 설치 및 실행__Keycloak 관리 및 계정 콘솔 활용____Keycloak 관리자 콘솔 시작하기____Keycloak 계정 콘솔 시작하기__요약__질문2장. 애플리케이션 보안 설정__기술 요구 사항__샘플 애플리케이션 이해__애플리케이션 실행__애플리케이션에 로그인하기__백엔드 REST API 안전하게 호출하기__요약__질문2부. Keycloak을 통한 애플리케이션 보안3장. 간략한 표준 소개__OAuth 2.0을 통한 애플리케이션 접근 권한 인가__OpenID Connect를 통한 사용자 인증__JWT를 토큰으로 활용__SAML 2.0이 여전히 중요한 이유__요약__질문4장. OpenID Connect를 활용한 사용자 인증__기술 요구 사항__OpenID Connect playground 실행__검색 엔드포인트 이해__사용자 인증__ID 토큰 이해하기____사용자 프로파일 업데이트____사용자 정의 속성 추가____ID 토큰에 역할 추가__UserInfo 엔드포인트 호출__사용자 로그아웃 처리____로그아웃 시작____ID 및 접근 토큰 만료 활용____OIDC 세션 관리 활용____OIDC 백-채널 로그아웃 활용____OIDC 프론트-채널 로그아웃 활용____로그아웃은 어떻게 처리해야 하는가?__요약__질문__참고문헌5장. OAuth 2.0을 활용한 접근 권한 인가__기술 요구 사항__OAuth 2.0 플레이그라운드 실행__접근 토큰 획득__사용자 동의 요청____역할을 사용해 토큰 액세스 제한하기____토큰 접근을 제한하기 위한 범위 활용__접근 토큰 검증__요약__질문__참고문헌6장. 다양한 애플리케이션 유형 보안__기술 요구 사항__내부 및 외부 애플리케이션 이해__웹 애플리케이션 보호____서버 사이드 웹 애플리케이션 보호____전용 REST API가 포함된 SPA 보호____중개 REST API를 사용하는 SPA 보호____외부 REST API가 포함된 SPA 보호__네이티브 및 모바일 애플리케이션 보호__REST API 및 서비스 보호__요약__질문__참고문헌7장. Keycloak과 애플리케이션 통합__기술 요구 사항__통합 아키텍처 선택__통합 옵션 선택__Golang 애플리케이션 통합____Golang 클라이언트 설정__자바 애플리케이션 통합____Quarkus 사용__Creating a Quarkus resource server ____SpringBoot 사용____Keycloak 어댑터 활용__자바스크립트 애플리케이션 통합__Node.js 애플리케이션 통합____Node.js 클라이언트 생성____Node.js 리소스 서버 생성__파이썬 애플리케이션 통합____파이썬 클라이언트 생성____파이썬 리소스 서버 생성__리버스 프록시 활용__자체 통합 코드 구현을 권장하지 않음__요약__질문__참고문헌8장. 인가 전략__인가 이해하기__RBAC 활용__GBAC 활용____그룹 멤버십을 토큰에 매핑__OAuth2 범위 활용__ABAC 활용__통합 Keycloak 인가 서버 활용__요약__질문__참고문헌3부. Keycloak 설정 및 관리9장. 프로덕션 환경을 위한 Keycloak 설정__기술 요구 사항__Keycloak 호스트네임 설정____프론트엔드 URL 설정____백엔드 URL 설정____admin URL 설정__TLS 활성화__데이터베이스 설정__클러스터링 활성화__리버스 프록시 설정____노드 부하 분산____클라이언트 정보 전송____세션 어피니티 유지__Keycloak 환경 테스트____부하 분산 및 시스템 대체 작동 테스트____프론트엔드 및 백엔드 URLs 테스팅__요약__질문__참고문헌10장. 사용자 관리__기술 요구 사항__로컬 사용자 관리____로컬 사용자 생성____사용자 자격증명 관리____사용자 정보 획득 및 검증____자동 등록 활성화____사용자 속성 관리__LDAP 및 액티브 디렉터리 통합____LDAP 매퍼 이해____그룹 동기화____역할 동기화__서드파티 ID 제공자 통합____OpenID Connect ID 제공자 생성__소셜 ID 제공자 연동__사용자 데이터 관리__요약__질문__참고문헌11장. 사용자 인증__기술 요구 사항__인증 흐름 이해____인증 흐름 설정__패스워드 사용____패스워드 정책 변경____사용자 패스워드 리셋__OTPs 사용____OTP 정책 변경____사용자가 OTP 사용 여부를 선택할 수 있도록 허용____OTP를 통한 사용자 인증 활성화__웹 인증 활용____인증 흐름에서 WebAuthn 활성화____보안 기기 등록 및 인증__강력한 인증 사용__요약__질문__참고문헌12장. 토큰 및 세션 관리__기술 요구 사항__세션 관리____세션 생명주기 관리____활성 세션 관리____사용자 세션 조기 종료____쿠키 및 세션과의 관련성 이해__토큰 관리____ID 토큰 및 접근 토큰 생명주기 관리____리프레시 토큰 생명주기 관리____리프레시 토큰 로테이션 활성화____토큰 폐기__요약__질문__참고문헌13장. Keycloak 확장__기술 요구 사항__서비스 공급자 인터페이스 이해하기____사용자 정의 제공자 패키징____사용자 정의 제공자 설치____KeycloakSessionFactory 및 KeycloakSession 컴포넌트 이해____제공자의 생명주기 이해____제공자 설정__인터페이스 변경____테마 이해____신규 테마 생성 및 적용____템플릿 확장____테마 관련 SPI 확장__인증 흐름 사용자 정의__다른 사용자 정의 포인트 확인__요약__질문__참고문헌4부. 보안 고려 사항14장. Keycloak 및 애플리케이션 보안__Keycloak 보안____Keycloak에 대한 통신 암호화____Keycloak 호스트 이름 설정____Keycloak에서 사용하는 서명 키 순환____주기적인 Keycloak 업데이트____외부 저장소의 시크릿을 Keycloak으로 로드____방화벽 및 침입 방지 시스템을 통한 Keycloak 보안__데이터베이스 보안____방화벽을 사용한 데이터베이스 보안____데이터베이스 인증 및 접근 제어 활성화____데이터베이스 암호화__클러스터 통신 보안____클러스터 인증 활성화____클러스터 통신 암호화__사용자 계정 보안__애플리케이션 보안____웹 애플리케이션 보안____OAuth 2.0 및 OpenID 커넥트 베스트 프랙티스____Keycloak 클라이언트 설정__요약__질문__참고문헌__평가