2025/07 18

[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..

[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

0. 설정HttpSecurity.oauth2Login()OAuth2 또는 OpenID Connect를 통한 로그인 기능을 설정할 수 있도록 도와주는 DSL✅ 커스터마이징을 지원하는 옵션들을 제공 기본 설정) oauth2login더보기@Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .oauth2Login(oauth2 -> oauth2 .clientRegistrationRepository(this.clientRegistrationRepository()) .authorizedClientRepository(this.authorizedClientRep..

[Spring Security] 6-2. OAuth2 Login: Core Configuration

유저가 oauth2 provider 또는 openid provider를 통해 애플리케이션에 로그인하도록 도와주는 기술Spring Security는 공식적으로 Google과 Github을 지원합니다. 1. Spring Boot Sample (Google)2. Spring Boot Property MappingsOAuth2Client 자동설정 제공표) applicaion.yml ↔️ ClientRegistration더보기Spring BootClientRegistrationspring.security.oauth2.client.registration.[registrationId]registrationIdspring.security.oauth2.client.registration.[registrationId].c..

[Wiki] OpenID

1. 설명OpenID 재단이 관리하는 인증 수단항목설명예분산형 디지털 신원 시스템사용자가 다양한 웹사이트에 하나의 계정으로 로그인할 수 있음 ID 형식- URL- XRIhttps://me.example.com/=alice@company*bob Service Discovery사용자가 입력한 OpenID 식별자를 통해 ID 제공자를 자동으로 찾는 프로토콜 Yadis 프로토콜 Service Discovery) Yadis 프로토콜 동작 방식더보기단계설명1사용자가 OpenID URL 입력2RP가 HTTP 요청 → X-XRDS-Location 헤더나 태그 탐색3XRDS 문서 위치 확인 후 해당 URL에 접근4XRDS 문서(XML)를 파싱하여 ID Provider 주소 확인5인증 요청은 이 주소로 전송 2. 구성 ..

카테고리 없음 2025.07.14

[Spring Security] 6-1. OAuth2

1. OAuth2 Resource Server보호된 자원을 관리하는 서버✅ 보호된 자원의 요청에 대한 인증 과정을 담당함 Protect Access with an OAuth2 Access Token구분설명검증JWT자체 서명 토큰public key 사용Opaque Token토큰 내용을 알 수 없는 토큰introspection 엔드포인트에 요청✅ 외부 인증 서버에서 introspection 엔드포인트 제공 필수 설정) JWT더보기spring: security: oauth2: resourceserver: jwt: issuer-uri: https://my-auth-server.com@Configuration@EnableWebSecuritypublic class Sec..

[Spring Security] 4-2. Authorization: HttpServletRequests

request levet에서의 인가를 구현할 모델을 제공합니다.특정 prefix의 url에 대한 인가 권한을 요구할 수 있음HttpSecurity 객체를 통해 인가 룰을 정의할 수 있음 1. Understanding How Request Authorization Components Work 인가 동작 순서 (AuthorizationFilter)SecurityContextHolder에서 인증 정보를 가져오는 Supplier 생성Supplier와 HttpServletRequest를 AuthorizationManager에 전달authorizeHttpRequests()에 정의된 규칙들과 매칭하여 인가 판정 인가 실패AuthorizationDeniedEvent 이벤트 발생AccessDeniedException이 ..

[Spring Security] 4-1. Authorization: Architecture

1. AuthoritiesGrantedAuthority인증된 사용자가 가지고 있는 권한을 나타내는 객체✅ 단순 문자열로 권한을 표현함✅ Authentication 객체 안에 리스트 형태로 저장됨 복잡한 권한 구조복잡한 권한 구조일 경우, 단순 문자열로 표현하기 어려움이런 경우, AuthorizationManager가 그 객체의 권한 부여 책임을 담당함✅ Authorities: getAuthority()는 null을 반환함 예시) 특정 계좌에만 접근 가능한 권한더보기권한 객체public class AccountAccessAuthority implements GrantedAuthority { private final Long accountId; public AccountAccessAuthority..