1. Keycloak 보안이번글에서는 Keycloak 서버 자체를 보호하는 몇가지 중요한 측면을 알아보겠습니다. Keycloak과 해당 데이터베이스는 웹 애플리케이션 방화벽(WAF, Web Application Firewall)을 사용해 사용자 및 애플리케이션으로부터 격리되며 모든 네트워크 요청이 암호화되고 데이터베이스도 암호화됩니다.Keycloak에 송수신되는 트래픽에 TLS(Transport Layer Security)를 사용해야하는 이유를 먼저 알아보겠습니다. 2. Keycloak에 대한 통신 암호화keycloak과의 통신에는 엔드 투 엔드 암호화 (end-to-end encryption) 사용을 권장합니다. 즉 HTTP가 아닌 HTTPS를 항상 사용해야 합니다. 현재는 HTTPS의 가장 최근 보..
이전 글들에서 Keycloak이 IAM(Identity and Access Management) 솔루션으로서 제공하는 것에 대해 알아봤습니다.Keycloak을 확장해 기존 기능을 사용자 요구에 맞게 변경하거나 신규 기능을 추가해 제한된 설정 이외의 작업을 수행할 수 있습니다. 또한 Keycloak 디자인에 대한 개요와 IAM을 자신의 생태계에 신속하게 배치하는 것뿐만 아니라 IAM을 사용자의 요구에 맞게 빠르게 적용하는 것이 왜 완벽한 선택인지 알아보겠습니다. 1. 서비스 공급자 인터페이스 이해하기자바 언어에 이미 익숙하다면 서비스 제공자 인터페이스(SPI)를 알고 있을 것입니다. 그렇지 않은 경우 코드베이스를 변경하지 않고 확장 가능한 Java 애플리케이션의 기능을 추가하거나 변경하기 위한 플러그 가능..
Keycloak은 통합 인증 및 인가 서비스 역할 외에도 세션 및 토큰 관리 시스템 역할을 합니다.인증 프로세스의 일환으로 Keycloak은 서버 사이드 세션을 생성하고 토큰과 연동할 수 있습니다. 해당 세션을 통해 Keycloak은 세션이 시작된 인증 컨텍스트의 상태를 유지하고 사용자 및 클라이언트의 활동을 추적하며, 토큰의 유효성을 확인해 사용자와 클라이언트가 언제 재인증을 수행해야하는지 결정할 수 있습니다.Keycloak을 통한 토큰 및 토큰 기반 세션 관리 방법과 이러한 작업을 수행할때 주의해야 할 다양한 부분에 대해 알아보겠습니다. 1. 세션 관리세션 관리는 사용자 경험, 보안 그리고 성능과 같은 중요한 지표에 직접적인 영향을 미칩니다.사용자 경험 관점에서 Keycloak은 세션에 활용해 사용자..
1. 인증 흐름 이해keycloak에서 인증은 인증 흐름에 따라 ID 인증 방법을 정의하기 위해 그룹화된 일련의 순차적 단계 또는 실행으로 구성됩니다. 흐름에 따라 인증 요구 사항 및 realm에 인증을 수행하는 주체의 ID 검증 단계도 달라집니다.keycloak은 최종 사용자 및 클라이언트가 realm에 인증하는 방법을 보여주는 정교한 흐름 집합을 갖고 있습니다. 최종 사용자의 경우, 인증 흐름은 일반적으로 브라우저를 중개자로 사용합니다. 클라이언트 단계는 엔드포인트에 대한 백채널 요청을 기반으로 합니다.keycloak은 흐름을 정의하는 것과 관련해서 매우 유연함을 갖고 있습니다. 기본적으로 realm은 최종 사용자 및 클라이언트를 인증하기 위한 가장 일반적인 요구사항을 처리하는 빌트인 정의로 생성되..
이 글에서는 사용자 생성 및 관리 방법, 사용자 자신의 계정을 관리하는 방법, 자격증명을 관리하는 방법과 사용자를 인증하기 위한 서로 다른 ID 저장소 및 ID 제공자 통합 방법 그리고 OpenID Connect, SAML(Security Assertion Markup Language), LDAP(Lightweight Directory Access Protocol)와 같은 오픈 프로토콜을 사용해 사용자의 정보를 가져오는 방법과 같은 ID관리 및 연합과 관련돼 Keycloak에서 제공하는 기능들에 대해 자세히 알아볼것입니다. 1. 로컬 사용자 생성Keycloak에서 신규 사용자를 생성하는 경우, Users 메뉴를 클링하면 해당 realm에 등록된 모든 사용자가 포함된 리스트가 표시됩니다. 리스트의 우측 상..
이번글에서는 다양한 인가 전략(Authorization strategies) 옵션과 RBAC(Role-Based Access Control), GBAC(Group-Based Access Control), OAuth2 scopes 그리고 ABAC(Attribute-Based Access Control)과 같은 접근 제어 메커니즘을 사용해 애플리케이션 인가를 활성화하고 사용하는 방법을 작성하겠습니다. 또한 해당 옵션의 차이점과 가장 적합한 전략을 선택하는 방법에 대해서도 작성할 예정입니다. 1. 인가란?모든 인가 시스템은 사용자가 리소스에 접근하고 해당 리소스에 대한 작업 가능 여부를 판단합니다. ID 공급자로서 Keycloak은 애플리케이션에게 토큰을 발행합니다. 따라서 애플리케이션은 해당 토큰이 인가 데..
이번글에서는 다양한 유형의 애플리케이션을 보호하기 위한 보안 원리와 베스트 프랙티스에 대해 작성하겠습니다.웹, 모바일 및 네이티브 애플리케이션을 보호하는 방법과 REST API, gRPC, Websocket 및 기타유형의 서비스를 포함한 다양한 유형의 서비스를 보호하기 위해 bearer 토큰을 이용하는 방법을 작성합니다. 1. 내부 및 외부 애플리케이션애플리케이션을 보호할대 가장 먼저 고려해야할 사항은 애플리케이션이 내부 애플리케이션인지 혹은 외부 애플리케이션인지 확인하는 것입니다.내부 애플리케이션은 기업이 보유한 애플리케이션입니다. 애플리케이션을 누가 개발했는지 또는 호스팅 방법은 중요하지 않습니다. 애플리케이션은 상용 애플리케이션, SaaS(Software as a Service)에서 호스팅되는 애플..
1. keycloak에 DB 연동하기 (PostgreSQL)https://www.keycloak.org/downloads downloads - KeycloakKeycloak is a Cloud Native Computing Foundation incubation project © Keycloak Authors 2024. © 2024 The Linux Foundation. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundawww.keycloak.org keycloak 공식 홈페이지에서 keycloak 다운로드합니다.다운로..
1. OAuth 2.0 을 이용한 접근 권한 인가OAuth2.0은 현재 널리 사용되는 업계 표준 프로토콜입니다. OAuth2.0의 핵심은 전체 웹 사이트 생태계를 서로 통합할 수 있는 OAuth2.0 프레임워크가 위치합니다. OAuth2.0을 사용하면 서드파티 어플리케이션과 사용자 데이터를 쉽게 공유하고, 사용자 자격증명을 공유할 필요가 없으며 공유할 데이터를 제어할 수 있습니다. OAuth2.0은 서드파티 애플리케이션을 제어하는 것 외에도 자체 애플리케이션에 대한 접근 제한에도 매우 유용합니다. 서드파티 애플리케이션이 다른 사이트에서 사용자 이름과 패스워드를 요청하는 것이 일반적인 것처럼 기업 내부에서도 이는 일반적인 패턴이었습니다. 예를 들어 LDAP 사용자 이름과 패스워드를 요청하고 기업 내부의 다..
1. keycloak 소개Keycloak은 단일 페이지 애플리케이션(single-page applications), 모바일 애플리케이션 및 REST API와 같은 최신 애플리케이션에 초점을 맞춘 오픈소스 ID 및 접근관리 도구입니다. Keycloak은 강력한 인증을 포함해 완전히 사용자가 원하는대로 설정할 수 있는 로그인 페이지를 제공합니다. 또한 암호 복구, 주기적인 암호 업데이트 설정, 이용약관 동의 등과 같은 다양한 기능을 제공합니다. 해당 기능들을 사용하기 위해 추가적인 설정이나 코딩을 할 필요없습니다. 사용자에게 표시되는 모든 페이지는 사용자의 테마를 지원하므로 페이지의 UI를 손쉽게 바꿀 수 있습니다. Keycloak을 통해 인증을 수행하면 애플리케이션의 서로 다른 인증 메커니즘이나 암호저..
- Total
- Today
- Yesterday