FeL1ksS
@FeL1ksS

Как реализовать один сервис авторизации?

Здравствуйте.
Есть проект на Laravel, будет разработан еще один. Что общего между ними, так это пользователи (корпоративные), регистрации нет.

Необходима единая точка входа, через которую пользователи будут авторизоваться и получать доступ к другим приложениям. Так же нужно выдавать права доступа (роли) пользователям из одного места, а не в каждом проекте по отдельности.

Реализация:
  • Развернуть еще один Laravel проект, установив Laravel Passport, делать на него редирект, авторизоваться, получать токен. В этом же проекте реализовать админ панель для выдачи ролей

Вопросы:
  • Как настроить другие проекты на такой способ авторизации?

Установить на них Laravel Socialite и написать свой провайдер ? По типу авторизации через github, google ?
  • Что делать после получения токена?

В примерах по реализации Socialite, после получения токена создается пользователь (если его нет) и логиниться.
Но тогда в каждом проекте своя таблица с пользователями, хотя по факту они одни и те же. Верно ли это в моем случае? И как же им потом выдавать роли?
В существующем уже проекте для ролей используется пакет laravel-permission, как же быть сейчас? Использовать Token Scopes?
И главный вопрос, в правильном ли направлении я размышляю ?
  • Вопрос задан
  • 671 просмотр
Решения вопроса 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Возьмите готовое решение. Вам нужен Identity Server с SSO. Я бы рекомендовал Auth0 или WSO2
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы