На стороне PHP я использую библиотеку Drenso/symfony-oidc для аутентификации OIDC. .
Если я запускаю веб-сайт PHP и сервер Keycloak локально в контейнере Docker, аутентификация через рабочий процесс потока кода работает без проблем.
Успешный процесс в Chrome DevTools
Однако, как только сервер Keycloak размещается в облаке Azure, аутентификация в большинстве случаев отменяется (примерно в 1 из 15 попыток входа в систему). оно до сих пор работает). Консоль разработки Google Chrome показывает статус «Отменено» при перенаправлении из Keycloak обратно на сервер PHP. Вместо того, чтобы приземляться на PHP-сервер вместе с клиентом, Keycloak отображает ошибку 404.
Ошибка потока в Chrome DevTools
Однако перенаправление из Keycloak правильно запустил процесс запроса на сервере PHP, и он также работает правильно и аутентифицирует пользователя с помощью кода, предоставленного Keycloak, в соответствующей конечной точке Keycloak, а затем получает токены ODIC. Однако, поскольку клиент зарегистрировал завершение, он не ждет ответа от PHP-сервера и, следовательно, не переключается на домашнюю страницу после успешной аутентификации.
Может ли кто-нибудь это сделать? подскажите, где мне искать?
Я проверил все это в разных браузерах (Chrome, Edge, Firefox) с одинаковыми ошибками.
Я также установил различные параметры для конфигурации oidc в настройках security.yaml. Сейчас это выглядит так
`
Код: Выделить всё
security:
enable_authenticator_manager: true
providers:
dm_user_provider:
id: App\ManagementBundle\Security\DmUserProvider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
lazy: true
provider: dm_user_provider
logout: true
pattern: '^/'
oidc:
user_identifier_property: email
enable_end_session_listener: true
use_logout_target_path: false
enable_remember_me: true
use_referer: true
# always_use_default_target_path: true
access_control:
# Allow login page to everyone
- { path: '^/login$', roles: IS_AUTHENTICATED_ANONYMOUSLY }
# Deny all other sites
- { path: '^/', role: ROLE_USER }
role_hierarchy:
ROLE_ManagementUser: [ROLE_USER]
Подробнее здесь: https://stackoverflow.com/questions/786 ... h-keycloak