我正在使用keycloak 3.1.0 Final 我正在检查keycloak中openid connect的工作情况。但卡在中间。
当在localhost中运行keycloak和spring-boot(意味着spring-boot的auth-server-url = localhost:8080 / auth以及keycloak中的重定向url等也指向localhost *)时,一切正常。现在我想通过将它们放在反向代理服务器(Nginx)
之后进行检查我使用以下命令在独立模式下启动keycloak:
bin/standalone.sh -b=0.0.0.0
我有一个简单的spring boot应用程序,其application.properties文件如下所示:
server.port = 8001
keycloak.auth-server-url=http://myserver.com/auth
keycloak.realm=myrealm
keycloak.resource=web-app
keycloak.ssl-required=none
keycloak.credentials.secret=aaaaa-bbb-cccc-dddd-eeeeeeee
keycloak.use-resource-role-mappings=true
在Keycloak中,我创建了一个领域 myrealm ,其客户名为 web-app
我想只使用http(没有https)。
大多数是默认的。唯一值得一提的是:
要求SSL 无。
访问类型设置为机密
在Nginx方面,我有一个简单的conf文件:
请注意我将 $ Host 设置为 $ host / myapp 。否则keycloak无法正确重定向到myapp。
server {
listen 80;
server_name myserver.com;
location /myapp {
proxy_set_header Host $host/myapp;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port 80;
proxy_set_header X-Forwarded-Proto http;
proxy_pass http://localhost:8001/;
}
location /auth {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080;
}
}
到目前为止,我能够看到keycloak的登录页面。我输入用户名和密码。然后在浏览器中我看到发生了几次重定向。
春季启动日志说无状态cookie
我看到以下网络调用在循环中进行,直到浏览器最终停止。
/auth/realms/myrealm/login-actions/authenticate?code=o2M-zFsbBdHYx1VTacW9JANrsLHM3S1DIF6Geg4mn3E.27593a49-58c6-4217-9c4c-da1e95c2b97c&execution=10865b14-0a24-4eee-b93c-df811d2ddb51
/myapp/sso/login?state=d61d9b7e-a872-443a-8718-2345f29905ad&code=oe8vgQf7URXcHvQtCw1HVJN5mCGEsBgfcVK9AaErKY4.27593a49-58c6-4217-9c4c-da1e95c2b97c
/myapp/sso/login
任何人都可以指导我,我错过了什么。