Вначале были веб-сервисы. Они были многочисленны и непохожи друг на друга. Со временем некоторые исчезли, некоторые укрупнились, и что интересно — расселись по нишам. Есть социальные сети, фотохостинги, сервисы коротких сообщений и длинных текстов. А совсем недавно всё стало ещё интересней — сервисы стали становиться платформами. Теперь люди пользуются сервисами через другие сайты (фотохостинг сообщает о загруженной картинке в Твиттер), через настольные и мобильные программы (IM-клиент обновляет статус в Фейсбук).
Разработчики в Яндексе тоже активно превращают свои сервисы в удобные платформы, чтобы другие разработчики могли делать программы и сервисы, которые работают с вашими данными: фотографиями, блогом, почтой. Одна из ключевых точек этого процесса — авторизация.
Обязанности авторизации — быть безопасной и удобной. Если каждая программа или сервис просят у вас логин и пароль от Яндекса — это небезопасно, потому что с такими «ключами от всех дверей» они могут делать всё что угодно, например фото-программа может внезапно удалить вашу почту. Да и сам процесс ввода логина и пароля удобным не назовёшь, в особенности на мобильном телефоне.
Чтобы справиться с этими проблемами и был придуман единый стандартный протокол авторизации программ на сервисах — OAuth. С ним процесс авторизации, например, фото-программы на мобильном телефоне выглядит примерно так:
- Вы нажимаете кнопку «Авторизоваться»
- Открывается браузер на странице Яндекса
- На странице появляется надпись: «Программа просит разрешения загружать фотографии в ваши Яндекс.Фотки»
- Вы нажимате кнопку «Разрешить»
- Браузер закрывается, и вы попадаете в авторизованную программу.
В идеале вы вообще не вводите своего пароля. В большинстве же случаев, если вы не авторизованы на самом Яндексе, вы вводите пароль именно на нём, а не где-то ещё. А программа получает только те права, которые запросила.
Если вы заподозрите, что программа или сайт делают что-то, чего вам не хочется, или ваш аккаунт на этом сайте взломали, вы можете аннулировать доступ, зайдя на oauth.yandex.ru.
OAuth-сервер работает в Яндексе уже некоторое время, и сейчас доступен для разработки на платформах Я.ру и Яндекс.Фоток. Ими, конечно, дело не ограничится, и мы со временем планируем внедрить поддержку этого протокола и на других наших сервисах. Почему именно OAuth? Потому что мы любим открытые стандарты и не хотим заставлять разработчиков делать отдельно «авторизацию для Яндекса», которая была бы не похожа ни на что другое. Кроме того, сам протокол довольно хорошо продуман.
В качестве резюме: требуйте свежий OAuth от разработчиков программ для Яндекса и старайтесь не писать свои пароли куда попало!
Иван Сагалаев, Иван Челюбеев и Григорий Бакунов, любители открытых протоколов