>일반적인 문제 >OAuth 2.0이란 무엇입니까?

OAuth 2.0이란 무엇입니까?

hzc
hzc원래의
2020-06-29 14:36:172905검색

OAuth2.0은 OAuth 프로토콜의 연속이지만 OAuth 1.0과 호환되지 않습니다. OAuth2.0은 리소스 소유자와 HTTP 서비스 제공자 간의 승인된 상호 작용을 구성하여 클라이언트 개발자를 위한 단순성에 중점을 둡니다. 또는 타사 애플리케이션이 사용자를 대신하여 액세스할 수 있도록 허용합니다.

OAuth 2.0이란 무엇입니까?

OAuth2.0은 OAuth 프로토콜의 연속 버전이지만 OAuth 1.0과 향후 호환되지 않습니다(즉, OAuth1.0이 완전히 폐지됨). OAuth 2.0은 클라이언트 개발자를 위한 단순성에 중점을 둡니다. 사용자를 대신하여 리소스 소유자와 HTTP 공급자 간의 승인된 상호 작용을 구성하거나 타사 애플리케이션이 사용자를 대신하여 액세스할 수 있도록 허용합니다. 또한 웹 애플리케이션, 데스크톱 애플리케이션, 휴대폰, 거실 장치에 대한 전용 인증 프로세스도 제공합니다. 2012년 10월 OAuth 2.0 프로토콜이 RFC 6749로 공식 출시되었습니다.

머리말:

OAuth 1.0은 이미 IETF(International Internet Engineering Task Force)에 있으며 RFC5849로 번호가 지정되었습니다.

이는 또한 OAuth가 공식적으로 인터넷 표준 프로토콜이 되었음을 나타냅니다.

OAuth 2.0은 이미 논의되고 초안이 작성되었습니다. OAuth2.0은 차세대 "사용자 인증 및 권한 부여" 표준이 될 가능성이 높습니다. Baidu Open Platform 및 Tencent Open Platform과 같은 대부분의 개방형 플랫폼은 이제 OAuth 2.0 프로토콜을 지원으로 사용합니다.

OAuth(개방형 인증)는 사용자가 타사 애플리케이션에 사용자 이름과 비밀번호를 제공하지 않고도 웹사이트에 저장된 사용자의 개인 리소스(사진, 비디오, 연락처 목록 등)에 타사 애플리케이션이 액세스할 수 있도록 허용하는 개방형 표준입니다.

OAuth

를 사용하면 사용자는 사용자 이름과 비밀번호 대신 토큰을 제공하여 특정 서비스 제공업체에 저장된 데이터에 액세스할 수 있습니다. 각 토큰은 특정 웹사이트(예: 비디오 편집 웹사이트)가 특정 기간(예: 다음 2시간 이내) 내에 특정 리소스(예: 특정 앨범의 비디오만)에 액세스할 수 있도록 승인합니다. 이러한 방식으로 OAuth를 사용하면 사용자는 액세스 권한이나 데이터의 전체 내용을 공유하지 않고도 제3자 웹사이트가 다른 서비스 제공자에 저장된 정보에 액세스할 수 있도록 승인할 수 있습니다.

OAuth는 OpenID를 보완하지만 완전히 다른 서비스입니다.

OAuth 2.0

은 OAuth 프로토콜의 다음 버전이지만 이전 버전인 OAuth 1.0과 호환되지 않습니다. OAuth 2.0은 클라이언트 개발자를 위한 단순성에 중점을 두는 동시에 웹 애플리케이션, 데스크톱 애플리케이션, 모바일 및 거실 장치에 특화된 인증 흐름을 제공합니다. 2012년 10월, OAuth 2.0 프로토콜이 RFC 6749[1]로 공식 출시되었습니다.

Facebook의 새로운 Graph API는 OAuth 2.0만 지원합니다. Google은 2011년 3월에 Google API의 OAuth 2.0 지원을 발표했습니다.

인증 및 승인 프로세스:

인증 및 승인 프로세스에 참여하는 세 당사자는 다음과 같습니다.

1. 서비스 공급자를 사용하여 사진, 비디오, 연락처 목록과 같은 보호된 리소스를 저장합니다.

2. 서비스 제공자에 저장된 보호 리소스의 소유자인 사용자.

3. 클라이언트, 서비스 제공자의 리소스(일반적으로 사진 인쇄 서비스를 제공하는 웹사이트 등)에 액세스하려는 타사 애플리케이션입니다. 인증 프로세스에 앞서 클라이언트는 서비스 제공자로부터 클라이언트 ID를 신청해야 합니다.

OAuth를 이용한 인증 및 승인 과정은 다음과 같습니다.

사용자는 서비스 제공자에 저장된 리소스를 조작하고자 합니다.

사용자는 클라이언트에 로그인하고 서비스 제공자에게 임시 토큰을 요청합니다.

서비스 제공자는 클라이언트의 신원을 확인한 후 임시 토큰을 부여합니다.

클라이언트가 임시 토큰을 얻은 후 사용자 인증을 요청하기 위해 서비스 제공업체의 인증 페이지로 사용자를 안내합니다. 이 과정에서 임시 토큰과 클라이언트의 콜백 연결이 서비스 공급자에게 전송됩니다.

사용자는 서비스 제공업체의 웹페이지에 사용자 이름과 비밀번호를 입력한 다음 클라이언트가 요청한 리소스에 액세스할 수 있도록 승인합니다.

인증이 성공적으로 완료되면 서비스 제공업체는 사용자에게 클라이언트의 웹페이지로 돌아가도록 안내합니다.

클라이언트는 임시 토큰을 기반으로 서비스 공급자로부터 액세스 토큰을 얻습니다.

서비스 제공자는 임시 토큰과 사용자 인증을 기반으로 클라이언트에게 액세스 토큰을 부여합니다.

클라이언트는 획득한 액세스 토큰을 사용하여 서비스 공급자에 저장된 보호된 리소스에 액세스합니다.

간략한 역사적 검토

OAuth 1.0은 2007년 12월 말에 출시되어 빠르게 업계 표준이 되었습니다.

2008년 6월 OAuth 1.0 Revision A가 출시되었습니다. 이는 주로 보안 취약점을 수정한 약간 수정된 버전입니다.

2010년 4월, 프로토콜 번호 RFC 5849인 IETF에서 마침내 OAuth 1.0이 출시되었습니다.

OAuth 2.0 초안은 2011년 5월 초 IETF에서 공개되었습니다.

OAuth는 사용자가 비밀번호를 공유하지 않고도 웹 리소스에 대한 제3자 액세스 권한을 부여할 수 있게 해주는 보안 프로토콜입니다.

OAuth는 사용자가 제3자 애플리케이션에 사용자의 웹 리소스에 액세스할 수 있는 권한을 부여할 수 있는 보안 관련 프로토콜입니다. , 제3자 애플리케이션에 비밀번호를 공개할 필요가 없습니다.

OAuth 2.0은 새로운 프로토콜이며 이전 버전과 호환되지 않습니다. 그러나 OAuth 2.0은 이전 버전의 OAuth와 동일한 전체 아키텍처를 유지합니다.

이 초안은 OAuth2.0의 요구 사항과 목표를 기반으로 하며 1년 동안 토론을 거쳤습니다. 토론에는 Yahoo!, Facebook, Salesforce, Microsoft, Twitter를 포함하여 업계의 다양한 유명 기업이 참여했습니다. , Deutsche Telekom, Intuit, Mozilla 및 Google.

OAuth 2.0의 새로운 기능:

6개의 새로운 흐름

사용자 에이전트 흐름 – 클라이언트는 사용자 에이전트(일반적으로 웹 브라우저 등)에서 실행됩니다.

웹 서버 흐름 – 클라이언트는 웹 서버 프로그램의 일부이며 http 요청을 통해 액세스됩니다. 이는 OAuth 1.0에서 제공하는 프로세스의 단순화된 버전입니다.

장치 흐름 – 클라이언트가 제한된 장치에서 작업을 수행하는 데 적합하지만 최종 사용자는 독립적으로 다른 컴퓨터나 장치의 브라우저에 액세스합니다.

사용자 이름 및 비밀번호 흐름 – 이 프로세스의 적용 시나리오는 사용자가 클라이언트 처리 ID를 신뢰하는 것입니다. 자격 증명이 있지만 여전히 클라이언트가 사용자 이름과 비밀번호를 저장하는 것을 원하지 않습니다. 이 프로세스는 사용자가 클라이언트에 대해 높은 수준의 신뢰를 갖고 있는 경우에만 작동합니다.

클라이언트 자격 증명 흐름 – 클라이언트는 ID 자격 증명을 사용하여 액세스 토큰을 얻습니다. 이 흐름은 2-legged OAuth 시나리오를 지원합니다.

Assertion Flow – 클라이언트는 SAML 어설션과 같은 액세스 토큰에 대해 어설션을 교환합니다.

애플리케이션 지원(데스크톱 또는 모바일 장치에서 실행되는 애플리케이션)은 위의 다양한 흐름을 사용하여 구현할 수 있습니다.

holder token

OAuth 2.0은 암호화가 필요하지 않은 인증 방법을 제공합니다. 이 방법은 기존 쿠키를 기반으로 합니다. 토큰 자체는 비밀로 사용되며 HTTPS를 통해 전송되므로 HMAC 및 토큰 비밀을 대체하여 암호화되어 전송되므로 원본을 따르지 않고도 cURL을 사용하여 API 호출 및 기타 간단한 스크립팅 도구를 시작할 수 있습니다. 메소드를 요청하고 서명하세요.

서명 단순화:

서명 지원을 위해 서명 메커니즘이 크게 단순화되었으며 특별한 구문 분석, 인코딩 및 매개 변수 정렬이 필요하지 않습니다. 하나의 비밀을 사용하여 원래 두 개의 비밀을 대체합니다.

단기 토큰 및 장기 신원 자격 증명

원래 OAuth는 유효 기간이 매우 긴 토큰을 발행합니다(일반적으로 유효 기간은 1년이거나 유효 기간 제한 없음). OAuth 2.0에서는 서버가 짧은 유효 기간 토큰 및 장기 새로 고침 토큰. 이를 통해 클라이언트는 사용자에게 다시 요청하지 않고도 새 액세스 토큰을 얻을 수 있으며 액세스 토큰의 유효 기간도 제한됩니다.

역할 분리

OAuth 2.0은 두 가지 역할로 나뉩니다.

인증 서버는 사용자 인증을 받고 토큰을 발급하는 역할을 담당합니다.

리소스는 API 호출 처리를 담당합니다.

위 내용은 OAuth 2.0이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.