BackEnd/SpringSecurity
-
SpringSecurity OAuth2.0 - 소셜로그인 구현BackEnd/SpringSecurity 2023. 7. 26. 00:53
1. SecurityFilterChain 설정 목적 : 소셜로그인을 위해 구현한 커스텀 필터 설정 package io.security.oauth2.springsecurityoauth2.config.security; import io.security.oauth2.springsecurityoauth2.service.CustomOAuth2UserService; import io.security.oauth2.springsecurityoauth2.service.CustomOidcUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; impor..
-
SpringSecurity OAuth2.0 - 2BackEnd/SpringSecurity 2023. 7. 9. 13:45
1. 로그인페이지 커스텀 1.1 기본 로그인 package io.security.oauth2.springsecurityoauth2; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.web.SecurityFilterChain; @Configuration..
-
SpringSecurity OAuth2.0 - 1BackEnd/SpringSecurity 2023. 7. 8. 17:51
1. 스프링 시큐리티에서 사용하는 OAuth2.0 모듈 SpringSecurity 5 1. Client Support 2. ResourceServer Authorization Server 별도 프로젝트로 존재 1.1 OAuth2.0 Client 개요 OAuth2.0 인가 프레임워크의 역할 중 인가서버 및 리소스 서버와의 통신의 담당하는 클라이언트의 기능을 필터기반으로 구현한 모듈 간단한 설정만으로 OAuth2.0 인증 및 리소스 접근 권한, 인가서버 엔드 포인트 통신등의 구현이 가능하며 커스터마이징의 확장이 용이하다. 1.2 클라이언트 역할하는 모듈 2가지 1. OAuth2.0 Login 어플리케이션의 사용자를 외부 OAuth2.0 Provider나 OpenID Connect 1.0Provider 계정으..
-
KeyCloak으로 Oauth2.0 인가서버 구현 - 2BackEnd/SpringSecurity 2023. 7. 8. 13:52
1. 인가서버 유형 1. Authorization Code Grant Type (기밀 클라이언트) 타입 : 권한 코드 부여 타입 특징 : 서버 사이드 어플리케이션(웹 어플리케이션), 보안에 가장 안전한 유형 2. Implicit Grant Type (공개 클라이언트) 타입 : 암시적 부여 타입 특징 : 공개 클라이언트 어플리케이션 (SPA 기반 자바스크립 앱, 모바일 앱) 보안에 취약 3. Resource Owner Password Credentials Grant Type 타입 : 리소스 사용자 비밀번호 자격증명 부여 타입 특징 : 서버 어클리케이션, 보안에 취약 4. Client Credentials Grant Type 타입 : 서버간의 통신, UI or 화면이 없는 어플리케이션 (사용자와 상관없음) ..
-
KeyCloak으로 Oauth2.0 인가서버 구현 - 1BackEnd/SpringSecurity 2023. 7. 8. 12:45
목표 : KeyCloak 오픈소스를 사용하여 Oauth2.0 흐름을 파악 1. KeyCloack 인스톨 https://www.keycloak.org/downloads downloads - Keycloak Downloads 21.1.2 For a list of community maintained extensions check out the Extensions page. Server Quickstarts Client Adapters WildFly [DEPRECATED]
-
Oauth2.0 기본 개념BackEnd/SpringSecurity 2023. 7. 6. 23:25
1. Oauth = Open + Authorization Oauth2.0 인가 프레임워크는 애플리케이션이 사용자를 대신하여 사용자의 자원에 대한 제한된 정보에 대한 액세스를 얻기 위해 승인 상호 작용을 함으로 애플리케이션이 자체적으로 정보에 대한 액세스 권한을 얻도록한다. 이러한 인가 프레임워크의 작업을 인가 서버를 통해서 받게된다. (Delegated authorization framework) 흐름 1. 어플리케이션이 페이스북 사진 가져오기를 사용자에게 요청한다. 2. 사용자가 페이스북 로그인을 한다. 3. 페이스북이 로그인 성공시 권환과 동의 여부를 사용자에게 준다. 4. 사진가져오기가 가능한 AccessToken을 발행한다 특정 자원에만 접근할 수있도록 제한하고 직접적으로 어플리케이션을 통해서 소..
-
CORS 기본 개념BackEnd/SpringSecurity 2023. 7. 6. 23:00
CORS (Cross Origin Resource Sharing) 1. Simple Request 정의 Preflight(예비 요청)을 과정 없이 바로 본 서버로 요청함 요청스펙 SimpleRequest의 경우 요청할 수 있는 스펙이 존재한다. 1. HTTP METHOD : GET, POST, HEAD 중의 한가지 Method를 사용해야한다. 2. 헤더 : Accept, Accept-Language, Content-Language, Content-Type, DPR, Downlin, Save-Data, Viewport-Width Width 만 가능하고 커스텀한 Header는 허용되지않는다. 3. Content-type : application/x-www.form-urlencoded, multipart/fo..
-
SpringSecurity 흐름BackEnd/SpringSecurity 2023. 7. 3. 00:39
1. 스프링부트 스펙 스프링부트 버전 : 2.7.13 자바 버전 : 11 (최신버전의 스프링부트는 자바 17로 설정) 의존성 3가지 : 1. 스프링 웹 (내장 톰캣) 2. 스프링 시큐리티 3. 롬복 dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spri..