【发布时间】:2022-01-19 10:57:37
【问题描述】:
我有一个带有 Keycloak 身份验证系统的 Angular 应用程序 (keycloak-angular)
我有一个允许使用 OAuth Keycloak 进行身份验证的 Grafana 服务器
我有一个 Keycloak 服务器,其中有一个名为 master 的领域,以及两个 cliendID ,一个用于我的 angularApp,一个用于我的 grafana 服务器。
在我的 Angular 应用程序中,我显示了一些来自我的 Grafana 服务器的 iframe,并且根据我的实际配置,我的 iframe 直接使用 OAuth 进行身份验证(没有登录屏幕)。
我的 Angular 应用程序中有一个注销按钮来处理 Keycloak 注销,这会将我重定向到 keycloak 登录屏幕。
我的问题是,当我执行 keycloak 注销时,iframe 会话被保存,如果之后我使用其他用户登录,我的 grafana iframe 仍将通过前一个用户进行身份验证。
如果我在 grafana 应用程序或 grafana iframe 中注销,或转到 http://grafana-server:3000/logout ,我将注销 Grafana,grafana iframe 会话将切换到新会话(登录我的 Angular 应用程序的用户)。
我希望 grafana iframe 在我从 Angular 应用程序注销时执行注销,因此下一个登录的用户将不会拥有前一个用户的会话。
Grafana OAuth 部分:
[auth.generic_oauth] name = OAuth enabled = true allow_sign_up = true client_id = grafana client_secret = my-secret scopes = openid email profile email_attribute_name = email:primary email_attribute_path = login_attribute_path = name_attribute_path = role_attribute_path = id_token_attribute_name = auth_url = http://keycloak-server/auth/realms/master/protocol/openid-connect/auth token_url = http://keycloak-server/auth/realms/master/protocol/openid-connect/token api_url = http://keycloak-server/auth/realms/master/protocol/openid-connect/userinfo allowed_domains = team_ids = allowed_organizations = tls_skip_verify_insecure = false tls_client_cert = tls_client_key = tls_client_ca = auto_sign_up = true
这是 grafana 客户端的 keycloak conf 截图。
反向通道注销网址似乎是解决方案,但我找不到如何正确使用它。
我尝试将此网址设置为“/logout”; "http://grafana-server:3000/logout" ...我不知道如何使它工作。
【问题讨论】:
标签: iframe oauth keycloak grafana