728x90

1. Spring Security

1.1 Spring Security 란?

  • 보안을 손쉽게 적용하기 위한 Spring Framework의 하위 프로젝트
  • 인증(Authentication)과 인가(Authorization)에 대한 다양한 기능을 제공
  • Filter 기반의 아키텍처로 구성되어 있어, 다양한 커스터마이징이 가능

1.2 Spring Security 인증 및 인가 흐름

2. OAuth 2.0

2.1 OAuth2.0 이란?

  • Open + Authorization (개방형 인가)
  • 웹 및 애플리케이션 인증 및 권한 부여를 위한 개방형 표준 프로토콜
  • 외부 Resoure에 접근하기 위해 사용

2.2 기본 용어

2.2.1 서버 및 클라이언트

  • Resource Owner(사용자)
  • Client(애플리케이션)
  • Authorization Server(인증 서버, 토큰 발급)
  • Resource Server(API 서버, 자원을 실제로 소유)

2.2.2 기타

  • Authorization Code (인증 코드)
  • Scope (범위)

2.3 인증 방식

2.3.1 Authrozation Code Grant

  • 서버 기반 애플리케이션(Server-side Application)에서 가장 많이 사용되는 인증 방식
  • 사용자에게서 직접 자격 증명 정보를 받지 않고, “인가 코드(Authorization Code)”를 발급받아 이를 이용해 액세스 토큰(Access Token)을 얻는 구조

2.3.2 Implicit Grant

  • 브라우저에서 동작하는 자바스크립트 기반 애플리케이션과 같이 클라이언트 비밀(Client Secret)을 안전하게 보관하기 어려운 환경에서 사용하던 방식

2.3.3 Password Credentials Grant

  • 사용자가 클라이언트에 직접 아이디/비밀번호 등의 자격 증명을 입력하고, 클라이언트가 이를 권한 서버에 전달하여 인증 및 액세스 토큰을 발급받는 방식

2.3.4 Client Credentials Grant

  • 서버 대 서버 혹은 백엔드 서비스 간 통신과 같이, 사용자 대신 애플리케이션 자체가 리소스에 접근해야 할 때 사용하는 방식

2.4 통합 흐름

반응형

'Study > Spring' 카테고리의 다른 글

[Spring Boot] DB Lock  (0) 2025.01.10
[Spring] QueryDSL-JPA  (0) 2024.12.30
[Spring] @InitBinder  (0) 2021.08.08
[Spring] @Data 어노테이션  (0) 2021.06.30
[Spring] 영속성 컨텍스트 (Persistence Context)  (0) 2021.06.30

+ Recent posts