OAuth2 복습OAuth2의 동작 방식이전 챕터에서 OAuth 2가 무엇인지 살펴보면서 OAuth 2의 개념을 이해하기 위해 OAuth 2의 단순한 아키텍처를 확인해 보았는데, OAuth 2의 동작 방식은 앞에서 보았던 아키텍처보다는 조금 더 복잡한 흐름으로 구성됩니다. OAuth 2 인증 컴포넌트(Component, 구성요소)들의 역할OAuth 2 인증 프로토콜의 흐름을 이해하기 위해서는 OAuth 2 인증을 처리하는 컴포넌트에는 어떤 것이 있고, 각각의 컴포넌트들이 어떤 역할을 하는지 이해하는 것이 중요합니다.Resource OwnerResource Owner는 사용하고자 하는 Resource의 소유자를 말합니다.⭐ Resource Owner는 한마디로 Google 등의 서비스를 이용하는 사용자입니..
OAuth2 복습OAuth 2란?앞에서의 예시와 같이 여러분들이 웹이나 앱에서 흔히 찾아볼 수 있는 소셜 로그인 인증 방식은 OAuth 2라는 기술을 바탕으로 구현됩니다.전통적으로 특정 애플리케이션의 서비스를 이용하는 사용자에 대한 인증 처리는 해당 서비스를 직접적으로 제공하는 애플리케이션에서 담당해 왔습니다.인증 서버를 별도로 분리해서 인증을 처리하든 하나의 서버에서 사용자의 인증도 처리하고 그와 동시에 애플리케이션의 서비스도 함께 제공하든 어쨌든 서비스를 제공하는 애플리케이션에서 해당 서비스를 이용하는 사용자의 크리덴셜(Credential)을 직접적으로 관리하는 것이 일반적입니다.예를 들어 사용자에 대한 일정 관리 서비스를 제공하는 애플리케이션이 있다고 가정하겠습니다. 이 일정 관리 서비스는 특별히 ..
JWT 로그인 구현 복습 JWT 자격 증명을 위한 로그인 인증 구현1️⃣ Custom UserDetailsService 구현Spring Security에서 사용자의 로그인 인증을 처리하는 가장 단순하고 효과적인 방법은 데이터베이스에서 사용자의 크리덴셜을 조회한 후, 조회한 크리덴셜을 AuthenticationManager에게 전달하는 Custom UserDetailsService를 구현하는 것입니다.MemberDetailsServicepackage com.springboot.auth.userdetails;import com.springboot.auth.utils.CustomAuthorityUtils;import com.springboot.exception.BusinessLogicException;impo..
JWT 복습JWT(JSON Web Token)JWT는 데이터를 안전하고 간결하게 전송하기 위해 고안된 인터넷 표준 인증 방식으로써 토큰 인증 방식에서 가장 범용적으로 사용되며 JSON 포맷의 토큰 정보를 인코딩 후, 인코딩 된 토큰 정보를 Secret Key로 서명(Sign)한 메시지를 Web Token으로써 인증 과정에 사용합니다.JWT 공식 사이트 : https://jwt.io/ JWT.IOJSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.jwt.io JWT의 종류JWT는 보통 다음과 같이 두 가지 종류의 토큰을 사용자의 자격 증명에 이용합니다...
Spring Security 복습보안이 적용된 웹 요청의 일반적인 처리 흐름(1)에서 사용자가 보호된 리소스를 요청합니다.(2)에서 인증 관리자 역할을 하는 컴포넌트가 사용자의 크리덴셜(Credential)을 요청합니다.사용자의 크리덴셜(Credential)이란 해당 사용자를 증명하기 위한 구체적인 수단을 의미합니다. 일반적으로는 사용자의 패스워드가 크리덴셜에 해당합니다.(3)에서 사용자는 인증 관리자에게 크리덴셜(Credential)을 제공합니다.(4)에서 인증 관리자는 크리덴셜 저장소에서 사용자의 크리덴셜을 조회합니다.(5)에서 인증 관리자는 사용자가 제공한 크리덴셜과 크리덴셜 저장소에 저장된 크리덴셜을 비교해 검증 작업을 수행합니다.(6) 유효한 크리덴셜이 아니라면 Exception을 throw 합..