스프링 부트 Security

개요

스프링 부트 시큐리티는 스프링 시큐리티에 스타터를 제공해서 더 빠르게 보안설정을 지원합니다.

스프링 부트 시큐리티에서 가장 중요한 개념은 인증권한 부여입니다.

인증방식은 Credential 기반 인증 방식이중 인증 방식도 있습니다. credential기반 인증방식은 전통적인 아이디, 패스워드 인증 방식이며,
이중 인증 방식의 대표적인 예는 OAuth2방식이 있습니다.

OAuth2

OAuth토큰을 사용한 범용적인 방법의 인증을 제공하는 표준 인증 프로토콜이며, OAuth2는 두번째 버전으로 총 4가지의 승인 타입을 제공합니다.

권한 부여 코드 승인 타입(Authorization Code Grant Type)

  • 클라이언트가 다른 사용자 대신 특정 리소스에 접근을 요청할 때 사용됩니다. 리소스 접근을 위한 사용자명과 비밀번호, 권한 서버에 요청해서 받은 권한코드를 함께 활용하여 리소스에 대한 액세스 토큰을 받으면 이를 인증에 이용하는 방식입니다.

암시적 승인타입 (Implicit Grant Type)

  • 권한 부여코드 승인 타입과 다르게 권한 코드 교환 단계없이 액세스 토큰을 즉시 반환받아 이를 인증에 이용하는 방식입니다.

리소스 소유자 암호 자격 증명 승인 타입 (Resource Owner Password Credentials Grant Type)

  • 클라이언트가 암호를 사용하여 액세스 토큰에 대한 사용자의 자격증명을 교환하는 방식입니다.

클라이언트 자격 증명 승인 타입 (Client Credentials Grant Type)

  • 클라이언트가 컨텍스트 외부에서 액세스 토큰을 얻어 특정 리소스에 접근을 요청할 때 사용하는 방식입니다.

이 중에서도 권한부여코드승인타입이 다양한 소셜미디어들이 웹서버 형태의 클라이언트 형태로 지원하는데 많은 서비스들이 이 방식이 사용하고 있습니다.

특징

  • 기존의 사용자명 + 비밀번호 인증 방식은 단 한 번의 요청으로 인증을 하며, OAuth2는 최소 세 번 요청을 하게 됩니다.
  • 회원가입 없이 이미 사용하는 소셜미디어 계정으로 인증하기 때문에 사용자 입장에서는 더욱 편리하게 로그인을 할 수 있게됩니다.
  • 서비스 측면에서는 회원가입관련 기능을 축소시키고, 소셜에서 제공하는 User 정보를 가져올 수 있기 때문에 간편합니다.

Reference


0%