Авторизация с помощью открытого протокола OAuth
Приветствую вас, дорогие друзья! Сегодня я подготовил статью, в которой намерен рассказать об авторизации на внешних ресурсах через OAuth. Открытый протокол OAuth имеет много общего со стандартом OpenID, но при этом они остаются независимыми друг от друга.
OAuth — это протокол авторизации, который позволяет пользователю получить права на использование какого-либо ресурса (сайта или приложения) не передавая логин и пароль третьей стороне.
Открытый стандарт OpenID, который является средством децентрализованной системы аутентификации, всего лишь позволяет удостовериться, что пользователь — именно тот, за кого себя выдаёт и не более. А протокол OAuth позволяет авторизовать пользователя и выполнять действия от его имени — это основное и существенное отличие.
Использование OAuth 2.0 для доступа к API Google
Google API используют протокол OAuth 2.0 для аутентификации и авторизации. Google поддерживает работу с веб-серверами и клиентскими приложениями. Реализация сценария аутентификации соответствует спецификации OpenID Connect и прошла сертификацию в OpenID Foundation.
Для начала работы необходимо получить учетные данные клиента OAuth 2.0 в консоли Google API. Затем ваш сайт или приложение запрашивает токен доступа с сервера авторизации Google, извлекает токен из ответа и отправляет его в API Google, к которому вы хотите получить доступ. Разработчикам доступна для экспериментов тестовая площадка OAuth 2.0 Playground.
OAuth-авторизация с помощью API Яндекс ID
API Яндекс ID также использует открытый протокол авторизации OAuth 2.0. Для доступа к данным пользователей разработчику необходимо зарегистрировать своё приложение на сервисе Яндекс.OAuth, реализовать получение и обработку OAuth-токенов, а затем предоставить пользователям интерфейс входа через Яндекс.
При использовании OAuth-протокола пользователь не вводит свой пароль на другом сайте, поэтому учётная запись надёжно защищена и не может быть скомпрометирована. Таким образом пользователи Яндекса могут зарегистрироваться и войти в свой аккаунт на стороннем сайте, не заводя новую учётную запись.
Использование Mail ID для OAuth-авторизации
Mail ID предлагает разработчикам API для работы c OAuth-авторизацией Почты Mail.ru. Владелец сайта может добавить кнопку для входа пользователей под своим почтовым аккаунтом. Авторизация API Mail.Ru также основана на протоколе OAuth 2.0.
Процесс регистрации нового пользователя с помощью Mail ID очень прост: пользователь нажимает кнопку Mail ID для входа, и его профиль автоматически формируется на вашем сайте. Добавьте подсказки, и тогда пользователь точно не пропустит быстрый способ авторизации, а вы увеличите аудиторию.
Вход через Сбер ID
Сбер ID — это единый аккаунт для доступа к сервисам и партнёрам Сбербанка. Для подключения Сбер ID разработчику необходимо заключить договор на предоставление сервиса, затем настроить свой сайт или приложение в соответствии с рекомендациями банка.
Протокол взаимодействия между клиентом и партнёром разработан на основе стандарта OpenID Connect. Таким образом пользователи получают возможность войти на сайт партнёра банка по кнопке Сбер ID, а партнёры — настроить простую и быструю аутентификацию.
Open API для авторизации пользователей ВКонтакте
Open API — это система, которая предоставляет пользователям ВКонтакте возможность авторизовываться на вашем сайте. Перед началом работы с Open API необходимо создать новое приложение с типом «Веб-сайт» или «Standalone» и следовать дальнейшим указаниям помощника.
Это приложение позволяет использовать на сайте все текущие методы ВКонтакте API и упрощает регистрацию новых пользователей, если у них уже есть учётная запись ВКонтакте. SDK (Software Development Kit) содержит готовые реализации основных функций API, библиотеки для популярных платформ используют авторизацию OAuth 2.0 для взаимодействия с API.
Заключение
В качестве заключения напомню своим читателям, что вариантов входа на сайт или в приложение при помощи открытого протокола авторизации OAuth значительно больше, чем представлено в этом обзоре.
Свои API для реализации входа на внешние ресурсы имеют Госуслуги (Единая система идентификации и аутентификации), Одноклассники, Twitter, Facebook, GitHub, а также многие другие компании и организации.
Являясь современным стандартом идентификации, OAuth использует SSL для сохранения конфиденциальности данных, получает ограниченный доступ к личной информации пользователей, используя специальные токены. На этом всё, буду рад ответить на вопросы.
Здравствуйте! А для защиты данных можно установить любой SSL сертификат? Бесплатный также защищает?
Ответить
Aladdin, для небольшого сайта вполне подойдёт бесплатный SSL сертификат. Как правило, бесплатные сертификаты имеют небольшой срок действия (три месяца), отсутствует поддержка и гарантия сохранности данных сайта и печати доверия — специальной отметки УЦ, которая подтверждает, что сайт проверен и данные надёжно защищены.
Бесплатный SSL сертификат имеет низкий уровень доверия от крупных компаний, но рядовые пользователи разницы не заметят. В настоящее время выпуск бесплатных сертификатов Cloudflare или Let’s Encrypt автоматизирован и не требует дополнительных действий со стороны вебмастера.
Ответить