如何解决Spring Cloud Dataflow Keycloak SSO 集成注销问题
我在 Spring Cloud Dataflow 中集成了 Keycloak 以进行身份验证和授权。每次尝试使用 http://localhost:9393/dashboard 登录应用程序时,我都成功登录系统。注销后,我会进入默认登录页面,其中包含登录按钮,如下所示...
问题是在作为注销成功响应出现的页面上单击登录按钮时,它会加载 http://localhost:9393/login 页面,这会将我带到我的 SSO 客户端选择页面,如下所示...
一旦我选择了客户端,它就会将我带到根目录 (http://localhost:9393/)。登录成功后。它只是加载一个带有 URL 的 json 对象,而不是将我带到仪表板。
此后,我必须手动加载仪表板路径(任何有效路径 http://localhost:9393/dashboard/ 等)以加载应用程序。
如果您第一次尝试登录根 URL http://localhost:9393/ 也会遇到同样的问题。
我正在为本地设置自定义 Spring Cloud Dataflow 2.7.1 标签。
我的 Keycloak 配置如下...
cloud:
dataflow:
security:
authorization:
enabled: true
provider-role-mappings:
keycloak:
map-oauth-scopes: true
role-mappings:
ROLE_VIEW: dataflow.view
ROLE_CREATE: dataflow.create
ROLE_MANAGE: dataflow.manage
ROLE_DEPLOY: dataflow.deploy
ROLE_DESTROY: dataflow.destroy
ROLE_MODIFY: dataflow.modify
ROLE_SCHEDULE: dataflow.schedule
security:
oauth2:
client:
registration:
keycloak:
redirect-uri: '{baseUrl}/login/oauth2/code/{registrationId}'
authorization-grant-type: authorization_code
client-id: COMPANY_CLIENT
client-name: COMPANY_CLIENT
client-secret: a0f442f5-8c58-4220-9b48-4174476ba57a
scope:
- openid
- dataflow.view
- dataflow.deploy
- dataflow.destroy
- dataflow.manage
- dataflow.modify
- dataflow.schedule
- dataflow.create
provider:
keycloak:
jwk-set-uri: https://ulogin.company.services/auth/realms/XConnect/protocol/openid-connect/certs
token-uri: https://ulogin.company.services/auth/realms/XConnect/protocol/openid-connect/token
user-info-uri: https://ulogin.company.services/auth/realms/XConnect/protocol/openid-connect/userinfo
user-name-attribute: preferred_username
user-info-authentication-method: validate_access_token
authorization-uri: https://ulogin.company.services/auth/realms/XConnect/protocol/openid-connect/auth
resourceserver:
opaquetoken:
introspection-uri: https://ulogin.company.services/auth/realms/XConnect/protocol/openid-connect/token/introspect
client-id: COMPANY_CLIENT
client-secret: a0f442f5-8c58-4220-9b48-4174476ba57a
authorization:
check-token-access: isAuthenticated()
如果有人能提供一些线索来解决这个问题,不胜感激。
更多信息:https://github.com/spring-cloud/spring-cloud-dataflow/issues/4470#issue-852057760
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。