как получить cookie-файл ввода ключа с помощью аутентификационного сервера, работающего в докере - PullRequest
0 голосов
/ 24 октября 2019

Извиняюсь за мой очень многословный пост. Я использую Keycloak, OpenID Connect, Nginx, Docker и реагировать в моем приложении.

Keycloak работает на Docker, например, с (http://auth -server.com / auth )

Когда я поднимаю свой интерфейс на localhost: 3000. Он перенаправил меня на страницу входа с помощью (http://auth -server.com / auth / login.html ), затем после входа мне нужно получить текущего пользователя, вошедшего в систему со своей спины. -конечный микро сервис, который требует куки с сеансом и X-AUTH-USER, введенный keycloak. Я верю, потому что интерфейс работает на localhost, а keycloak находится в другом домене. cookie и заголовок http не внедряются с последующими запросами.

Как я могу заставить keycloak вводить cookie для каждого последующего запроса?

1 Ответ

0 голосов
/ 24 октября 2019

Это не то, как предполагается использовать OpenID Connect. OpenID Connect - это протокол для федеративной аутентификации . Веб-сайты не могут устанавливать cookie-файлы для других веб-сайтов - это может быть проблемой безопасности.

OpenID Connect предназначен для RESTful без использования cookie и сессий . С OpenID Connect вы используете автономный JWT токен доступа sendt в Authorization: Bearer <token> HTTP-заголовке.

С этим дизайном гораздо проще создать серверы без сохранения состояния , которые вы легко можете развернуть, например, на современных Kubernetes платформах, упруго масштабировать или выполнять развертывание без прерывания работы.

Если вы все еще хотите использовать куки и сессий , у вас может быть служба, которая создает эти сессии на перенаправлении из аутентификации OpenID, когда выполучили токен доступа .

...