Я сейчас работаю над проектом SSO.Как и у Google, у нас есть account.domain.com в качестве сервера единого входа.И у нас есть три приложения, размещенные на трех разных серверах (application1.com, application2.com ,, application3.com,).
Когда пользователь захочет войти в систему из этих трех приложений, он будет перенаправлен на сервер единого входа.Если учетные данные, предоставленные пользователем, верны, это означает, что SSO-сервер генерирует токен доступа JWT.Теперь сгенерированный токен должен быть присоединен к заголовку ответа запрашиваемого пользователем приложения, после чего пользователь будет перенаправлен на запрошенное приложение вместе с «токеном авторизации: Bearer $».
В настоящее время у меня возникает проблема с подключениемсгенерированный токен для заголовка ответа.В настоящее время я использую платформу Slim 3 вместе с lcobucci / jwt для токена JWT.
Мой код:
$username = "Test";
$newResponse = $response->withHeader('Authorization' , "Bearer $token");
return $newResponse->withRedirect("http://application1.com/$username", 301);
Когда я отлаживаю заголовок Response в accounts.domain.com, появляется заголовок авторизацииустановить.Но с другой стороны (application1.com) не получает заголовок авторизации.
Снимки экрана
Первоначальный запрос от application1.com Переадресация домена SSO для захвата Cookie Подтвердите сессию с помощью Grabbed Cookie и прикрепите прилагаемый заголовок аутентификации. Успешная аутентификация, но не получены заголовки авторизации.
Я сомневаюсь, что проблема заключается вКонфигурация сервера (apache2) в файле .htaccess (или) сама моя реализация неверна.
Руководство по исправлению этой ошибки.
Сведения о среде:
- Сервер: Apache 2
- Каркас: Slim 3
- JWT: пакет lcobucci / jwt