[ShowMyCNFT] Spring Security & Oauth2.0

junghan·2023년 4월 22일
0

SpringBootProject

목록 보기
29/35
post-thumbnail

Spring Security란?

스프링 시큐리티(Spring Security)는 스프링 기반의 애플리케이션 보안 프레임워크입니다. 스프링 시큐리티는 애플리케이션 보안에 필요한 인증(Authentication), 권한 부여(Authorization), 보안 설정(Security Configuration) 등을 제공합니다.

스프링 시큐리티는 다양한 인증 방식을 지원하며, 사용자 데이터베이스, LDAP, OAuth, OpenID 등의 인증 및 인가 기술과 통합될 수 있습니다. 또한, 스프링 MVC, RESTful API, WebSocket 등의 다양한 웹 애플리케이션 아키텍처에 적용할 수 있습니다.

스프링 시큐리티는 보안을 구현하는 데 필요한 많은 기능과 유연성을 제공하며, 높은 수준의 보안을 유지하는 데 도움이 됩니다. (인터셉터, 필터 기반의 보안 기능을 구현하는 것보다 스프링 시큐리티를 통해 구현하는 것을 적 극적으로 권장하고 있습니다)
이러한 이유로 스프링 시큐리티는 많은 기업 및 개발자들에게 신뢰성과 안정성이 검증된 보안 프레임워크로 인정받고 있습니다.



Oauth2.0이란?

OAuth2.0은 인터넷에서 안전하게 리소스를 공유하기 위한 프로토콜입니다. OAuth2.0은 사용자 인증과 권한 부여를 처리하는 방식으로, 제 3자 서비스에서 사용자 인증을 처리하여, 사용자의 개인 정보가 제 3자에게 노출되지 않도록 보호합니다. OAuth2.0은 클라이언트 애플리케이션이 서버나 웹 서비스에 접근 권한을 부여할 수 있도록 지원합니다.

OAuth2.0은 다음과 같은 주요 구성 요소로 이루어져 있습니다.

  1. Resource Owner(리소스 소유자): 사용자
  2. Client(클라이언트): 서비스를 제공하는 애플리케이션
  3. Resource Server(리소스 서버): 보호된 리소스를 저장하고 관리하는 서버
  4. Authorization Server(인증 서버): 인증을 처리하고, 권한을 부여하는 서버

OAuth2.0 프로토콜은 다음과 같은 순서로 동작합니다.

  1. 클라이언트 애플리케이션이 인증 서버에 인증을 요청합니다.
  2. 인증 서버는 사용자에게 인증을 요청합니다.
  3. 사용자는 인증을 수행하고, 인증이 성공하면 인증 서버는 클라이언트 애플리케이션에게 액세스 토큰(Access Token)을 발급합니다.
  4. 클라이언트 애플리케이션은 액세스 토큰을 사용하여 리소스 서버(Resource Server)에 보호된 리소스에 접근합니다.
  5. 리소스 서버는 액세스 토큰을 검증하고, 클라이언트 애플리케이션에게 보호된 리소스를 전송합니다.

OAuth2.0은 다양한 권한 부여 방식을 지원합니다. 대표적인 권한 부여 방식으로는 Authorization Code Grant, Implicit Grant, Resource Owner Password Credentials Grant, Client Credentials Grant 등이 있습니다. 각각의 권한 부여 방식은 서로 다른 보안 수준을 제공하며, 애플리케이션의 요구사항에 따라 선택하여 사용할 수 있습니다.

OAuth2.0은 사용자 인증과 권한 부여를 안전하게 처리할 수 있도록 지원하는 프로토콜입니다. 최근에는 OAuth2.0 기반으로 개발된 OpenID Connect(OIDC)가 인기를 얻고 있으며, OIDC는 OAuth2.0에 인증 기능을 추가한 보안 프로토콜입니다.

Oauth2.0의 효용성

■ 로그인 시 보안
■ 회원가입 시 이메일 혹은 전화번호 인증
■ 비밀번호 찾기
■ 비밀번호 변경
■ 회원정보 변경

👉 기타 로그인 기능 생략가능


Spring Security와 Oauth2.0

스프링 시큐리티와 OAuth2.0을 함께 사용하면, 클라이언트 애플리케이션이 서버나 웹 서비스에 접근 권한을 부여하는 과정에서 보안을 강화할 수 있습니다. 스프링 시큐리티는 OAuth2.0 프로토콜을 지원하며, 클라이언트 애플리케이션이 서버나 웹 서비스에 대한 인증 및 권한 부여를 안전하게 처리할 수 있도록 도와줍니다.

스프링 시큐리티와 OAuth2.0을 함께 사용할 때는, 스프링 시큐리티의 OAuth2.0 모듈을 사용하면 됩니다. 스프링 시큐리티 OAuth2.0 모듈은 OAuth2.0 인증 서버를 구축하고, 클라이언트 애플리케이션에서 OAuth2.0 인증을 처리하는 기능을 제공합니다. 또한, 다양한 OAuth2.0 제공자들과 연동하여 인증 및 권한 부여를 처리할 수 있습니다.

profile
42seoul, blockchain, web 3.0

0개의 댓글