我有问题:
WWW-Authenticate Bearer realm="test", error="invalid_token", error_description="Invalid token issuer. Expected 'http://keycloak:8080/auth/realms/test', but was 'http://localhost:8080/auth/realms/test'"
我的设置:
application.yml
keycloak:
realm: test
resource: api
auth-server-url: http://keycloak:8080/auth
ssl-required: external
autodetect-bearer-only: true
cors: true
principal-attribute: preferred_username
credentials:
secret: 2b553733-8d5f-4276-8ace-17112ac7ac20
docker-compose.yml
keycloak:
image: jboss/keycloak:10.0.0
environment:
- KEYCLOAK_USER=admin
- KEYCLOAK_PASSWORD=admin
ports:
- "8080:8080"
networks:
- net
身份验证网址:http:// localhost:8080 / auth / realms / test / protocol / openid-connect / auth 令牌网址:http:// localhost:8080 / auth / realms / test / protocol / openid-connect / token
我了解问题存在的原因,但是我不知道如何解决。
答案 0 :(得分:0)
Keycloak的默认主机名提供程序(https://www.keycloak.org/docs/latest/server_installation/#default-provider)具有一个名为frontendURL的属性,应将其设置为公开Keycloak的公共URL。
设置frontendURL可确保所有前通道URL(例如颁发者,authorization_endpoint)使用配置的值作为URL中的主机名,而后通道URL在请求中继续使用主机名。