2025/07 15

[Spring Authorization Server] 2. Core Model / Components

1. RegisteredClient인가 서버에서 등록된 클라이언트 정보를 나타내는 객체 표) 주요 속성더보기필드설명예id내부 시스템에서 고유하게 식별되는 UUID clientId외부 클라이언트가 사용하는 고유 식별자client-aclientSecret클라이언트 비밀번호. PasswordEncoder로 인코딩된 값 clientAuthenticationMethods클라이언트 인증 방식client_secret_basic private_key_jwt authorizationGrantTypes클라이언트가 사용할 수 있는 grant type 목록refresh_tokentoken_exchangeredirectUrisauthorization_code flow에서 사용할 redirect URI postLogoutRedi..

카테고리 없음 2025.07.24

[JWT] 2-1. Federated Identity

1. Federated Identity서로 다른 시스템 간에 사용자 인증과 권한 부여를 공유할 수 있도록 해주는 방식사용자 신원 정보는 중앙 집중형으로 관리됨 특징사용자 입장에선 하나의 로그인으로 여러 서비스 이용 가능 2. 동작 흐름 과정더보기사용자: 리소스 서버의 보호된 자원에 접근 시도사용자: 권한이 없으므로 리소스 서버가 인가 서버로 리디렉션사용자: 다시 신원 제공자(IDP)의 로그인 화면으로 리디렉션사용자: 로그인 성공인가 서버: 인증 정보 응답 (redirect_uri로 리디렉션)인가 서버: 필요한 JWT나 토큰을 포함한 요청으로 리소스 서버에 리디렉션사용자: 리소스에 접근 성공 보안모든 흐름은 URL 리디렉션을 통해 사용자 브라우저를 경유함TLS 사용이 필수

카테고리 없음 2025.07.22

[JWT] 4. JSON Web Signatures (JWS)

0. JWS서명제3자에 의해 위조되지 않았음을 증명생성자가 누군지 확인할 수 있음 Validation헤더와 페이로드에 명시된 조건을 충족옵션) 사용자 정의 조건도 추가 가능 1 Structure of a Signed JWT예시) Header더보기{ "alg": "HS256", // 서명 알고리즘 "typ": "JWT" // 타입 (JWT 고정)} 예시) Payload더보기{ "sub": "1234567890", "name": "John Doe", "admin": true} 예시) Signature더보기HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret) 알고리즘알고리즘서명 방식키 구조특징..

카테고리 없음 2025.07.22

[JWT] 2-3. Practical Application: OAuth2 & OpenID

1. JWTs and OAuth2JWT를 Access Token으로 사용토큰 안에 권한 범위, 사용자 정보, 접근 권한 등을 직접 담을 수 있음토큰 유효기간을 지정할 수 있음디지털 서명이 되어있어 resource server에서 자체적으로 검증 가능 (매번 authorization server에 인증 요청을 하지 않아도 됨)많은 IdP들이 JWT 형식으로 Access Token을 발급함 JWT를 Refresh Token으로 사용Authorization Server에 보내서 새 Access Token을 발급받음 2. JWTs and OpenID ConnectOpenID Connect Flows and JWTs 3. Exampleauthorization server를 두어 특정 로그인 제공자에 종속되지 않고..

[Spring Authorization Server] 1. Configuration Model

1. Introducing Spring Authorization ServerSpring Authorization Server는 OAuth2.1과 OpenID Connection 1.0 명세의 구현을 제공하는 프레임워크입니다. 2. Use Cases항목설명구성 및 커스터마이징 제어고급 설정이 필요한 경우, 전체 인증 흐름 및 동작을 세밀하게 제어할 수 있음경량화된 서버 구조상용 제품 대비 불필요한 기능 없이 핵심 기능만 포함되어 있음비용 절감오픈소스 기반, 자체 호스팅 가능 → 상용 솔루션 대비 비용 절감 가능개발 편의성Spring 기반 환경에 익숙한 개발자라면 빠른 셋업 가능, Spring Security와 유사한 설정 구조 제공 3. Default ConfigurationOAuth2OAuth2Autho..

카테고리 없음 2025.07.20

[Spring Security] 7-4. OAuth2 Client: Authorized Client Features

1. Resolving an Authorized Client@RegisteredOAuth2AuthorizedClient컨트롤러 메서드에서 OAuth2AuthorizedClient를 주입받을 수 있음OAuth2AuthorizedClientArgumentResolver 컴포넌트에 의해 주입됨OAuth2AuthorizedClientArgumentResolver는 OAuth2AuthorizedClientManager를 사용하여 가져옴OAuth2AuthorizedClientManager는 Repository와 Provider에게 위임하여 OAuth2AuthorizedClient를 반환함Provider의 전략 객체별 조건을 만족해야 동작함 예시) OAuth2ClientController더보기@Controllerpu..

카테고리 없음 2025.07.20

[Spring Security] 7-2. OAuth2 Client: Authorization Grant Support

1. Authorization CodeInitiating the Authorization RequestOAuth2AuthorizationRequestRedirectFilter로그인 요청을 시작하는 필터OAuth2AuthorizationRequestResolver를 사용해서 OAuth2AuthorizationRequest 생성user-agent를 Authorization Sever의 authorization endpoint로 리디렉션함 OAuth2AuthorizationRequestResolver웹 요청 정보에서 OAuth2AuthorizationRequest를 구성해주는 역할 PKCE (Proof Key for Code Exchange)항목내용목적Authorization Code 탈취 방지- code는 ..

[Spring Security] 7-1. OAuth2 Client: Core Interfaces and Classes

1. ClientRegistrationOAuth 2.0 또는 OpenID Connect 1.0 제공자에 등록된 클라이언트 정보를 나타내는 객체 필드) 기본 필드더보기필드명설명값registrationId이 클라이언트를 구분할 수 있는 고유 IDgoogle, oktaclientIdOAuth 제공자에 등록된 클라이언트 ID clientSecret클라이언트 시크릿 clientAuthenticationMethod클라이언트 인증 방식client_secret_basicclient_secret_postnoneprivate_key_jwtauthorizationGrantType인증 방식 (grant type)authorization_codeclient_credentialspasswordurn:ietf:params:oaut..

카테고리 없음 2025.07.18

[Spring Security] 6-4. OAuth2 Login: OIDC Logout

1. Local Logout2. OpenID Connect 1.0 Client-Initiated Logoutclient가 사용자의 로그아웃을 OpenID Provider까지 전달하는 방식Discovery + Session Management를 지원하는 OP만 가능issuer-uri 설정을 통해 end_session_endpoint 자동 획득OidcClientInitiatedLogoutSuccessHandler를 사용함 작동 방식사용자가 로그아웃 요청 (/logout)Spring Security는 OidcClientInitiatedLogoutSuccessHandler 실행해당 handler는 end_session_endpoint로 redirect 요청 보냄파라미터: id_token_hint, post_lo..

[Spring Security] 6-3. OAuth2 Login: Advanced Configuration

HttpSecurity.oauth2Login()는 OAuth2 Login 커스터마이징을 지원하는 옵션들을 제공엔드포인트역할 설명사용 상황관련 필터 / 컴포넌트Authorization Endpointuser-agent를 통해 인가 코드 받기로그인 버튼 클릭(로그인 시작)OAuth2AuthorizationRequestRedirectFilterRedirection Endpoint인증 서버가 인증 결과를 클라이언트로 리디렉션로그인 후OAuth2LoginAuthenticationFilterToken Endpoint인가 코드를 가지고 토큰 요청 (access token, id token, refresh token 등)인가 코드 받은 후OAuth2LoginAuthenticationProviderUserInfo End..