WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как...

49
Company Name Your company tagline

Transcript of WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как...

Page 1: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Company NameYour company tagline

Page 2: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

SSO (Single Sign On)

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

©Wikipedia

Page 3: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 4: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

Page 5: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

Page 6: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 7: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 8: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

Page 9: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

Page 10: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 11: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 12: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Проблемы

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

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

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

(напрягает)

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

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

Page 13: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Аналитика

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

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

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

Page 14: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

1. Логин?

2. Email?

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

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

Page 15: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Что делать?

Page 16: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

Page 17: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 18: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

Page 19: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

Page 20: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 21: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 22: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

OAuth

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

©Wikipedia

Page 23: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Authentication

Authorization

Page 24: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

SSO vs OAuth

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

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

Page 25: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Google Services

Page 26: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Wikipedia

Page 27: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Habrahabr & Co

Page 28: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 29: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

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

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

Page 30: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

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

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

Page 31: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Недостатки SSO

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

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

Page 32: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

Page 33: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

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

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

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

Page 34: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

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

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

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

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

Page 35: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 36: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

1. Log-in/Sing-up

2. Log-out

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

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

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

Page 37: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Log-in/Sign-up

Page 38: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Log-out

Page 39: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Autolog-in

Page 40: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 41: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

API Bridge

Page 42: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Редиректы

Page 43: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

SPA

Page 44: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Ajax crossdomainLog-in?

Page 45: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Iframes!

Page 46: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

PostMessage

Page 47: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

Еще немного Security

1. HTTPS (+Preloaded HSTS)

2. CSP

3. Session Fixation

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

Page 48: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
Page 49: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?

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

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