용어집

OAuth이란 무엇인가요?

OAuth 2.0은 사용자가 비밀번호를 제3자와 공유하지 않고도, 제3자 애플리케이션이 프로필이나 데이터 같은 다른 서비스의 사용자 리소스에 제한적으로 접근할 수 있게 하는 개방형 권한 부여 프레임워크다.

다른 이름: OAuth 2.0, OAuth2, open authorization

OAuth는 구체적인 문제를 해결한다. 비밀번호를 주지 않고 어떻게 애플리케이션에 다른 서비스의 내 데이터에 대한 접근을 허용할 것인가? OAuth 이전에는 자격 증명을 직접 넘겨주는 것이 흔한 답이었는데, 이는 선택적 해지 수단 없이 무제한 접근을 부여하는 관행이었다. OAuth는 범위와 수명이 제한된 액세스 토큰을 통한 위임 권한 부여 개념을 도입한다.

OAuth 2.0 흐름은 네 당사자를 포함한다. 리소스 소유자(사용자), 클라이언트(제3자 애플리케이션), 권한 부여 서버(토큰 발급), 리소스 서버(사용자 데이터 호스팅)이다. 사용자는 권한 부여 서버에서 인증하고 클라이언트에 특정 권한을 부여하며, 클라이언트는 액세스 토큰을 받는다. 이 토큰은 클라이언트가 사용자 비밀번호를 보지 않고도 사용자 리소스에 접근하는 데 사용된다.

OAuth 2.0은 다양한 시나리오를 위한 여러 권한 부여 유형을 정의한다. 인가 코드 흐름(서버 측 애플리케이션용), PKCE를 적용한 인가 코드 흐름(모바일 및 단일 페이지 애플리케이션 같은 공개 클라이언트용), 클라이언트 자격 증명(머신 대 머신 통신용), 기기 코드 흐름(입력이 제한된 기기용)이다. 이 프레임워크는 OpenID Connect(OIDC)로 확장되어 OAuth의 권한 부여 기능 위에 인증을 위한 표준화된 신원 계층을 더한다.

Vaulted가 OAuth을 사용하는 방법

Vaulted는 사용자 계정, 제3자 통합, 위임 권한 부여의 필요가 없으므로 OAuth를 구현하지 않는다. 그러나 OAuth 토큰은 안전하게 공유돼야 하는 흔한 민감 자격 증명이다. 예를 들어 서비스 계정의 클라이언트 시크릿을 배포 팀과 공유하는 경우다. Vaulted는 그런 토큰을 Slack 메시지, 이메일, 티켓 시스템에 노출하지 않고 전달하는 안전한 채널을 제공한다. 그런 곳에서는 토큰이 무기한 남아 있게 된다.