본문 바로가기

spring security4

Spring Security (스프링 시큐리티) OAuth2 정리 현재 개발중인 프로젝트에서 여러 소셜 로그인을 사용할 예정이므로 OAuth 2.0 에 대해 학습 및 구현에 대해 정리하고자 한다. OAuth 2.0 란? 구글, 네이버 등 다양한 플랫폼의 특정한 사용자 데이터에 접근하기 위해 제 3자 클라이언트(우리가 출시한 웹 또는 앱 서비스)가 사용자의 권한을 위임 받을 수 있는 표준 프로토콜이다. 예를 들어, 우리가 웹서비스를 출시했다고 할 때 우리의 웹을 이용하는 사용자의 타사 플랫폼 정보에 접근하기 위한 권한을 타사 플랫폼으로부터 위임받는 것이다. OAuth 2.0 특징 인증을 위한 개방현 표준 프로토콜이다. '제 3자 애플리케이션'이 사용자를 대신해 HTTP 서비스를 이용할 수 있는 권한을 부여하는 메커니즘을 제공한다. 구글, 카카오, 네이버 등에서 제공하는 .. 2024. 3. 7.
Spring Security (3) - Security Filter Chain Security Filter Chain Spring Security에서 제공하는 인증, 인가를 위한 필터들의 모음 1. 필요한 필터 생성 (HttpSecurity) Spring Security는 인증, 인가에 대한 처리를 여러개의 필터를 연쇄적으로 실행하여 수행한다. 이때 필요한 필터와 필요하지 않은 필터를 명시해야 하는데 이를 WebSecurityConfigurerAdapter를 구현한 설정 파일에 명시한다. HttpSecurity클래스에서 이를 기반으로 해당되는 필터를 생성한다. 설정 파일 별로 필터 목록을 생성 후 WebSecurity로 전달한다. WebSecurity는 필터 목록들을 FilterChainProxy로 전달한다. SpringSecurityFilterChain으로 생성되는 bean이다... 2024. 2. 3.
Spring Security(2) - 주요 모듈 Spring Security 주요 모듈 1) SecurityContextHolder 보안 주체의 세부정보를 포함하여 응용 프로그램의 현재 보안 컨텍스트에 대한 세부정보가 저장된다. 2) SecurityContext Authentication을 보관하는 역할을 하며 SecurityContext를 통해 Authentication객체를 꺼낼 수 있다. 3) Authentication 현재 접근하는 주체의 정보와 권한을 담는 인터페이스이다. public interface Authentication extends Principal, Serializable { // 현재 사용자의 권한 목록을 가져옴 Collection 2024. 2. 3.
Spring Security (1) - spring security란? 1. Spring Security 인증(Authentication), 권한(Athorization)을 부여하고 보호하는 기능을 제공한다. 인증(Authentication) 접근하려는 유저가 누구인지 확인하는 절차 (로그인) 인가(Authorization) 인증된 사용자가 요청된 자원에 접근 가능한지 확인하는 절차 (사용자가 관리자 페이지에 접근하는 경우) 2. 인증, 인가를 위해 사용하는 인증방식 사용자명과 비밀번호로 인증하는 Credential 기반의 인증방식을 사용한다. 사용자명(username) principal (접근주체 - 보호받는 리소스에 접근하는 대상) 비밀번호(password) credential (비밀번호 - 리소스에 접근하는 대상의 비밀번호) 3. 스프링 시큐리티 인증 작동방식 1) .. 2024. 2. 3.