Принципы построения распределенных Web-систем (часть 2)

Единственная аутентификация. Распределение ресурсов и информации по разным сайтам требует унификации доступа ко всем информационным ресурсам. Необходимым условием в данном случае является введение единой для всех сайтов базы пользователей системы с выделением им некоторых базовых прав доступа.

Для хранения учетных записей используется центральный сайт. Его средствами реализуется регистрация пользователей, открытая или закрытая, и управление их профайлами. Таким образом, на центральном сайте системы располагается полная объемная база данных пользователей сети и их основных прав доступа к ресурсам. Каждый из сайтов-сателлитов содержит локальную копию указанной базы данных в сокращенном виде. Использование сокращенной базы данных позволяет значительно снизить требования к аппаратной платформы за счет облегчения выполнения запросов к базе данных. При этом способе в локальной базе данных сайта-сателлита хранится информация только о тех пользователей, кто хотя бы один раз авторизовался на сайте.

Авторизация пользователей на сайте может осуществляться двумя разными алгоритмами: OAuth (OpenID) и прямая авторизация с вводом логина и пароля.

OAuth (от англ. Open Authentication)  представляет собой открытый стандарт аутентификации, позволяющий пользователям открывать доступ к своим частным данных (фотографии, видео, списки контактов), которые хранятся на одном сайте, иному сайту, без потребности ввода логина и пароля.

OAuth дает возможность пользователям раздавать сайтам маркеры для получения доступа к данным, которые размещаются на сайтах-сервисах. Каждый маркер доступа открывает доступ конкретному сайту (например, к сайту редактирования видео) к конкретным ресурсам (например, исключительно видео в конкретном альбоме) и на строго определенный срок (например, на 2 часа). Такой подход позволяет пользователям открывать доступ третьим сайтам и их информации, хранящейся на других сайтах-поставщикам услуг, в полной мере не передавая самих данных и без применения логина / пароля.

OpenID — протокол для ускоренной регистрации. OpenID — это децентрализованная  система единого входа, дающая возможность использовать одни (логин и пароль) на большом количестве сайтов. На сайтах с поддержкой OpenID, пользователю нет необходимости запоминать данные для аутентификации. Им всего лишь достаточно быть зарегистрированными в системе «провайдера идентификации» OpenID (предоставляющего идентификатор). Так как технология OpenID децентрализованная, то любой сайт может использовать ПО OpenID в качестве средства для аутентификации пользователей. OpenID является решением проблемы, когда необходимо полагаться на централизованный сайт с целью подтверждения подлинности пользователя.

Указанные протоколы являются наиболее распространенными в сети Интернет и используются многими крупными веб-проектами. Основным преимуществом данных протоколов является безопасность данных пользователя и сложность перехвата его личной информации. К недостаткам можно отнести необходимость перехода пользователя на внешние сайты OpenID / OAuth-провайдера (подключение внешних скриптов из этих сайтов) и использования дополнительных специализированных библиотек авторизации.

Прямая авторизация является альтернативным вариантом решения поставленной задачи. При данном способе аутентификации пользователь вводит свои логин и пароль системы на любом сайте-сателлите и получает доступ к его ресурсам. При этом сам механизм аутентификации является скрытым от пользователя и происходит на стороне сервера.

Авторизация происходит по следующему алгоритму.

1. Пользователь передает на сайт-сателлит свои логин и пароль.

2. Сайт-сателлит осуществляет запрос на сервер авторизации центрального сайта системы.

3. Сервер авторизации обрабатывает запрос от сайта-сателлита, и предоставляет как результат в случае неудачи — код ошибки, в случае успеха — массив данных, в который обязательно входят идентификатор пользователя в системе и уникальный для данного сайта-сателлита и пользовательский код, который используется для идентификации сессии пользователя на сайте.

4. Сайт-сателлит обрабатывает ответ сервера. При необходимости, в локальной базе данных сайта создается новый пользователь, или обновляются данные существующего пользователя.

5. Пользователь осуществляет вход на сайт или получает сообщение об ошибке входа.

Все Вышеуказанные выполняется по протоколу HTTPS.

Схема авторизации пользователей при помощи  протокола HTTPS

Рис. 1. Схема авторизации пользователей при помощи  протокола HTTPS

Таким образом, аутентификация и создание локального профиля происходит незаметно для пользователя, без внешнего использования дополнительных серверов аутентификации. При каждом входе пользователя в систему осуществляется проверка его данных и обновление устаревшей информации в локальной базе сайта (рис. 1). Таким образом, данные, такие как его имя, отображаемое, логин, контактная информация, всегда актуальны.

Плюсами прямой авторизации пользователей есть видимая простота реализации с точки зрения пользователя, использование привычного механизма логина и пароля, отсутствие дополнительных громоздких библиотек авторизации. К минусам подобного алгоритма необходимо отнести проблемы с безопасностью использования логина и пароля на сторонних сайтах и ​​подтверждение подлинности сайта и принадлежности его к системе до ввода пользователем своих персональных данных.

* * *

Вот и начался новый дачный сезон. Все впечатления от которого может испортить энцефалитный клещ. К сожалению, укусы этих мерзких клещей не дают покоя не всем, кто отдыхает на природе. Поэтому стоит быть весьма бдительным и применять надлежащие средства защиты.

Читайте также:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.