주요 콘텐츠로 건너뛰기
이미지
보라색 육각형 패턴

OAuth 토큰이란?

OAuth 토큰은 리소스에 대한 사용자의 액세스 권한을 부여합니다. 즉, 사용자를 인증하지는 않지만, 서비스 제공업체가 사용자를 대신하여 다른 리소스에 대한 액세스 권한을 부여하는 데 사용됩니다.

OAuth 거래는 사용자가 서비스 제공업체 ID를 사용하여 다른 리소스에서 권한을 요청할 때 발생합니다. 리소스는 서비스 제공업체에게 요청 토큰 및 비밀 형태로 제공되는 권한을 요청합니다. 그 다음에는, 리소스가 요청을 인증하기 위해 사용자를 해당 서비스 제공업체로 리디렉션합니다. 이 시점에서 리소스는 요청 토큰을 액세스 토큰 및 비밀로 교환합니다. 두 토큰이 동일한 비밀을 공유하면 OAuth 프로세스가 완료되고 사용자가 리소스에 대한 액세스 권한을 서비스 제공업체에게 성공적으로 위임한 것입니다.

OAuth 프로세스

1단계

액세스 요청

Anne은 YouTube(리소스)에서 자신의 Twitter 피드(서비스 제공업체)에 직접 동영상을 게시하도록 요청합니다. 그러면 YouTube에서 Twitter에 액세스 권한을 요청합니다.

책상 앞에 앉아 있는 여성의 그래픽

2단계

토큰 및 비밀 교환 요청

Twitter에서 YouTube에 요청 토큰과 비밀을 제공합니다.

키 및 웹 브라우저의 그래픽

3단계

인증

YouTube에서 Anne을 Twitter에 로그인하도록 리디렉션합니다. Anne은 Twitter에 로그인 자격증명을 제공하고 YouTube의 요청이 사용자에 의해 시작되었음을 인증합니다.

노트북을 사용하는 사람의 그래픽

4단계

액세스 토큰 교환

사용자가 요청을 인증하면 YouTube는 Twitter에 요청 토큰과 암호를 액세스 토큰으로 교환하도록 요청합니다. 토큰과 연결된 비밀이 일치하면 Twitter는 YouTube에 액세스 토큰을 제공하고 YouTube에 액세스 권한을 부여합니다.

키 및 웹 브라우저의 그래픽

5단계

액세스 권한 부여됨

Anne은 이제 안전하게 YouTube를 사용하여 자신의 Twitter 피드에 직접 동영상을 게시할 수 있습니다.

책상 앞에 앉아 있는 여성의 그래픽

위의 예는 일반적인 OAuth 프로세스를 요약한 것입니다. OAuth는 또한 사용자가 원할 때마다 토큰을 해지할 수 있는 권한과 다양한 리소스에 대해 서비스 제공업체에게 다양한 수준의 액세스를 정의하는 등 보다 세분화된 제어와 권한을 허용합니다.

OAuth 1.0과 OAuth 2.0의 비교

2012년에 OAuth 1.0에 대한 대대적인 개선으로 OAuth 2.0이 도입되었습니다. 이 버전의 OAuth에 대한 변경 사항은 버전 2.0 및 1.0이 호환되지 않을 만큼 충분히 중요합니다. OAuth 2.0은 OAuth 인가 흐름의 세션 고정 보안 결함을 해결하도록 설계되었습니다.

이 문제는 OAuth 2.0으로 해결되었지만 새 버전은 의도적으로 암호화, 서명, 클라이언트 확인 또는 채널 바인딩을 정의하거나 지원하지 않습니다. 그러나, 대신 구현자가 해당 목적을 위해 HTTPS/TLS 등 다른 보안 프로토콜을 사용해야 합니다.

OAuth 1.0과 2.0의 차이점은 다음과 같이 요약할 수 있습니다.

OAuth 1.0과 OAuth 2.0 차트 비교

OAuth와 SAML의 비교 – 차이점은?

SAML은 하나의 장치가 하나 이상의 장치를 대신하여 인증과 인가를 모두 수행할 수 있는 프레임워크를 설명하는 XML 변형 언어입니다.

JSON과 같은 데이터 인코딩을 위한 가벼운 옵션이 등장하면서 모바일 장치 사용자를 지원하기 위해 OAuth가 채택되었습니다. OAuth는 SAML을 대체할 필요성에서 발전한 최신 프로토콜이지만 두 프로토콜 모두 보안 싱글 사인 온(SSO)에 중요합니다.

즉, OAuth는 두 프로토콜이 서로를 보완할 수 있는 만큼 SAML의 대안이 되지는 않습니다. 예를 들어 SSO 환경에서 SAML은 인증(사용자가 진짜이고 액세스 권한이 부여되었는지 확인)을 담당할 수 있고 OAuth는 인가(특정 보호 리소스에 대한 액세스 권한 부여)를 담당할 수 있습니다.