0

当我尝试通过我在 kong 上创建的代理访问端点时,我收到来自服务器的连接被拒绝响应。我用来命中代理的 curl 命令 -

curl --location --request GET 'http://localhost:8000/listProducts/'
--header 'Accept: application/json'
--header 'Authorization: Bearer token'

要获得令牌,我使用以下 curl -

curl --location --request POST 'http://localhost:8180/auth/realms/experimental/protocol/openid-connect/token'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'username=username'
--data-urlencode 'password=password'
--data-urlencode 'grant_type=password'
--data-urlencode 'client_id=myapp'

Client 协议是开放连接的,访问类型是公共的。

我在 Oidc 插件中完成的配置:

consumer:

response type:
code:
introspection endpoint: http://{MyHostIP}:8180/auth/realms/experimental/protocol/openid-connect/token/introspect

filters:

bearer only: yes

ssl verify: no

session secret:

introspection endpoint auth method:

realm: experimental

redirect after logout uri: /

scope: openid

token endpoint auth method:

client_secret_post:

logout path: /logout

client id: kong

discovery: https://{MyHostIP}:8180/auth/realms/master/.well-known/openid-configuration

client secret: myClientSecret

recovery page path:

redirect uri path:

提前致谢

4

1 回答 1

0

你是如何部署 Keycloak 的?我看到2点:

  • 您的发现端点是 https
  • 您的自省端点只是 http

此外,如果您使用 Docker 部署 Kong + Keycloak,请转到您的主机文件并使用 MyHostIP 添加一个带有本地 IP 的新行。

sudo nano /etc/hosts

然后加

your.ip.address. keycloak-host

更新 docker-compose 文件

kong:
    build:
      context: kong/
      dockerfile: Dockerfile
    extra_hosts:
      - "Keycloak-host:your.ip.address"

现在使用 keycloak-host 配置您的内省和发现 url

前任:http://keycloak-host:8180/auth/realms/master/protocol/openid-connect/token/introspect

如果您需要有关 Kong + openID + Keycloak 的功能示例,请查看repo。

于 2021-02-16T20:13:37.340 回答