OAuth 1.0 대 OAuth 2.0
OAuth 소개
OAuth를 자동차의 발렛 키로 생각해 봅시다. 소유자가 무제한 액세스할 수 있는 일반 키와 달리, 발렛은 이 발렛 키를 사용하여 글러브 컴파트먼트나 트렁크에 접근하지 않고 일시적인 회전을 위해 차를 가져갑니다. OAuth는 Amazon, Facebook, Google, Instagram, LinkedIn, Netflix, Paypal, Microsoft, Twitter 등과 같은 타사 서비스에서 최종 사용자의 계정 정보를 사용할 수 있도록 합니다. 뉴스 웹사이트, 블로그 플랫폼, 온라인 비디오 게임 등과 같은 앱 내에서 자격 증명을 공유합니다.
예를 들어 Facebook의 다른 앱에 로그인할 때 사용자는 Facebook 로그인 버튼을 클릭할 수 있습니다. 그런 다음 Facebook에서 자동으로 인증하고 웹 사이트에서 Facebook의 허가를 받아 액세스 권한을 부여합니다. OAuth는 웹 서비스가 다른 장치 내의 보호된 리소스에 액세스하여 사용자가 한 번의 로그인으로 두 가지 다른 서비스에 액세스할 수 있는 Gmail과 같은 이메일 인증에도 사용됩니다.
OAuth 버전:
OAuth 2.0은 OAuth 1.0을 완전히 재작성한 프레임워크이며 1.0 버전은 다른 용어와 용어를 사용하는 프로토콜로 간주됩니다. 기능의 주요 차이점은 두 버전이 의무와 최종 사용자 경험을 분류하는 방법입니다.
OAuth 1.0에는 소비자, 서비스 제공자 및 사용자가 있으며 리소스 서버와 인증 서버의 역할을 명시적으로 구분하지 않습니다.
반면 OAuth 2.0에는 클라이언트, 인증 서버, 리소스 서버 및 리소스 소유자가 있습니다. 이것이 이러한 버전이 이전 버전과 호환되지 않는 이유입니다. OAuth 2.0은 웹 애플리케이션, 데스크톱 애플리케이션, 휴대폰, 스마트 기기 및 브라우저 기반이 아닌 애플리케이션(예: API 기반 서비스)에 대한 특정 인증 흐름을 제공합니다.
OAuth 1.0
⇒ 사용자 A는 App 1이 App 2의 데이터에 액세스하기를 원합니다.
⇒ 앱 1은 사용자 A가 시작한 앱 2와의 연결 요청을 보냅니다.
⇒ 앱 2는 앱 1의 요청을 수락합니다.
⇒ 앱 2는 앱 1에 임시 토큰을 보냅니다.
⇒ 앱 1은 사용자 A를 로그인으로 리디렉션하거나 사전 형식화된 URL을 사용할 수도 있습니다.
⇒ 사용자 A가 App 1에서 성공적으로 인증한 후 App 1은 사용자 A가 App 2의 리소스에 액세스할 수 있는 권한을 App 2에 부여하도록 승인을 요청합니다.
⇒ 승인 시 App 1에 알림
⇒ App 1은 임시 토큰을 사용하여 App 2에 새로운 액세스 토큰을 요청합니다.
⇒ App 2는 요청을 승인하고 새로운 액세스 토큰을 보냅니다.
⇒ 앱 1은 이제 새로운 액세스 토큰을 사용하여 앱 2의 데이터에 액세스할 수 있습니다.
OAuth 2.0
⇒ 사용자 A는 App 1이 App 2의 데이터에 액세스하기를 원합니다.
⇒ App 1은 Authorization Server에서 App 2에 대한 액세스를 요청합니다.
⇒ 사용자 A는 위 단계에서 받은 이 자격 증명으로 인증 서버에 인증하고 앱 2의 데이터에 액세스하기 위해 앱 1에 권한 부여를 반환합니다.
⇒ 이제 App 1은 위의 3단계에서 사용자 A가 부여한 권한 부여를 사용하여 Authorization 서버에 액세스 토큰을 요청합니다.
⇒ 인증 서버가 요청을 확인하고 앱 1에 액세스 토큰을 보냅니다.
⇒ 앱 1은 이제 액세스 토큰을 사용하여 앱 1의 데이터에 액세스할 수 있습니다.
왜 OAuth 2.0인가?
- 비브라우저 애플리케이션에 대한 더 나은 지원
- 역할 분리
- 단기 액세스 토큰 및 갱신 토큰
- 서명 요청의 복잡성 감소

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































