SSO: Кому оно нужно и как его готовить?

51
Company Name Your company tagline

Transcript of SSO: Кому оно нужно и как его готовить?

Company NameYour company tagline

SSO (Single Sign On)

SSO (Single Sign-On) — технология, при использовании которой пользователь переходит из одного раздела портала в другой без повторной аутентификации.

©Wikipedia

Нужна авторизация!

Нужна авторизация!

Нужно больше сайтов!!!

Нужно еще больше сайтов!!!

Проблемы

1. Каждый раз заполнять профиль

2. При изменении данных - нужно менять везде.

3. Отдельный логин на разных сайтах

(напрягает)

4. Отдельный логаут на разных сайтах

(безопасность)

Аналитика

1. Показывать активность пользователей

2. Кросс-сейл

3. И чтобы всё красиво и в админке :)

Синхронизация данных

1. Логин?

2. Email?

3. Логин через различные соцсети.

4. GAUID - ID пользователя в базе.

Что делать?

Один сайт? Нет, серьезно!

SSO спешит на помошь!

Почти как микросервисы

OAuth

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

©Wikipedia

Authentication

Authorization

SSO vs OAuth

SSO:● Передает профиль (custom)● Фоновый вход ● Единый вход/выход● Единый ИД пользователя

OAuth: (authentication)● Передает профиль.● Вход в 1 клик

Google Services

Wikipedia

Habrahabr & Co

Нужно ли вам SSO?

Да, если:● Сайты с общей тематикой.● Есть общий функционал.● Планируется создание эко-системы.

Нет, если:● Набор отдельных сайтов

Достоинства SSO

1. Единый список пользователей. (общий ID)2. Удобный трекинг активности.3. Права могу настраиваться в одном месте. (optional)4. Единый кабинет пользователя.5. Единоразовый вход/выход для работы со всеми сайтами

системы.6. Нужно запомнить всего одну пару логин/пароль (optional)7. Отдельный Auth сервис. Меньше кода - меньше багов.)8. Отдельный домен для авторизационных cookies.

Недостатки SSO

1. Один логин/пароль на всё.

2. Одна точка входа. (отказ системы).

Лечим Недостатки SSO

Простой пароль

1. Запрещаем создание простых паролей.

2. Двухфакторная авторизация.

3. Правильная защита от брутфорса и подобных атак.

Отказ системы

1. Причины отказов. (60% - косяки сотрудников)

2. Падение OAuth провайдеров.

3. Дублирование серверов.

4. Long-term cookies на конечных сервисах.

Основной функционал

1. Log-in/Sing-up

2. Log-out

3. Проверка состояния (залогинился ли в других местах).

4. Удаленное создание сессии.

5. Удаленный дроп сессии.

Log-in/Sign-up

Log-out

Autolog-in

API Bridge

1. Межсерверное взаимодействие

2. Подпись запросов (hmac)

3. Проверка timestamp

Редиректы

SPA

Ajax crossdomainLog-in?

Iframes!

PostMessage

Еще немного Security

1. HTTPS (+Preloaded HSTS)

2. CSP

3. Session Fixation

4. Подключение других соцсетей. (FB)

Login: [email protected]: *******

Auth Server

Login: [email protected]: *******

FB: facebook_idEmail: [email protected]

Auth Server

СпасибоШкарбалюк Александр, Мой Город.

Site: https://moy-gorod.od.uaFB: https://www.facebook.com/alexxvotE-mail: [email protected]