Puncte:0

Redirecționare URI nginx greșită

drapel cn

Încerc să mă autentific pe un server keycloak, dar redirect_uri nu vine cu contextul (/admin/).

Nginx produce un URI greșit redirect_uri: hxxps://***.pt/auth/realms/example/protocol/openid-connect/auth?response_type=code&client_id=appmovel&redirect_uri=http%3A%2F%2Fnewservice%2F&state=... Deoarece nu există /admin/ pe adresa URL, rezultând o eșec de apel invers.

fișier de configurare nginx:

Server {
    asculta 80 default_server;
    asculta [::]:80 default_server;
    numele serverului _;
    returnează 301 https://$host$request_uri;
}

# Server HTTPS
Server {
    asculta 443 ssl;
    nume_server gazdă locală;

    ssl_certificate cert.pem;
    ssl_certificate_key cert.key;

    Locație / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }

    pagina_eroare 500 502 503 504 /50x.html;
    locație = /50x.html {
        root /usr/share/nginx/html;
    }

    locație /api {
        absolute_redirect off;
        proxy_pass http://web-service:8080/api;
    }

    locație /admin/ {
        proxy_set_header Gazdă $gazdă;
        proxy_redirect dezactivat;
        proxy_set_header X-Real-IP $adresă_la distanță;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://web-service:8080/;
    }
}

Cum și unde ar trebui să configurez pentru a păstra/adăugați contextul (/admin) în redirect_uri? Se poate face printr-o regulă de rescriere nginx?

drapel in
Cel mai probabil, redirecționarea vine de la serverul tău keycloak, nu de la nginx. Configurați codul de bază adecvat în keycloak.
drapel in
https://www.keycloak.org/docs/latest/server_installation/index.html#default-provider
Winter avatar
drapel cn
keycloak funcționează bine (este o instalație veche pe care alte aplicații o folosesc fără probleme) problema este pe servlet-ul tomcat care este publicat în ROOT și mapat de nginx în /admin, așa că atunci când încearcă să se autentifice în keycloak, Nginx/tomcat trimite un adresa greșită de apel invers la keycloak, deoarece nginx rescrie doar gazda și nu adaugă contextul /admin.
drapel us
Problema trebuie încă rezolvată în aplicație, astfel încât să trimită adrese URL adecvate în răspunsurile sale.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.