концепция
Полное имя SSO на английском языке Единый вход, единый вход.
В системах с несколькими приложениями вам нужно войти в систему только один раз, чтобы получить доступ к другим взаимно доверенным системам приложений.
Например: Taobao (www.taobao.com), Tmall (www.tmall.com), Juhuasuan (ju.taobao.com), Fliggy (www.fliggy.com) и т. д. Это веб-сайт Alibaba Group. Среди этих веб-сайтов мы регистрируемся на одном из веб-сайтов, и когда мы посещаем другие веб-сайты, нам не нужно снова входить в систему, что является основной целью SSO.
выгода
Перспектива пользователя
Пользователи могут войти в систему один раз и использовать ее несколько раз без необходимости записывать несколько наборов имен пользователей и паролей.
взгляд системного администратора
Администратору нужно только поддерживать единый центр учета, что удобно.
Новая перспектива развития системы
При разработке новой системы вам нужно только напрямую подключиться к единому учетному центру, что упрощает процесс разработки и экономит время.
Техническая реализация
блок-схема
Введение в процесс
Если такого введения нет, картинка выше точно запутается.
Система А и система Б отделены от фронтенда и бэкэнда. Например, React/Vue/Angular, используемые во фронтенд-фреймворках, компилируются и развертываются независимо через NPM. Фронтенд и бэкенд взаимодействуют полностью через HTTP-интерфейсы, а еще могут быть front-end и back-end проекты.Доменные имена разные.
Центр сертификации SSO либо отделен от фронтенда и бэкенда, либо код фронтенда и код бэкенда развернуты в одном проекте.
Зачем использовать эти два случая?
На самом деле, именно для этих двух ситуаций в блок-схеме, чтобы было понятно, и будет понятно, если потом поменять на какую-нибудь.
Только представь:
Все три системы отделены от передней и задней частей Как следует настроить блок-схему?
Три системы не отделены от фронта и бэкэнда Как скорректировать блок-схему?
Внешний интерфейс
Система A и система B: пользователь выходит из интерфейса.
Центр аутентификации SSO: интерфейс выхода пользователя и интерфейс проверки токена.
Авторизоваться
То же, что и приведенная выше блок-схема.
Система A и система B: используйте аутентификацию с помощью токена для входа в систему.
SSO Authentication Authority: Войдите в систему, используя сеансовую аутентификацию.
Front-end и back-end проекты разделены, а вход в систему осуществляется с помощью токенов. Front-end должен передавать параметр token каждый раз, когда он запрашивает интерфейс.
покидать
На приведенном выше рисунке показана блок-схема выхода из определенной системы.
Для выхода вы также можете выйти из центра сертификации SSO, а затем вызвать пользовательский интерфейс выхода каждой системы.
Когда пользователь снова выполнит операцию, он перейдет к интерфейсу входа в систему SSO.
Метод генерации токена
Чтобы создать глобальный сеанс, вы можете использовать сеанс для сохранения сеанса в Redis.
Генерация токена может использовать JWT.
Справочный адрес PHP JWT: https://github.com/lcobucci/jwt
Конечно, вы также можете настроить способ генерации токена.
резюме
Объясните, что такое SSO, а также использование и преимущества SSO, и разберитесь пошагово согласно блок-схеме, в принципе этого можно добиться.
Если у вас возникнут какие-либо проблемы в течение этого периода, вы можете подписаться на официальный аккаунт, чтобы связаться со мной.
расширять
Разница между SSO и OAuth
Когда дело доходит до SSO, многие люди думают об OAuth, а некоторые люди думают о SSO, когда говорят об OAuth.Здесь я кратко расскажу о разнице.
С точки зрения непрофессионала, SSO имеет дело с проблемой входа в систему между различными системами приложений в компании.Например, у Alibaba есть много систем приложений.Нам нужно только войти в одну систему, чтобы осуществить переход между различными системами.
OAuth — это схема авторизации и протокол авторизации, которым следуют разные компании, обычно предоставляемые крупными компаниями, такими как Tencent и Weibo. Обычно мы используем логин QQ, логин Weibo и т. д. Преимущество использования OAuth заключается в том, что для входа в систему можно использовать другие сторонние учетные записи, что снижает риск потери пользователя из-за лени и нежелания пользователей регистрироваться.
Теперь некоторые платежные сервисы также используют OAuth, например платеж WeChat и платеж Alipay.
Есть также некоторые открытые платформы, которые также используют OAuth, такие как Baidu Open Platform и Tencent Open Platform.
Связь между SSO и RBAC
Если на предприятии несколько систем управления, теперь в каждой системе один логин, и он настроен на единую аутентификацию входа.
Затем каждая система управления имеет контроль полномочий, опираясь на опыт единой аутентификации при входе в систему, мы также можем выполнить унифицированный набор аутентификации полномочий RBAC.
Рекомендуемое чтение
Эту статью можно переслать, пожалуйста, укажите автора и источник для пересылки, спасибо!