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
                                  

Заранее спасибо.

0 ответов

Другие вопросы по тегам