OAuth 2.0이란?
OAuth 2.0은 서로 다른 서비스 간에 안전하게 인증과 권한 부여를 할 수 있게 해주는 표준 프로토콜입니다. 이를 통해 사용자의 민감한 정보를 직접 공유하지 않고도 다른 서비스의 기능을 이용할 수 있습니다.
OAuth 2.0이 필요한 이유
예를 들어, '우아한 캘린더'라는 서비스를 만들었다고 가정해봅시다. 이 서비스는 구글 캘린더와 연동하여 일정을 관리하려고 합니다. OAuth 2.0 없이는 다음과 같은 문제가 발생할 수 있습니다
- 사용자의 구글 아이디와 비밀번호를 직접 받아야 함
- 보안 위험 증가
- 불필요한 접근 권한 발생
OAuth 2.0을 사용하면 이러한 문제를 해결할 수 있습니다.
OAuth 2.0의 주요 개념
- Resource Owner: 사용자
- Client: 우리가 만든 서비스 (예: 우아한 캘린더)
- Authorization Server: 인증을 담당하는 서버 (예: 구글)
- Resource Server: 실제 데이터를 제공하는 서버 (예: 구글 캘린더)
OAuth 2.0의 동작 과정
- 사용자가 우아한 캘린더에서 "구글 로그인" 버튼 클릭
- 구글의 로그인 페이지로 리다이렉트
- 사용자가 구글에 직접 로그인
- 구글이 우아한 캘린더에 권한 코드 전달
- 우아한 캘린더가 권한 코드로 액세스 토큰 요청
- 구글이 액세스 토큰 발급
- 우아한 캘린더가 액세스 토큰으로 구글 캘린더 데이터 접근
OAuth 2.0의 장점
- 보안 강화: 사용자의 비밀번호를 직접 다루지 않음
- 권한 제한: 필요한 기능에만 접근 가능
- 사용자 경험 개선: 별도의 회원가입 없이 기존 계정으로 로그인 가능
OAuth 2.0 구현 시 주의사항
- HTTPS 사용 필수
- 클라이언트 ID와 시크릿 안전하게 보관
- Redirect URI 정확히 설정
소셜 로그인과 OAuth 2.0
OAuth 2.0은 주로 소셜 로그인 구현에 사용됩니다. 하지만 OAuth 2.0은 인가(Authorization)를 위한 프로토콜이며, 인증(Authentication)을 위해서는 OpenID Connect라는 추가적인 레이어가 사용됩니다.
결론: OAuth 2.0은 현대 웹 서비스에서 필수적인 보안 프로토콜입니다. 이를 통해 사용자의 정보를 안전하게 보호하면서도 다양한 서비스 간의 연동을 가능하게 합니다. 개발자로서 OAuth 2.0의 개념과 흐름을 이해하는 것은 매우 중요합니다.
출처
https://www.youtube.com/watch?v=Mh3LaHmA21I
728x90
'코딩공부 > 개발지식' 카테고리의 다른 글
JWT(JSON Web Token)의 이해와 활용 (0) | 2024.07.28 |
---|---|
웹 애플리케이션의 인증과 인가(쿠키, 세션, 토큰, JWT) (0) | 2024.07.28 |
웹 개발의 핵심 개념: 쿠키, 세션, 토큰, 캐시 쉽게 이해하기 (0) | 2024.07.28 |
JWT와 OAuth: 인증과 권한 부여 (0) | 2024.07.28 |
RESTful API: 웹 서비스 설계를 위한 아키텍처 스타일 (0) | 2024.07.24 |