Що саме таке OAuth (відкрита авторизація)?
OAuth дозволяє повідомляти постачальника ресурсів (наприклад, Facebook), що власник ресурсу (наприклад, ви) надає дозвіл сторонній стороні (наприклад, додатку Facebook) доступ до їх інформації (наприклад, список ваших друзів).
Якби ви прочитали це висловлене просто, я зрозумів би ваше сум'яття. Тож давайте підемо з конкретним прикладом: приєднайтесь до чергової соціальної мережі!
Скажімо, у вас є обліковий запис GMail. Ви вирішили приєднатись до LinkedIn. Додавання всіх ваших багатьох, багатьох друзів вручну є стомлюючим та схильним до помилок. Ви можете набриднути на півдорозі або вставити помилки на свою електронну адресу для запрошення. Тож ви можете спокуситися не створювати обліковий запис.
Зіткнувшись із цією ситуацією, LinkedIn має гарну ідею (TM) написати програму, яка автоматично додає ваш список друзів, оскільки комп'ютери набагато ефективніші та ефективніші при стомлюючих і схильних до помилок завданнях. Оскільки приєднатися до мережі зараз так просто, то немає жодного способу відмовитись від такої пропозиції, чи не так?
Без API для обміну цим списком контактів, вам доведеться надати LinkedIn ім'я користувача та пароль для свого облікового запису GMail, тим самим надаючи їм занадто велику потужність .
Тут походить OAuth. Якщо ваш GMail підтримує протокол OAuth, то LinkedIn може попросити вас дозволити їм отримати доступ до вашого списку контактів GMail.
OAuth дозволяє:
- Різні рівні доступу: VS для читання і запису лише для читання. Це дозволяє надати доступ до вашого списку користувачів або двонаправлений доступ для автоматичної синхронізації нових друзів LinkedIn з вашими контактами GMail.
- Деталізація доступу: ви можете вирішити надати доступ лише до своєї контактної інформації (ім’я користувача, електронна пошта, дата народження тощо) або до всього списку друзів, календаря та іншого.
- Це дозволяє керувати доступом з програми постачальника ресурсів. Якщо стороннє додаток не забезпечує механізм скасування доступу, ви будете застрягати з ними, маючи доступ до вашої інформації. У системі OAuth передбачено можливість скасування доступу в будь-який час.
Чи стане це найближчим часом фактично (стандартом?)?
Але, хоча OAuth є важливим кроком вперед, він не вирішує проблем, якщо люди не користуються ним правильно. Наприклад, якщо постачальник ресурсів надає лише один рівень доступу для читання-запису всім вашим ресурсам одночасно і не забезпечує механізм управління доступом, це не має сенсу. Іншими словами, OAuth є основою для надання функцій авторизації, а не просто аутентифікації.
На практиці вона дуже добре підходить до моделі соціальної мережі. Це особливо популярно для тих соціальних мереж, які хочуть дозволити стороннім "плагінам". Це сфера, де доступ до ресурсів за своєю суттю необхідний, а також є по суті недостовірним (тобто у вас мало контролю за якістю цих програм або їх немає).
Я не бачив так багато інших видів використання в дикій природі. Я маю на увазі, я не знаю інтернет-фірми з фінансових консультацій, яка отримає доступ до ваших банківських записів автоматично, хоча технічно це можна використовувати таким чином.