簡體   English   中英

如何使用 krakend 配置 keycloak 以訪問 apache2 網絡服務器?

[英]How to configure keycloak with krakend to access apache2 webserver?

我正在與 krakend 和 keycloak 作斗爭。 我有以下內容:

Apache2 具有 my-ip/keycloak 保護文件的 Web 服務器(直接在主機上) 帶有 my-ip:8402 的 Krakend(作為 docker 容器) 帶有 my-ip:8080 的 Keycloak(作為 docker 容器)

我想保護受 keycloak 保護的文件,因此只有登錄用戶才能訪問它。 對於 krakend,我使用此配置: https://www.krakend.io/docs/authorization/keycloak/ 我將其更改為匹配我的 IP:

{"version": 3,
"timeout": "3s",
"endpoints":[{"endpoint": "/keycloak-protected",
"extra_config": {"auth/validator": {"alg": "RS256",
"jwk_url": "http://<my-ip>:8080/auth/realms/master/protocol/openid-connect/certs",
"disable_jwk_security": true}},
"backend": [{"host":["http://<my-ip>:80"],
"url_pattern": "/__health"}]}]}

然后,我設置了 keycloak,創建了一個具有有效重定向 URL = http://my-ip:8402/* 和訪問類型 Public 的客戶端。 我還創建了一個新用戶。 使用 postman,我嘗試使用 GET 訪問 http://my-ip:8402/keycloak-protected。 我在“授權”選項卡中填寫參數,然后單擊“獲取新訪問令牌”,我成功登錄並獲得了一個(有效?)令牌。 但是當我隨后嘗試訪問 http://my-ip:8402/keycloak-protected 時,它顯示 401 Unauthorized。

我在這里錯過了什么? 我使用 postman 錯了嗎? krakend 配置有問題嗎? 還是 keycloak 客戶端配置不正確?

非常感謝你!

我遵循了教程https://www.krakend.io/docs/authorization/keycloak/https://github.com/xyder/example-krakend-keycloak的一些部分。

我想讓不同的領域/客戶端/用戶只訪問我的 apache2 網絡服務器上的特定文件。

我找到了解決方案:krakend 網站上的示例(在https://www.krakend.io/docs/authorization/keycloak/上)有問題。 jwk_url 中的 URL 應該是:

http://:8080/realms/master/protocol/openid-connect/certs

並不是:

http://:8080/auth/realms/master/protocol/openid-connect/certs

(請參閱 URL 中缺少的 /auth)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM