Oauth 2.0 101

Зміст:

Anonim

Багато розкішних автомобілів оснащені ключем камердинера. Це спеціальний ключ, який ви надаєте парковці, і на відміну від звичайного ключа, дозволить їхати автомобілю лише на невеликій відстані, перекриваючи доступ до багажника та бортового стільникового телефону. Незалежно від обмежень, які встановлює ключ камердинера, ідея дуже розумна. Ви надаєте комусь обмежений доступ до вашого автомобіля спеціальним ключем, використовуючи інший ключ, щоб розблокувати все інше. - Офіційний посібник з OAuth 1.0


Ось таким чином вказівки щодо специфікацій на базі спільноти пояснили OAuth ще в 2007 році. І хоча OAuth 2.0 є абсолютно новим протоколом, той самий опис все ще застосовується - OAuth залишається способом для користувачів надавати сторонній доступ (і обмежений доступ) до своїх ресурси, не обмінюючись своїми паролями.


Якщо ви є в Інтернеті регулярно, швидше за все, ви натрапили на сайт, який використовує OAuth. Зрештою, найбільші світові веб-сайти, такі як Facebook, Google, MySpace, Twitter, Photobcuket, Yahoo, Evernote та Vimeo, використовують цей стандарт аутентифікації. Читайте далі, щоб дізнатися більше про цей стандарт, і чому наступне покоління, OAuth 2.0, все ще використовується на відносно експериментальній основі.

Що таке OAuth 2.0?

По-перше, ви повинні знати, що робить OAuth як протокол: це дозволяє авторизацію інтерфейсу програмування між двома веб-або настільними програмами. Як результат, веб-сайти мають змогу ділитися захищеними ресурсами з іншими веб-сайтами та службами.


Наприклад, якщо ви граєте в програму Scramble з друзями на своєму iPad, ви можете ввести свої облікові дані у Facebook, дозволяючи грі переглядати список ваших друзів, щоб побачити, хто з них грає в цю гру - і запросити інших приєднатися. Або ви можете зв’язатися з друзями в Google+ на основі того, хто стежить за вами у Twitter. Цей тип додатків зручний для користувачів, але вони передбачають надання одному сайту чи програмі доступу до інформації про вас на іншому сайті.


OAuth 2.0 працює так само, як перший втілення OAuth, але він зовсім новий стандарт. Це означає, що воно не сумісне з OAuth 1.0. Версія 2.0 усунула багато проблем з оригінальним OAuth та внесла вдосконалення.


В основному зберігаючи архітектуру першої версії, 2.0 покращився на:

  • Аутентифікація та підписи. OAuth 2.0 полегшив реалізацію протоколу для клієнта.
  • Досвід користувачів та альтернативні способи видачі жетонів
  • Продуктивність, особливо з більшими веб-сайтами та службами
Більш вичерпне пояснення щодо нового в OAuth 2.0 надає Еран Хаммер, який раніше був членом робочої групи OAuth. Ви можете отримати доступ до нього тут. Однак зауважте, що Хаммер покинув робочу групу в липні 2012 року, посилаючись на проблеми з безпекою при впровадженні стандарту. Як результат, хоча OAuth повинен був бути доопрацьований до кінця 2010 року, він залишається запропонованим стандартом (на момент написання), хоча він є частиною графічного API API Facebook. Google та Microsoft також експериментують із підтримкою OAuth 2.0 у своїх API.

Переваги використання 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 році, а перша редакція відбулася через два роки.


OAuth 2.0 вийшов на сцену в 2010 році. Його мета полягала в тому, щоб зосередити увагу на простоті клієнта-розробника та бути легше масштабованою, а також покращити користувацький досвід.

Виклики попереду?

Хоча Google, Klout та інші великі імена впроваджують OAuth 2.0, все ще може бути похила дорога до цього протоколу. Існують критики з боку спільноти OAuth 2.0, включаючи занепокоєння щодо безпеки протоколу (багато хто вважає, що це менш безпечно, ніж OAuth 1.0).


За словами Хаммера, якщо його використовує компетентний програміст, який добре розбирається в веб-безпеці, OAuth 2.0 працює. На жаль, лише незначна частина розробників відповідає цьому законопроекту.


Крім того, коди OAuth 2.0 не можна використовувати повторно. Наприклад, протоколи OAuth 2.0, які використовує Facebook, не можуть бути легко використані іншими веб-сайтами. Більше того, новий протокол насправді набагато складніший за оригінал.


Але справжній кікер для багатьох людей полягає в тому, що, схоже, OAuth 2.0 не пропонує реальної переваги або покращення за 1, 0. Hammer пише, що якщо ви успішно впроваджуєте 1.0, немає підстав для оновлення до 2.0.


Однак OAuth 2.0 ще дуже живий. Якщо він звернеться до критики та порушених питань, він все ще може знайти місце як дуже потужний протокол. На момент написання, однак, версія 1.0 все ще вважається офіційною, стабільною та перевіреною версією OAuth. Тим не менш, для розробників, які прагнуть працювати з великими іменами в світі, реалізація цього протоколу може стати ключовим навиком у не надто віддаленому майбутньому.

Oauth 2.0 101