보안 Oauth 2.0 101

Oauth 2.0 101

차례:

Anonim

많은 고급 자동차에는 발레 키가 제공됩니다. 그것은 당신이 주차 승무원에게주는 특수 키이며 일반 키와 달리 트렁크와 온보드 휴대 전화에 대한 액세스를 차단하는 동안 자동차를 짧은 거리에서만 운전할 수 있습니다. 주차 대행 키가 부과하는 제한 사항에 관계없이 아이디어는 매우 영리합니다. 다른 키를 사용하여 다른 모든 것을 잠금 해제하는 동안 다른 사람이 특수 키를 사용하여 차에 제한적으로 액세스 할 수 있습니다. -OAuth 1.0 공식 안내서


이것이 커뮤니티 기반 사양 지침이 2007 년에 OAuth 방식을 설명한 방식입니다. OAuth 2.0은 완전히 새로운 프로토콜이지만 동일한 설명이 여전히 적용됩니다. OAuth는 사용자에게 타사 액세스 (및 제한된 액세스)를 비밀번호를 공유하지 않고


인터넷을 정기적으로 사용하는 경우 OAuth를 사용하는 사이트를 방문했을 가능성이 있습니다. 결국 Facebook, Google, MySpace, Twitter, Photobcuket, Yahoo, Evernote 및 Vimeo와 같은 세계 최대 웹 사이트는이 인증 표준을 사용합니다. 이 표준에 대해 자세히 알아보고 차세대 OAuth 2.0이 여전히 실험적으로 사용되는 이유를 알아보십시오.

OAuth 2.0이란 무엇입니까?

먼저 프로토콜로서 OAuth의 기능을 알아야합니다. 두 웹 또는 데스크톱 앱간에 응용 프로그램 프로그래밍 인터페이스 인증을 허용합니다. 결과적으로 웹 사이트는 다른 웹 사이트 및 서비스와 보호 된 리소스를 공유 할 수 있습니다.


예를 들어, iPad에서 친구들과 Scramble을 플레이하는 경우 Facebook 자격 증명을 입력하여 게임에서 친구 목록을 살펴보고 친구 중 누가 게임을하고 있는지 확인하고 다른 사람을 초대 할 수 있습니다. 또는 Twitter에서 나를 팔로우하는 사람을 기반으로 Google+에서 친구와 연결할 수 있습니다. 이러한 유형의 응용 프로그램은 사용자에게는 유용하지만 한 사이트 나 프로그램에 다른 사이트의 사용자 정보에 대한 액세스 권한을 부여합니다.


OAuth 2.0은 OAuth의 첫 번째 구현과 매우 유사하지만 완전히 새로운 표준입니다. 이는 OAuth 1.0과 호환되지 않습니다. 버전 2.0은 원래 OAuth의 많은 문제를 해결하고 개선했습니다.


기본적으로 첫 번째 버전의 아키텍처를 유지하면서 2.0은 다음과 같이 개선되었습니다.

  • 인증 및 서명. OAuth 2.0을 사용하면 클라이언트 측의 누군가가 프로토콜을 쉽게 구현할 수 있습니다.
  • 토큰을 발행하는 사용자 경험 및 대체 방법
  • 특히 더 큰 웹 사이트 및 서비스에서 성능
OAuth 2.0의 새로운 기능에 대한보다 포괄적 인 설명은 OAuth 워킹 그룹의 일원이었던 Eran Hammer가 제공합니다. 여기에서 액세스 할 수 있습니다. 그러나 표준을 구현할 때 보안 문제와 관련된 문제를 언급하면서 Hammer는 2012 년 7 월 워킹 그룹을 떠났습니다. 그 결과, OAuth는 2010 년 말까지 마무리 될 예정이지만 Facebook의 Graph API의 일부이지만 제안 된 표준 (작성 시점)으로 남아 있습니다. Google과 Microsoft는 API에서 OAuth 2.0 지원을 실험하고 있습니다.

OAuth 2.0 사용의 이점

OAuth를 사용하는 가장 좋은 이유 중 하나는 공유가 훨씬 쉬워지기 때문입니다. 우리는 이미 Instagram에 사진을 업로드하고 Twitter와 Facebook에 자동으로 게시하는 데 익숙했습니다. 사실, 소셜 미디어를 계속해서 매력적으로 만드는 것은 이런 종류의 사용 편의성과 크로스 오버입니다.


그러나 이것이 전부는 아닙니다. 최종 사용자의 경우 OAuth는 다른 프로필을 만들 필요가 없음을 의미합니다. 예를 들어 기사에 댓글을 남기려면 지정된 웹 사이트에서 계정을 등록 할 필요없이 Facebook 또는 Twitter 자격 증명을 사용하면됩니다. 일반적으로 활동하지 않거나 신뢰할 수없는 사이트에 유용합니다. 또한 댓글 스팸을 줄일 수 있도록 사용자가 Facebook에서 신원을 갖도록하여 사이트에 이익을 줄 수 있습니다.


OAuth는 또한 기억해야 할 암호가 적다는 것을 의미합니다. 웹 사이트 서비스마다 다른 비밀번호를 사용하는 것이 가장 좋습니다. 에 대한 다른 비밀번호를 기억하는 대신 Facebook 비밀번호 만 사용하여 서비스에 액세스해야합니다. 그런데 비밀번호가 표시되지 않습니다.


OAuth를 통해 액세스 할 리소스를 제한 할 수도 있습니다. 예를 들어 Facebook에서 게임을 할 때 게임을 대신하여 벽에 게시할지 여부를 지정할 수 있습니다.


개발자에게 OAuth 2.0은 인증, 소셜 상호 작용 표시 및 사용자 프로필 표시를 위해 이미 개발 된 코드를 제공합니다. 이는 API가 이미 디버깅, 테스트 및 검증 되었기 때문에 개발자가 해결해야 할 버그가 적고 위험이 적다는 것을 의미합니다. 마지막으로, 서버에 저장되는 데이터가 적다는 이점도 있습니다.

OAuth 2.0이 된 방법

OAuth가 안전한 컴퓨팅에 대한 요구와 다양한 웹 서비스에 대한 사용 편의성이라는 것은 명백합니다. 반면에 OAuth 2.0은 OAuth를 덜 복잡하게 만들 필요가 발생했습니다. 그러나 두 가지 모두에 대한 아이디어는 실제로 OpenID에서 나왔습니다.


OpenID는 사용자가 다른 웹 사이트의 로그인 자격 증명을 사용하여 다양한 서비스에 로그인 할 수있는 서비스입니다. 그러나 OpenID는 매우 제한적이어서 자신의 사이트에 대해 서로 다른 인증 프로토콜을 사용하는 사람들이 모였습니다. 첫 번째 OAuth 구현은 2007 년에 이루어졌으며 첫 번째 수정은 2 년 후에 나왔습니다.


OAuth 2.0은 2010 년에 등장했습니다. 클라이언트 개발자의 단순성에 중점을두고보다 쉽게 ​​확장 할 수있는 동시에 사용자 경험을 향상시키는 것이 목적이었습니다.

앞서 도전?

Google, Klout 및 기타 큰 이름으로 OAuth 2.0을 구현하고 있지만이 프로토콜을 사용하면 여전히 어려운 길이있을 수 있습니다. 프로토콜의 보안에 대한 우려를 포함하여 OAuth 2.0 커뮤니티 내에서 비판이 있습니다 (많은 사람들이 OAuth 1.0보다 덜 안전하다고 생각합니다).


Hammer에 따르면 웹 보안에 정통한 유능한 프로그래머가 OAuth 2.0을 사용한다고합니다. 불행히도 소수의 개발자 만이 그 법안에 맞습니다.


또한 OAuth 2.0 코드는 재사용 할 수 없습니다. 예를 들어 Facebook에서 사용하는 OAuth 2.0 프로토콜은 다른 사이트에서 쉽게 사용할 수 없습니다. 또한 새로운 프로토콜은 실제로 원래 프로토콜보다 훨씬 복잡합니다.


그러나 많은 사람들에게있어 중요한 것은 OAuth 2.0이 1.0보다 실질적인 이점이나 개선을 제공하지 않는 것입니다. Hammer는 1.0을 성공적으로 구현하면 2.0으로 업그레이드 할 이유가 없다고 말합니다.


그러나 OAuth 2.0은 여전히 ​​살아 있습니다. 그것이 제기되는 비판과 문제를 다루더라도 여전히 강력한 프로토콜로 자리를 찾을 수 있습니다. 그러나 작성 당시 버전 1.0은 여전히 ​​공식적이고 안정적이며 테스트 된 OAuth 버전으로 간주됩니다. 그럼에도 불구하고 온라인 세계에서 큰 이름으로 작업하려는 개발자에게는이 프로토콜을 안전하게 구현하는 것이 그리 멀지 않은 미래에 핵심 기술이 될 수 있습니다.

Oauth 2.0 101