Jinsu's Technical Blog
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (250)
      • Java (18)
      • Spring Framework (33)
        • Toby's Spring 3.1 (6)
        • Spring IoC (6)
        • TDD (6)
        • Reflection (6)
        • AOP (6)
      • Spring Boot (11)
      • Spring Security (22)
      • Database (17)
        • Mysql (2)
        • JDBC (2)
        • JPA (13)
      • Build and Development Tools (3)
        • Maven (1)
        • Gradle (1)
        • Lombok (1)
      • Network (12)
      • Apache Tomcat (11)
      • Microservices Architecture (33)
      • Linux (9)
      • React (10)
      • Docker (22)
      • OAuth (10)
      • DevOps (2)
      • Git (2)
      • HTML (1)
      • CSS (1)
      • JavaScript (1)
      • Problem and Solution Guide (8)
        • Java (1)
        • Spring Framework (4)
        • Reflection (1)
        • Dynamic Proxy (1)
        • JPA (1)
      • Note-Taking (23)
  • 홈
  • 태그
  • 방명록
Microservices Architecture

AWS S3 인스턴스 생성 및 IAM 그리고 Access/Secrete Key 생성

AWS S3 인스턴스 생성 1. AWS에 로그인 후, Search 창에 S3를 입력후 해당 페이지로 이동합니다. 2. 사이드 메뉴바에서 Buckets를 선택합니다. 그리고 Create bucket 버튼을 선택합니다. 3. 버킷 이름을 작성합니다. Amazon S3의 버킷 이름 규칙은 일반 목적 버킷과 디렉터리 버킷에 대해 각각 적용됩니다.일반 목적 버킷 이름 규칙길이: 3~63자.문자 사용: 소문자, 숫자, 점(.), 하이픈(-)만 사용 가능.시작과 끝: 문자나 숫자로 시작하고 끝나야 함.연속 점 금지: 두 개의 점이 연속으로 올 수 없음.IP 형식 금지: IP 주소 형식(예: 192.168.5.4)으로 지정 불가.특정 접두사 및 접미사 금지:접두사: xn--, sthree-, sthree-configu..

2024. 12. 24. 10:33
Spring Security

Authentication Resolver

✅ Authentication Resolver는 Spring Security에서 인증(Authentication) 객체를 해결(Resolve)하거나 생성하는 역할을 담당하는 개념입니다. 주로 Spring Security의 인증 흐름에서, 인증 정보를 어떤 방식으로 처리할지를 결정합니다. 일반적으로 Spring Security에 Authentication 객체를 전달하기 위해 Custom Resolver를 작성하거나 커스텀 로직을 구현할 때 사용됩니다.1. Authentication Resolver란?Authentication Resolver는 사용자의 인증 정보를 해석(Resolve) 하고, 적절한 Authentication 객체를 생성하거나 반환하는 컴포넌트입니다. HttpServletReques..

2024. 12. 18. 15:19
Spring Security

SecurityContext

Spring Security는 인증된 사용자 정보를 SecurityContext에 저장합니다. 이를 통해 애플리케이션 전반에서 현재 인증된 사용자의 정보를 조회하고 사용할 수 있습니다.SecurityContext란?SecurityContext는 Spring Security에서 인증된 사용자 정보를 저장하는 컨테이너입니다. SecurityContextHolder를 통해 현재 요청 스레드에서 접근할 수 있습니다. Authentication 객체를 저장하며, 인증된 사용자 정보 및 권한을 담고 있습니다.SecurityContext의 저장 과정사용자 인증 인증 필터(예: UsernamePasswordAuthenticationFilter)가 사용자의 ID/비밀번호를 검증합니다.Authentication 객체..

2024. 12. 18. 15:17
Spring Security

Authentication Filter, Authentication Manager, Authentication Provider

✅ Authentication Filter, Authentication Manager, Authentication Provider는 Spring Security의 핵심 컴포넌트로서 인증(Authentication) 과정을 처리하는 역할을 합니다. 각각의 개념과 역할을 자세히 설명해 드리겠습니다.1. Authentication Filter (인증 필터)정의Authentication Filter는 사용자의 요청에서 인증 정보를 추출하고 인증을 시도하는 Filter입니다. 주로 HTTP 요청의 Authorization 헤더, 폼 데이터, 쿠키 등에서 인증 정보를 가져옵니다. 역할클라이언트 요청에서 인증 정보(예: 사용자명/비밀번호, 토큰)를 추출합니다. AuthenticationManager에 인증 처리..

2024. 12. 18. 15:14
OAuth

OpenID Connect (OIDC)

✅ 이 JSON 데이터는 OAuth 2.0 및 OpenID Connect (OIDC) 표준을 기반으로 토큰 정보를 담고 있습니다. 여기에는 Access Token, ID Token, 그리고 기타 메타데이터가 포함되어 있습니다. 각 항목과 함께 개념을 하나씩 자세히 살펴보겠습니다.1. 전체 구조 개요이 JSON은 OpenID Connect 프로토콜을 사용하여 인증 및 인가를 수행한 결과입니다.키설명access_tokenAPI에 접근할 때 사용하는 Access Tokenscope발급된 토큰의 권한 범위id_token사용자 인증 정보가 담긴 ID Tokentoken_type토큰의 유형 (Bearer: OAuth 2.0에서 주로 사용)expires_in토큰의 유효 시간 (초 단위)2. access_token (..

2024. 12. 18. 11:59
OAuth

/.well-known/openid-configuration

✅ /.well-known/openid-configuration 은 OpenID Connect (OIDC) 표준에서 정의된 엔드포인트로, OpenID Connect Provider (OP)의 메타데이터를 제공하는 역할을 합니다.1. OpenID Connect란?OpenID Connect (OIDC)는 OAuth 2.0을 확장한 사용자 인증 프로토콜입니다. OIDC는 OAuth 2.0의 권한 부여에 더해, 사용자의 인증 정보를 안전하게 제공하기 위해 사용됩니다. 주로 로그인, 토큰 기반 인증을 위해 사용됩니다. 2. .well-known/openid-configuration의 역할이 엔드포인트는 OpenID Connect 서버의 설정 정보(메타데이터)를 JSON 형식으로 제공합니다. 클라이언트 애플..

2024. 12. 18. 11:44
OAuth

인가 코드 그랜트 타입과 클라이언트 크레덴셜 그랜트 타입

✅ 맞습니다! OAuth 2.0에서는 "인가 코드 그랜트 타입"과 "클라이언트 크레덴셜 그랜트 타입"이 존재하지만, 동작 방식과 목적이 다릅니다. 1. 인가 코드 그랜트 타입 (Authorization Code Grant Type)목적: 사용자가 개입하는 방식으로, 사용자 인증과 권한 부여를 위해 사용됩니다. 사용 사례: 사용자 인증이 필요하고, 클라이언트가 사용자의 권한으로 API를 호출할 때 사용 동작 흐름클라이언트가 사용자를 Authorization Server로 리다이렉트합니다.사용자는 로그인 및 권한 부여를 수행합니다. Authorization Server는 인가 코드를 발급하고 클라이언트로 리다이렉트합니다. 클라이언트는 인가 코드를 받아 서버에 전달해 Access Token을 요청합니..

2024. 12. 18. 11:16
OAuth

Client Credentials Grant Type

✅ Client Credentials Grant Type은 OAuth 2.0의 인증 방식 중 하나로, 클라이언트 애플리케이션이 자체적으로 인증하고 액세스 토큰을 발급받는 방식입니다. 이 방식은 사용자 개입 없이 클라이언트 자체가 인증 주체가 되는 경우에 사용됩니다.1. 사용 사례서버 간 통신: 사용자 정보가 필요 없는, 백엔드 서비스 간의 통신 API 접근: 클라이언트가 자체 권한으로 API를 호출할 때 비즈니스 로직: 특정 작업을 수행하기 위한 클라이언트 자체 인증예를 들어 마이크로서비스 환경에서 서비스 A가 서비스 B의 API를 호출할 때 사용자 대신 서비스 자체를 인증하는 경우 사용됩니다.2. 흐름 (Flow)다음은 Client Credentials Grant Type의 단계적 흐름입니다:클라이..

2024. 12. 18. 10:15
OAuth

OAuth 2.0 액세스 토큰 발급 방법

1. OAuth2 인증 서버 설정 (SecurityConfig)SecurityConfig 클래스는 OAuth2 인증 서버와 클라이언트를 설정하는 코드입니다.코드 설명@Configurationpublic class SecurityConfig { // 1. 인증 서버 필터 체인 설정 @Bean @Order(1) public SecurityFilterChain asFilterChain(HttpSecurity http) throws Exception { OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http); http.getConfigurer(OAuth2AuthorizationServerConfigurer.class) ..

2024. 12. 17. 23:57
OAuth

Spring Authorization Server 구성

1. OAuth2 Authorization Server란?OAuth2 Authorization Server는 클라이언트 애플리케이션이 사용자 데이터에 접근할 수 있도록 액세스 토큰을 발급해 주는 서버입니다.예를 들어, 사용자가 Google 로그인을 통해 특정 애플리케이션에 접근하는 경우, Google의 Authorization Server가 동작합니다.1.1 핵심 개념Authorization Grant Type 클라이언트가 사용자 데이터를 요청할 때 사용하는 방식입니다. Authorization Code: 인증 코드 발급 후 액세스 토큰 발급 (가장 많이 사용) Client Credentials: 서버 간 통신 시 사용 Password Grant (Deprecated): 사용자 이름과 비밀번호를 ..

2024. 12. 17. 14:58
OAuth

Authorization Code

Authorization Code는 OAuth 2.0에서 사용되는 인증 및 인가 프로세스의 핵심 요소 중 하나입니다.특히 Authorization Code Grant 플로우에서 클라이언트(애플리케이션)가 액세스 토큰(Access Token)을 발급받기 위해 인증 서버로부터 받는 임시 코드입니다.Authorization Code의 동작 원리클라이언트(예: 웹 애플리케이션, 모바일 앱)가 리소스 소유자(사용자)를 대신하여 인증 서버에 접근 권한을 요청합니다. 사용자는 인증 서버에서 로그인 및 권한 승인을 수행합니다. 인증 서버는 클라이언트에게 Authorization Code를 전달합니다. 클라이언트는 받은 Authorization Code를 이용해 Access Token을 요청합니다. 인증 서버는 ..

2024. 12. 17. 11:30
OAuth

Proof Key(PKCE)

Proof Key는 일반적으로 "Proof Key for Code Exchange (PKCE)"를 의미하며, OAuth 2.0에서 보안을 강화하기 위해 사용되는 토큰 교환 방식을 보호하는 메커니즘입니다.PKCE는 "픽시"라고도 불리며, 주로 공개 클라이언트(예: 모바일 앱, SPA와 같은 브라우저 기반 앱)에서 코드 중간자 공격(Authorization Code Interception Attack)을 방지하기 위해 설계되었습니다.Proof Key for Code Exchange (PKCE)란?PKCE는 OAuth 2.0의 Authorization Code Grant 흐름에서 다음과 같은 보안 문제를 해결하기 위해 도입된 메커니즘입니다.중간자 공격: 악의적인 사용자가 Authorization Code를 가..

2024. 12. 17. 11:28
OAuth

투명 토큰(Transparent Token)과 불투명 토큰(Opaque Token)

투명 토큰(Transparent Token)과 불투명 토큰(Opaque Token)은 OAuth 2.0과 JWT 등 인증 시스템에서 사용되는 토큰의 유형을 의미합니다. 이 둘의 차이는 토큰을 어떻게 처리하고 읽는지에 있습니다.1. 투명 토큰 (Transparent Token)정의투명 토큰은 토큰 자체에 정보(클레임)가 포함되어 있어서, 별도의 서버 요청 없이도 토큰을 해석하고 검증할 수 있습니다.특징자체 내용으로 정보 확인 가능 토큰 안에 사용자 정보, 권한, 만료 시간 등이 포함됩니다. 일반적으로 JWT(Json Web Token) 형태로 구현됩니다. 검증 비용 감소 토큰을 디코딩하면 즉시 내용을 확인할 수 있어 리소스 서버가 별도의 인증 서버에 요청할 필요가 없습니다. 구조: 보통 3가지..

2024. 12. 17. 10:50
OAuth

OAuth(Open Authorization)

OAuth(Open Authorization)는 제3자 서비스에게 사용자의 리소스 접근 권한을 위임하는 인증 및 인가 프로토콜입니다.주로 소셜 로그인이나 API 접근 권한 부여에서 사용되며, 사용자 비밀번호를 공유하지 않고 안전하게 권한을 부여할 수 있도록 합니다.OAuth의 핵심 개념인증(Authentication) 사용자가 누구인지 확인하는 과정입니다. 인가(Authorization) 확인된 사용자에게 특정 리소스 접근 권한을 부여하는 과정입니다.Access Token 인가가 완료된 후 제공되는 권한 부여 토큰입니다. 이 토큰을 통해 제3자 서비스가 사용자의 리소스에 접근합니다. Resource Owner (리소스 소유자) 데이터를 소유한 사용자. 예: 사용자의 계정 정보. Client ..

2024. 12. 17. 10:16
Apache Tomcat

ActiveMQ와 Kafka

ActiveMQ와 Kafka는 모두 메시징 시스템이지만 역할과 사용 방식에 차이가 있습니다.둘 다 Producer(생산자)와 Consumer(소비자)를 통해 메시지를 전달하는 구조이지만, 서로 다른 특성을 가지고 있습니다.1. ActiveMQActiveMQ는 전통적인 메시지 브로커로, JMS(Java Message Service) 표준을 따르는 메시징 솔루션입니다.특징: Point-to-Point (큐): 메시지를 한 명의 소비자(Consumer)만 받습니다. Publish-Subscribe (토픽): 메시지를 여러 소비자에게 전달합니다. 단순한 메시지 처리에 적합하고 트랜잭션 지원이 뛰어납니다. 구조: Producer: 메시지를 큐나 토픽에 보냅니다. Consumer: 메시지를 큐 또는 토픽..

2024. 12. 17. 00:17
  • «
  • 1
  • 2
  • 3
  • 4
  • ···
  • 17
  • »

공지사항

  • Jinsu's GitHub

전체 카테고리

  • 분류 전체보기 (250)
    • Java (18)
    • Spring Framework (33)
      • Toby's Spring 3.1 (6)
      • Spring IoC (6)
      • TDD (6)
      • Reflection (6)
      • AOP (6)
    • Spring Boot (11)
    • Spring Security (22)
    • Database (17)
      • Mysql (2)
      • JDBC (2)
      • JPA (13)
    • Build and Development Tools (3)
      • Maven (1)
      • Gradle (1)
      • Lombok (1)
    • Network (12)
    • Apache Tomcat (11)
    • Microservices Architecture (33)
    • Linux (9)
    • React (10)
    • Docker (22)
    • OAuth (10)
    • DevOps (2)
    • Git (2)
    • HTML (1)
    • CSS (1)
    • JavaScript (1)
    • Problem and Solution Guide (8)
      • Java (1)
      • Spring Framework (4)
      • Reflection (1)
      • Dynamic Proxy (1)
      • JPA (1)
    • Note-Taking (23)

블로그 인기글

전체 방문자

오늘
어제
전체
Powered by Privatenote Copyright © Jinsu's Technical Blog All rights reserved. TistoryWhaleSkin3.4

티스토리툴바