본문 바로가기

전체 글

(220)
[Keycloak]OIDC를 활용한 사용자 인증 및 로그아웃 개요OpenID Connect(OIDC)를 통해 애플리케이션과 Keycloak 간의 인증 및 데이터 요청 흐름을 분석하고, 주요 상호작용을 세부적으로 다룹니다.주제실습용 OIDC Playground 애플리케이션 실행Discovery 엔드포인트 이해사용자 인증 흐름 분석ID 토큰 및 UserInfo 활용배경지식OIDC에서의 scope 의미와 사용 방법[정의]scope는 OAuth 2.0 및 OpenID Connect(OIDC)에서 클라이언트가 요청할 수 있는 권한의 범위를 정의하는 매개변수입니다.이를 통해 클라이언트가 액세스하려는 사용자 정보 또는 API 리소스의 종류를 명시할 수 있습니다. 사용자의 동의를 기반으로 애플리케이션이 접근할 수 있는 데이터 범위를 제어하는 데 사용됩니다.OIDC의 scope는..
[Keycloak]애플리케이션 보안설정: 인증 및 권한 관리 예시 애플리케이션의 기능Keycloak을 통합한 애플리케이션은 다음과 같은 주요 기능을 제공합니다:Keycloak 로그인: 안전한 인증 메커니즘 제공.사용자 이름 표시: ID Token의 사용자 정보를 활용하여 사용자 이름 표시.사용자 프로필 사진 표시: ID Token에서 사용자 사진 정보(picture)를 추출하여 표시.ID 토큰 및 접근 토큰 발급: 인증 후 ID Token과 Access Token 제공.토큰 초기화: 갱신된 토큰 정보를 즉시 반영.보안 엔드포인트 호출: 백엔드의 보안 API와 통신.엔드포인트 설명/public: 인증 없이 접근 가능한 공개 엔드포인트./secured: 인증된 사용자만 접근 가능한 보호된 엔드포인트.Keycloak 인증 흐름애플리케이션 다이어그램인증 흐름흐름 설명사용..
[Keycloak]Install keycloak with helm charts https://www.keycloak.org/getting-started/getting-started-kubeKeycloak 설치 (Helm Charts 사용)Helm Chart 정보Helm Chart 버전: 17.3.6애플리케이션 버전: 22.0.5➜ helm pull bitnami/keycloak --version 17.3.6 --untar➜ helm install jeff-keycloak . -f ./values.yaml NAME: jeff-keycloakLAST DEPLOYED: Sun Nov 17 22:30:04 2024NAMESPACE: jeffSTATUS: deployedREVISION: 1TEST SUITE: NoneNOTES:CHAR..
[Keycloak]개요 설명Keycloak은 오픈소스 아이덴티티 및 액세스 관리(IAM) 솔루션으로, OAuth 2.0, OpenID Connect, SAML과 같은 표준 프로토콜을 지원합니다. 이를 통해 인증(Authentication), 권한 부여(Authorization), 사용자 관리(User Management)를 간소화하며, 싱글 사인온(SSO), 소셜 로그인, 사용자 디렉토리 통합 등의 강력한 기능을 제공합니다.주요 용어Realm: Keycloak에서 다중 테넌시 환경을 구현하는 논리적 단위로, 각 Realm은 독립적인 인증 및 권한 부여 정책을 가집니다.Client: Keycloak이 보호하는 애플리케이션이나 서비스로, OAuth 2.0에서의 클라이언트와 유사합니다.User Federation: 외부 디렉토리 서..
[Keycloak]OAuth, OpenID Connect, SAML, Zero Trust 개념 공통점과 차이점특징 OAuth OpenID Connect (OIDC) SAML특징OAuthOpenID Connect (OIDC)SAML주 목적권한 부여 (Authorization)사용자 인증 (Authentication)인증 및 권한 부여프로토콜 기반OAuth 2.0OAuth 2.0 + ID 계층 추가XML 기반 (XML 문서 교환)토큰 형식액세스 토큰 (Access Token)액세스 토큰, ID 토큰 (Access & ID Token)SAML 어설션 (SAML Assertion)사용 예시API 권한 부여로그인 및 사용자 인증기업 애플리케이션의 SSO주요 전송 데이터액세스 토큰ID 토큰과 사용자 정보SAML 어설션(XML 문서)OAuth (Open Authorization)설명:OAuth는 사용자가 비밀..
[Architecture]뉴스 피드 시스템설계 개요이 시스템의 핵심은 효율적인 데이터 분배 메커니즘인 'Fanout'에 있습니다. Fanout-on-Write와 Fanout-on-Read 전략을 적절히 조합하여, 수백만 명의 사용자에게 실시간으로 관련성 높은 콘텐츠를 제공할 수 있습니다.이 시스템은 크게 피드 발행과 뉴스 피드 생성 두 가지 주요 프로세스로 구성됩니다. 피드 발행 과정에서는 새로운 콘텐츠를 효율적으로 저장하고 배포하며, 뉴스 피드 생성 과정에서는 개별 사용자에 맞춘 최신 콘텐츠를 신속하게 조합합니다.성능 최적화를 위해 캐싱, CDN, 비동기 처리 등의 기술을 활용하며, 이를 통해 대규모 트래픽과 데이터를 효과적으로 관리합니다.시스템 요구사항뉴스 피드 시스템은 다음과 같은 요구사항을 충족해야 합니다.모바일 및 웹 플랫폼 지원사용자가 새..
[Istio]Configuring istio-ingressgateway with AWS NLB AWS Load Balancer Controller AnnotationsAWS EKS Network Load BalancingIstio Ingress Gateway using Network Load Balancer on EKS개요목표: istio-ingressgateway의 로드밸런서를 CLB에서 NLB로 변경배경: Istio Helm Chart 설치 시 기본적으로 istio-ingressgateway는 AWS CLB로 설정됨주의사항교차 영역 로드밸런싱을 활성화해야 함AWS NLB는 Kubernetes에서 Alpha 기능으로, 프로덕션 환경에서 사용 시 주의 필요Kubernetes Bug #69264로 인해, 동일한 영역에서 Istio를 실행하는 두 개 이상의 Kubernetes 클러스터에서 AWS NL..
[Istio]Configuring istio-ingressgateway with AWS ALB 개요이 설정은 AWS EKS(Elastic Kubernetes Service)에서 Istio의 인그레스 게이트웨이를 AWS Application Load Balancer(ALB)와 함께 사용하는 방법을 설명합니다. 이를 통해 AWS WAF 같은 ALB 전용 서비스를 활용할 수 있습니다.전제 조건AWS LoadBalancer Controller가 클러스터에 설치되어 있어야 합니다.설정 단계1. Service Type 변경기본적으로 Istio Ingress Gateway는 LoadBalancer 타입의 서비스로 설정되어 있어 Classic Load Balancer(CLB)가 자동으로 생성됩니다. ALB를 사용하기 위해 서비스 타입을 NodePort로 변경해야 합니다.istio-gateway Helm 차트의 ..