Существует устаревшее веб-приложение PHP, в котором есть активная база данных пользователей (Mysql / Mariadb), а PHP в настоящее время заботится о входах пользователей в систему. Мне нужно подключить это приложение к новому стороннему приложению с помощью какого-то SSO-решения. Новым поставщиком поддерживаются OpenID Connect (OID C) и ADFS. В настоящее время проверяется OID C.
Предварительные условия:
- Новое приложение будет клиентом.
- Требуется неявный поток для OID C.
- Если возможно, опыт входа конечного пользователя не должен меняться.
- Требуется сертифицированная библиотека OpenID Connect, поэтому я хотел проверить ova c -provider для Nodejs.
(Я провел несколько экспериментов с PHP и https://github.com/steverhoades/oauth2-openid-connect-server, но это привело к некоторым проблемам с неявным потоком и новым приложением.)
Изменение устаревшего приложения на другой клиент на oid c -provider потребует внесения изменений в это приложение, и я снова столкнусь с проблемой несертифицированной библиотеки для PHP.
. проверить, как существующий сеанс PHP может предоставить информацию для входа в узел / oid c -провайдера. Таким образом, пользователь будет входить в старое приложение, а при необходимости перейти к новому стороннему приложению ссылка будет указывать на страницу узла, которая будет проверять вход в систему, а затем перенаправлять на новое приложение.
Я смог прочитать сессию PHP от oid c -provider, но, будучи абсолютным новичком ie для Node, я не нашел, как проверить логин для oid c -provider ( аналогично этому вопросу ).
Что проще: проверить, является ли логин действительным в сеансе PHP, или проверить его из базы данных (для этого потребуются некоторые изменения в фактические страницы входа в систему)?
Как я могу сообщить провайдеру oid c, когда вход уже выполнен в устаревшем приложении? Опять же, я не мог понять, как использовать setProviderSession
, если бы это дало решение этой проблемы.