항해99
[항해99] TIL 24.04.08
사나~
2024. 4. 8. 21:30
🥇 OAuth 2.0 사용의 장점
- 회원가입 및 사용자 관리
- OAuth 2.0을 사용하면 외부 서비스 (카카오, 네이버 등)의 사용자 정보를 기반으로 새로운 회원을 생성하거나 기존 회원을 인식할 수 있습니다.
- 사용자가 새로운 서비스에 가입하는 프로세스를 줄이고, 사용자 관리를 효율적으로 할 수 있습니다.
- 소셜 로그인 통합
- 다양한 소셜 로그인 제공업체 (카카오, 네이버 등)를 통합할 수 있습니다.
- 사용자는 자신이 편안한 방식으로 로그인할 수 있고, 개발자는 다양한 소셜 로그인 제공업체를 지원하여 사용자들에게 다양한 선택지를 제공할 수 있습니다.
- 보안
- OAuth 2.0은 클라이언트와 리소스 소유자 간의 인증 및 권한 부여를 위한 개방형 표준 프로토콜입니다.
- 사용자의 민감한 정보를 앱에 제공할 때, 애플리케이션과 사용자의 인증 정보를 안전하게 분리해서 보안을 강화합니다.
- 사용자의 비밀번호를 직접 처리하지 않고, 액세스 토큰을 통해 인증을 처리하기 때문에 보안적으로 안전합니다.
- 사용자의 편의성
- 사용자가 다양한 서비스 및 애플리케이션 간의 신속하고 편리하게 로그인을 할 수 있도록 합니다.
- 사용자가 앱에 로그인할 때마다 사용자 이름과 암호를 기억하고 입력할 필요가 없고, OAuth 2.0 프로토콜을 사용해 다른 플랫폼에서 이미 인증된 경우에도 로그인이 가능합니다
✍🏻 적용 방법
- build.gradle에 의존성 추가
- implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
🔑 Spring Security와 함께 사용할 때 장점
- 보완
- Spring Security는 Java 애플리케이션을 위한 강력한 사용자 정의 가능한 인증 및 액세스 제어 프레임워크입니다.
- 인증되고 승인된 사용자만 애플리케이션 내의 리소스에 액세스할 수 있도록 보장하는 보안 기능을 제공합니다.
- Spring Security를 OAuth 2.0과 통합하면 해당 기능을 활용하여 사용자 인증, 권한 부여 및 세션 관리를 원활하게 처리할 수 있습니다.
- 인증
- Spring Security는 폼 기반 인증, HTTP 기본 인증, OAuth 인증 등 다양한 인증 메커니즘을 제공합니다.
- OAuth 2.0과 함께 사용 할 때 Spring Security는 OAuth 토큰 교환 및 인증 서버에 대한 유효성 검사를 포함하여 OAuth 인증 프로세스를 처리할 수 있습니다. → 보호된 리소스에 액세스할 때 유효한 OAuth 토큰만 허용됩니다.
- 권한 부여
- Spring Security는 사용자 역할 및 권한을 기반으로 특정 리소스에 대한 액세스를 제한하는 세분화된 권한 부여 제어를 제공합니다.
- Spring Security 내에서 액세스 제어 규칙을 구성한다면, 특정 OAuth 범위 / 사용자 역할이 필요한 엔드포인트 / 기능을 정의할 수 있습니다. → 액세스 제어 정책을 시행하고 민감한 데이터나 작업에 대한 무단 액세스를 방지하는 데 유용합니다.
- 토큰 관리
- OAuth 2.0은 액세스 토큰을 사용하여 보호된 리소스에 대한 액세스 권한을 부여합니다.
- Spring Security는 OAuth 토큰을 안전하게 저장하고, 만료된 토큰을 refresh 토큰을 통해 갱신 및 필요한 경우 토큰을 취소하는 등 OAuth 토큰을 관리하기 위한 유틸리티를 제공합니다.
- 이러한 토큰 관리 기능은 OAuth 인증 프로세스의 무결성과 보안을 보장하는 데 도움이 됩니다.
- Spring과의 통합
- Spring Security는 Spring Boot 및 Spring MVC와 같은 Spring의 다른 구성 요소와 원활하게 통합됩니다.
- 이것을 통해 Spring 프레임워크의 모든 기능을 활용하여 안전하고 강력하며 확장 가능한 애플리케이션을 구축할 수 있습니다.
- Spring Security는 CSRF 보호, 세션 고정 방지 및 비밀번호 암호화와 같은 일반적인 보안 요구 사항에 대한 광범위한 지원을 제공해서 애플리케이션의 전반적인 보안 상태를 향상시켜줍니다.