Описание системы — единый вход SSO

Архитектура PHP
Описание системы — единый вход SSO

концепция

Полное имя 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.

Рекомендуемое чтение

Эту статью можно переслать, пожалуйста, укажите автора и источник для пересылки, спасибо!