Top Banner
Company Name Your company tagline
51

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

Apr 16, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SSO: Кому оно нужно и как его готовить?

Company NameYour company tagline

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

SSO (Single Sign On)

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

©Wikipedia

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

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

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

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

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

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

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

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

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

Проблемы

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

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

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

(напрягает)

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

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

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

Аналитика

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

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

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

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

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

1. Логин?

2. Email?

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

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

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

Что делать?

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

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

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

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

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

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

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

OAuth

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

©Wikipedia

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

Authentication

Authorization

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

SSO vs OAuth

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

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

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

Google Services

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

Wikipedia

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

Habrahabr & Co

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

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

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

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

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

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

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

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

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

Недостатки SSO

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Log-in/Sing-up

2. Log-out

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

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

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

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

Log-in/Sign-up

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

Log-out

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

Autolog-in

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

API Bridge

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

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

3. Проверка timestamp

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

Редиректы

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

SPA

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

Ajax crossdomainLog-in?

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

Iframes!

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

PostMessage

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

Еще немного Security

1. HTTPS (+Preloaded HSTS)

2. CSP

3. Session Fixation

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

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

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

Auth Server

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

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

FB: facebook_idEmail: [email protected]

Auth Server

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

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

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