Я подумываю разработать полноценную систему идентификации в Laravel 5 с помощью Passport.
Ниже приведены мои требования:
- У меня должно быть основное приложение для управления идентификацией, такое как identity.mysite.com, где хранятся все мои пользователи.
- У меня есть 2 других приложения APP1, APP2.
- Когда пользователь запрашивает ограниченный ресурс на APP1, он должен пройти аутентификацию на identity.mysite.com.
- После аутентификации разрешите пользователю доступ к ресурсам на APP1
- Между тем, если пользователь решил получить доступ к ограниченным ресурсам на APP2, его не следует снова просить ввести учетные данные.
Что я пробовал:
- simpleSAMLphp - SAML - это вариант, который делает эти вещи за меня. Но он не такой зрелый, как OneLogin, и я не собираюсь переходить на модель SaaS на данном этапе, если она не это необходимость.
- Паспорт Laravel - oAuth 2.0 кажется заманчивым. Я даже могу использовать жетоны выдачи паспорта, но не знаю, как надежно это поверх SAML. Кроме того, Laravel Passport широко используется для аутентификации API. Будет ли это полезно при аутентификации традиционных приложений на основе сеансов? Я не видел ни одного примера, где правильный SSO реализован с более чем одним приложением и паспортом laravel.
Я знаю, что OAuth 2.0 не является протоколом аутентификации. Скорее он использует то, что называется авторизацией, но мы, вероятно, сможем заставить его работать для поддержки протокола аутентификации, как упоминалось здесь. Это что-то, что поддерживает паспорт Laravel?