webcamp 2016: php. Александр Шкарбалюк: sso: Кому оно нужно и как...
TRANSCRIPT
![Page 1: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/1.jpg)
Company NameYour company tagline
![Page 2: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/2.jpg)
SSO (Single Sign On)
SSO (Single Sign-On) — технология, при использовании которой пользователь переходит из одного раздела портала в другой без повторной аутентификации.
©Wikipedia
![Page 3: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/3.jpg)
![Page 4: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/4.jpg)
Нужна авторизация!
![Page 5: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/5.jpg)
Нужна авторизация!
![Page 6: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/6.jpg)
![Page 7: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/7.jpg)
![Page 8: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/8.jpg)
Нужно больше сайтов!!!
![Page 9: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/9.jpg)
Нужно еще больше сайтов!!!
![Page 10: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/10.jpg)
![Page 11: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/11.jpg)
![Page 12: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/12.jpg)
Проблемы
1. Каждый раз заполнять профиль
2. При изменении данных менять везде.
3. Отдельный логин на разных сайтах
(напрягает)
4. Отдельный логаут на разных сайтах
(безопасность)
![Page 13: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/13.jpg)
Аналитика
1. Показывать активность пользователей
2. Кросс-сейл
3. И чтобы всё красиво и в админке :)
![Page 14: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/14.jpg)
Синхронизация данных
1. Логин?
2. Email?
3. Логин через различные соцсети.
4. GAUID - ID пользователя в базе.
![Page 15: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/15.jpg)
Что делать?
![Page 16: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/16.jpg)
Один сайт? Нет, серьезно!
![Page 17: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/17.jpg)
![Page 18: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/18.jpg)
SSO спешит на помошь!
![Page 19: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/19.jpg)
Почти как микросервисы
![Page 20: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/20.jpg)
![Page 21: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/21.jpg)
![Page 22: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/22.jpg)
OAuth
OAuth — открытый протокол авторизации, который позволяет предоставить третьей стороне ограниченный доступ к защищённым ресурсам пользователя без необходимости передавать ей (третьей стороне) логин и пароль.
©Wikipedia
![Page 23: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/23.jpg)
Authentication
Authorization
![Page 24: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/24.jpg)
SSO vs OAuth
SSO:● Передает профиль (custom)● Фоновый вход ● Единый вход/выход● Единый ИД пользователя
OAuth: (authentication)● Передает профиль.● Вход в 1 клик
![Page 25: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/25.jpg)
Google Services
![Page 26: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/26.jpg)
Wikipedia
![Page 27: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/27.jpg)
Habrahabr & Co
![Page 28: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/28.jpg)
![Page 29: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/29.jpg)
Нужно ли вам SSO?
Да, если:● Сайты с общей тематикой.● Есть общий функционал.● Планируется создание эко-системы.
Нет, если:● Набор отдельных сайтов
![Page 30: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/30.jpg)
Достоинства SSO
1. Единый список пользователей. (общий ID)2. Удобный трекинг активности.3. Права могу настраиваться в одном месте. (optional)4. Единый кабинет пользователя.5. Единоразовый вход/выход для работы со всеми сайтами
системы.6. Нужно запомнить всего одну пару логин/пароль (optional)7. Отдельный Auth сервис. Меньше кода - меньше багов.)8. Отдельный домен для авторизационных cookies.
![Page 31: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/31.jpg)
Недостатки SSO
1. Один логин/пароль на всё.
2. Одна точка входа. (отказ системы).
![Page 32: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/32.jpg)
Лечим Недостатки SSO
![Page 33: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/33.jpg)
Простой пароль
1. Запрещаем создание простых паролей.
2. Двухфакторная авторизация.
3. Правильная защита от брутфорса и подобных атак.
![Page 34: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/34.jpg)
Отказ системы
1. Причины отказов. (60% - косяки сотрудников)
2. Падение OAuth провайдеров.
3. Дублирование серверов.
4. Long-term cookies на конечных сервисах.
![Page 35: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/35.jpg)
![Page 36: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/36.jpg)
Основной функционал
1. Log-in/Sing-up
2. Log-out
3. Проверка состояния (залогинился ли в других местах).
4. Удаленное создание сессии.
5. Удаленный дроп сессии.
![Page 37: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/37.jpg)
Log-in/Sign-up
![Page 38: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/38.jpg)
Log-out
![Page 39: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/39.jpg)
Autolog-in
![Page 40: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/40.jpg)
![Page 41: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/41.jpg)
API Bridge
![Page 42: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/42.jpg)
Редиректы
![Page 43: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/43.jpg)
SPA
![Page 44: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/44.jpg)
Ajax crossdomainLog-in?
![Page 45: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/45.jpg)
Iframes!
![Page 46: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/46.jpg)
PostMessage
![Page 47: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/47.jpg)
Еще немного Security
1. HTTPS (+Preloaded HSTS)
2. CSP
3. Session Fixation
4. Подключение других соцсетей. (FB)
![Page 48: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/48.jpg)
![Page 49: WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?](https://reader031.vdocuments.net/reader031/viewer/2022022414/586fbba11a28abe57d8b8aaf/html5/thumbnails/49.jpg)
СпасибоШкарбалюк Александр, Мой Город.
Site: https://moy-gorod.od.uaFB: https://www.facebook.com/alexxvotE-mail: [email protected]