oAuth
OAuth는 서드파티 애플리케이션이 사용자 비밀번호를 공유하지 않고도 특정 자원(데이터나 서비스)에 대한 접근 권한을 안전하게 부여할 수 있도록 하는 개방형 표준 프로토콜입니다. 주로 웹, 모바일 애플리케이션에서 사용되며, 인증(Authentication)보다는 **권한 부여(Authorization)**에 중점을 둡니다.
주요 특징
- 서드파티 접근 허용: 사용자 인증 정보를 공유하지 않고도 애플리케이션이 API와 같은 보호된 리소스에 접근 가능.
- 액세스 토큰: 권한을 부여받은 애플리케이션이 사용자 자원에 접근하기 위해 사용하는 토큰.
- 다양한 사용 사례 지원: 사용자 로그인, 권한 부여, API 호출 등에서 사용 가능.
- 보안 강화: 비밀번호를 직접 전달하지 않고 권한을 관리하여 보안 위험 감소.
- 표준화: 전 세계적으로 널리 채택된 개방형 표준으로 다양한 플랫폼과 호환 가능.
장점
- 비밀번호 노출 방지: 사용자 비밀번호를 애플리케이션이 직접 저장하거나 관리하지 않아도 됨.
- 안전한 권한 부여: 토큰 기반으로 사용자 데이터에 접근을 제어.
- 유연성: 다양한 서비스와 통합 가능하며, API 호출, 모바일 앱 등 여러 환경에서 동작.
- 사용자 제어: 사용자가 특정 애플리케이션에 대해 언제든지 접근 권한을 철회 가능.
- 다중 서비스 통합: OAuth를 통해 여러 서비스가 원활하게 연동.
관련 용어
- Authorization (권한 부여): 특정 리소스에 대한 접근 권한을 부여하는 과정.
- Authentication (인증): 사용자를 확인하는 과정. OAuth는 주로 권한 부여에 초점을 맞춤.
- Access Token: 제한된 시간 동안 리소스에 접근할 수 있는 키.
- Refresh Token: 액세스 토큰이 만료된 후 새로운 액세스 토큰을 발급받기 위한 키.
- OpenID Connect (OIDC): OAuth 2.0을 기반으로 인증(Authentication)을 추가한 표준.
주요 솔루션 및 사용 사례
- 도구
- Google OAuth: Gmail, Google Drive 등 Google 서비스와의 권한 부여.
- Facebook Login: 서드파티 애플리케이션에서 Facebook 계정을 통한 인증.
- GitHub OAuth: GitHub 계정을 이용해 애플리케이션에 접근 권한 부여.
- 사용 사례
- 사용자가 비밀번호 없이 Google 계정을 이용해 서드파티 애플리케이션에 로그인.
- Spotify가 Facebook 계정을 사용해 사용자 정보를 가져오는 경우.
- API 호출에서 액세스 토큰을 사용하여 보호된 데이터에 접근.