ฉันกำลังพยายามใช้ keycloak เพื่อตรวจสอบสิทธิ์บริการของฉันที่มีให้ใน tomcat 8 docker โดยทำตาม https://github.com/keycloak/keycloak-documentation/blob/main/securing_apps/topics/oidc/java/tomcat-adapter.adoc
หลังจากที่ฉันกำหนดค่าแอปพลิเคชันของฉันเสร็จแล้ว มันเปลี่ยนเส้นทางอย่างถูกต้องไปยังเซิร์ฟเวอร์ keycloak อย่างไรก็ตาม redirect_uri นั้นผิดเนื่องจากกำลังเรียกที่อยู่ภายในที่รู้จักโดยนักเทียบท่าเท่านั้น: hxxps://****.pt/auth/realms/example/protocol/openid -เชื่อมต่อ/รับรองความถูกต้อง?response_type=code&client_id=appmovel&redirect_uri=http%3A%2F%2Fweb-service%3A8080%2F&รัฐ=...
เพื่อแก้ไขฉันได้กำหนดค่า nginx เพื่อแก้ไข redirect_uri
ตำแหน่ง /admin/ {
proxy_set_header โฮสต์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://web-service:8080/;
}
ส่งผลให้: hxxps://***.pt/auth/realms/example/protocol/openid-connect/auth?response_type=code&client_id=appmovel&redirect_uri=http%3A%2F%2Fnewservice%2F&รัฐ=...
อย่างไรก็ตาม redirect_uri ข้ามบริบท /admin/ ส่งผลให้การเปลี่ยนเส้นทางไม่ถูกต้องเนื่องจากควรเปลี่ยนเส้นทางไปที่: http%3A%2F%2Fnewservice%2Fadmin%2F&สถานะ=...
ฉันควรกำหนดค่าอย่างไรและที่ไหนเพื่อเก็บ/เพิ่มบริบท (/admin) ใน redirect_uri ควรเป็นการกำหนดค่า keycloak หรือกฎการเขียนซ้ำ nginx หรือไม่