홈페이지 » 인터넷 » OAuth Connect 란 무엇이며 어떻게 사용합니까?

    OAuth Connect 란 무엇이며 어떻게 사용합니까?

    우리 중 많은 사람들이 웹을 탐색 할 때 OAuth와 접촉하며, 우리 대부분은 그 존재를 인식하지 못합니다. OAuth (공개 인증)는 타사 웹 사이트에 사용자 계정 (예 : Twitter 또는 Facebook 계정)에 대한 제한된 액세스 권한을 부여하는 시스템입니다. 방문자가 새 계정을 등록하거나 사용자 이름과 암호를 제 3 자에게 공개하지 않고도 사이트 내에서 상호 작용할 수 있습니다..

    이 가이드에서는 OAuth의 개념과 개발자에게 어떻게 적용 할 수 있는지 소개하고자합니다. OAuth 응용 프로그램을 구현하는 데 관련된 기술적 세부 사항이 많이 있습니다. 내 예제는 Twitter 라이브러리 래퍼를 사용하여 PHP로 작성되지만 Python에서 Ruby 또는 Objective-C에 이르는 거의 모든 프로그래밍 API를 사용할 수 있습니다..

    컨셉이 이상하게 느껴질지라도 가능한 한 많이 소화하려고하십시오. 2007 년에 초안을 작성한 것은 여전히 ​​신비한 기술입니다. 처음 몇 개의 튜토리얼을 작성한 후에도 OAuth 연결을 완벽하게 개발하는 방법을 이해하지 못했지만, 계속 사용하면 빠르게 파악할 수 있습니다. 이제 처음으로 일을 시작하고 작은 소개!

    우리가 해결할 수있는 문제점?

    인터넷이 얼마나 더 많이 연결되어 있는지 고려해 보면 사용자가 Facebook에서 Twitter, Tumblr, Foursquare로 여러 계정간에 정보를 공유하고 Path 또는 Instagram과 같은 모바일 앱으로 정보를 공유하기를 원할 것입니다. 우리가 직면 한 문제는 가능한 한 가장 안전하고 간단한 방법으로이를 수행하는 방법입니다. OAuth 1.0은 이전 OpenID 표준에 비해이 문제를 해결하기위한 시도입니다. 사용자는 아직 OpenID에 연결하기 위해 타사 웹 사이트에 사용자 이름 / 비밀번호를 입력하고 있습니다. 이렇게해도 사용자가 더 안전하지는 않습니다. OAuth 사양에 따라 사용자는 개인 계정 데이터를 타사 데이터베이스에 저장할 필요가 없습니다..

    (이미지 출처 : Martin Hassman)

    OAuth를 사용하면 메인 계정 공급자 (예 : Twitter, Facebook)가 먼저 귀하 (사용자)를 인증 페이지로 리디렉션합니다. 그런 다음 사용자는 주 네트워크에 로그인 한 다음 타사 웹 사이트에 대한 새 연결을 수락하거나 거부합니다. 이 기술은 쉽게 사용할 수 있으며 언제든지 계정 설정에서 연결을 인증 할 수 없습니다. 이 프로토콜을 상대방보다 훨씬 더 안전하게 만드는 제 3 자에게는 암호가 제공되지 않습니다.

    프로세스 작동 방식

    표준 OAuth 호출에는 3 가지 참여자가 있습니다.

    • 서비스 공급자 - 데이터를 가져 오려는 주 네트워크. 사용자 이름, 프로필 사진, 웹 사이트 URL 및 기타 정보와 같은 API 응답을 제공합니다..
    • 소비자 - 데이터 수신을 원하는 타사 앱. 이것은 초기 연결 요청을하는 웹 사이트 또는 모바일 앱이며 승인 후 반환 데이터도 처리합니다..
    • 사용자 - 당신이 될 웹 사이트와 상호 작용하는 컴퓨터 뒤에 앉아있는 사람.!

    OAuth의 목적은 웹 사이트에 사용할 특정 라이브러리를 제공하는 것이 아닙니다. 실제로 “규칙들” 공개 프로토콜 API를 작성하기위한 것입니다. 따라서 우리 모두가이 기술의 이점을 누릴 수는 있지만 실제로이 분야에 관심을 가질 개발자들입니다. 더 많은 정보가 필요하면 개정판 v1.0 판을 2010 년 4 월에 릴리스하십시오..

    양문형 보안

    전체 프로세스에는 궁극적으로 액세스 토큰과 함께 2 개의 다른 키가 필요합니다. 키는 응용 프로그램을 등록한 후 루트 서비스에 의해 제공됩니다. 고객비밀 ID. 서버가 앱을 인식 할 수 있도록 클라이언트 URL이 일반적으로 인증 URL로 전달됩니다..

    서버에서 앱의 ID를 확인할 수 있도록 비밀번호에 비밀 ID가 있습니다. 마찬가지로 원격 서버는 자신의 비밀 ID를 자신의 것과 일치 시키므로 실수로 페이스 북의 API에 트위터 요청을 보내거나 반대의 경우도 마찬가지입니다. 사용자가 연결을 승인하고 모든 키가 일치하면 난수와 문자가 긴 코드로 웹 사이트에 반환됩니다.

    이 코드는 새 코드를 생성하는 데 사용됩니다. 액세스 토큰. 쿠키는 사용자를 웹 사이트에 로그인 상태로 유지하기 위해 쿠키에 저장할 수있는 세션 변수와 유사하게 작동합니다. 유일한 차이점은 많은 서비스가 액세스 토큰과 비밀 액세스 토큰을 되돌려 보낼 것이라는 점입니다. 서버에서 데이터를 가져 오려면이 두 가지가 모두 필요합니다. 예를 들어 사용자의 프로필 사진에 자신의 웹 사이트에 복사본을 저장하도록 요청할 수 있습니다.

    Twitter OAuth 예제 라이브러리

    개발자는 종종 처음부터 시작할 가능성이 없으므로 이전에 구축 한 라이브러리를 살펴 보지 않겠습니까? PHP로 작업 할 때 우리의 시간을 절약하고 두통을 피할 수 있습니다. Twitter API 위에 정말 간단한 예제를 작성해 보겠습니다..

    GitHub의 Jaisen Mathai가 Twitter 비동기를 적극 권장합니다. 그것은 완벽하게 작동하며 우리가 볼 수있는 몇 가지 매우 간단한 예제 코드를 제공합니다. 지금은 .zip을 다운로드 할 수 있지만 코드를 살펴보기 전에 Twitter에서 앱 ID를 등록하고 가져와야합니다..

    새 응용 프로그램 등록

    Twitter Dev Center는 API를 처음 시작하는 사람들을위한 훌륭한 자료입니다. 몇 년 동안 여러 번 쓰고 다시 썼습니다. 우리가 원하는 페이지는 https://dev.twitter.com/apps/new입니다. 처음 로그인 할 때 새로운 애플리케이션에 대한 자격 증명을 입력해야합니다..

    사용자가 Twitter를 사용하여 권한을 부여하면 앱 이름과 설명이 표시됩니다. 타사 주소를 구별하기 위해 웹 URL도 중요합니다. 테스트를 위해 localhost를 사용할 수 있지만 라이브 도메인에서 작업하는 것이 더 쉬울 것이지만이 방법을 권장하지는 않습니다. 무료 웹 호스트에 가입하고 거기에서 스크립트를 실행하는 것만 큼 쉽습니다..

    콜백 URL은 방문자가 승인을 수락하거나 거절하면 최종 목적지로 표시됩니다. 프로그래머가 Twitter에서 응답을 읽고 그에 따라 메시지를 출력하는 것은 당신의 임무입니다. 비동기 라이브러리에서 이미 일부 자격 증명이 있지만 콜백 URL이 외부 블로그에 지정되어 있기 때문에 작동하지 않습니다. 완전히 연결된 OAuth 웹 앱을 만드는 데 관심이 있다면 아래에 자세한 자습서가 포함되어 있습니다..

    코드 확인

    원격 웹 호스트를 사용하는 경우 비동기 라이브러리의 압축을 풀어 새 디렉토리에 업로드 할 수 있습니다. 그렇지 않으면 소스 코드를 체크 아웃 할 수 있습니다. 우리는 어쨌든 새로운 연결을 끌어낼 수 없을 것입니다. 그러나 소스 코드를 업로드하고 편집하는 실습 경험은 항상 학습 과정입니다..

    루트 디렉토리에 이름이 지정된 스크립트가 있습니다. simpleTest.php. 내부에는 포함 된 OAuth 라이브러리와 관련된 PHP 코드가 많이 있습니다. 모든 것을 함께 할 수는 없지만 중요한 코드 블록을보고 중요한 세부 사항을 찾아야합니다..

     

    소비자 키와 비밀 ID에는 토큰과 비밀 토큰 ID와 함께 4 가지 매우 중요한 변수가 있습니다. 모든 API 서비스가이 4 세트를 필요로하지는 않지만 적절한 OAuth 프로토콜입니다. EpiTwitter 클래스는 모든 4 개의 값을 매개 변수로 요구하며 Twitter에 대한 연결 URL을 생성합니다..

    https://api.twitter.com/oauth/authorize?oauth_token=TOKEN_ID_HERE

    이 새로운 동적 URL을 통해 사용자를위한 로그인 버튼을 만들 수 있습니다. 그러면 먼저 사용자가 연결을 수락하거나 거부하는 안전한 Twitter API 페이지로 연결됩니다. 선택에 상관없이 사용자는 앱 콜백 URL로 리디렉션됩니다. 전체 공개 프로토콜은 특히 모든 언어로 제공되는 라이브러리를 사용하여 신속한 개발이 가능하도록 매우 깨끗한 관점을 가지고 있습니다..

    관련된 링크들

    • 유엔 오우 슈 1.0 가이드
    • OAuth에 대한 부드러운 소개
    • OAuth FAQ
    • Facebook 인증 개발자 가이드
    • 간단한 트위터 OAuth Signin
    • Cocoa Objective-C에서 Twitter와 OAuth 사용하기
    • 지능적으로 레일스에서 ​​OAuth 사용

    결론

    OAuth에 대한이 소개가 프로토콜을 통한 앱 구축에 관심을 갖기를 바랍니다. 많은 개발자들이 이러한 솔루션을 위해 노력해 왔으며 OAuth 2.0은 상호 연결된 소셜 네트워크의 미래 일 수 있습니다. 저는 이미 트위터 계정에 24 개가 넘는 연결을 사용하고 있으며 개발자의 문서에 깊은 인상을 받았습니다.!

    분명히이 주제에 대해 많은 이야기가 있습니다. 그것은 당신이 한자리에서 완전히 처리 할 수있는 것이 아닙니다. 더 많은 OAuth 솔루션을 찾으려면 인터넷을 둘러보고 아래의 토론 영역에서 의견을 보내주십시오..