Keycloak перенаправляет на URI индекса вместо предоставленного redirect_uri
У меня есть приложение NodeJS, и я пытаюсь пройти аутентификацию с помощью keycloak с адаптером nodejs, предоставленным JBoss.
Пока nginx установлен на компьютере, keycloak и приложение NodeJs находятся в контейнерах докеров, изолированных друг от друга.
Клиент приложения находится в другой сфере, чем Мастер, как говорится в официальной документации.
Попытка получить доступ к приложению без защиты keycloak работает нормально, но как только промежуточное программное обеспечение запускается, пытаясь получить доступ к www.website.com/app , оно дает неверный redirect_uri.
Присмотревшись немного ближе к адресной строке браузера, мы видим, что Keycloak пытается перенаправить на www.website.com вместо предоставленного uri.
Уже пробую все безуспешно
Любая помощь приветствуется.
конфигурация нгинкс:
location /auth/
{
# try_files $uri $uri/ =404;
proxy_pass http://localhost:8080/auth/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /app/ {
# try_files $uri $uri/ =404;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
proxy_pass http://localhost:3000/;
}
Мои маршруты в приложении:
app.get('/', keycloak.protect(), (req, res) => {
res.json('hello world');
});
Мой файл для создания докеров keycloak:
version: '3'
services:
keycloak:
image: quay.io/keycloak/keycloak:latest
environment:
DB_VENDOR: POSTGRES
DB_ADDR: my_db_adress
DB_DATABASE: my_database
DB_USER: my_user
DB_SCHEMA: public
DB_PASSWORD: my_password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: my_admin_password
PROXY_ADDRESS_FORWARDING: "true"
#JDBC_PARAMS: "ssl=true"
ports:
- 8080:8080
networks:
- postgresql_network
networks:
postgresql_network:
external: true
Заранее спасибо.