tableau-server 未验证 “tableau-server” openidc id_token (errorCode=69)。vizportal 日志显示 wasIssuedByOurIdP:false

"tableau-server" openidc id_token not validated (errorCode=69) by tableau-server. vizportal log says wasIssuedByOurIdP:false

提问人:user1767316 提问时间:10/31/2023 最后编辑:user1767316 更新时间:11/8/2023 访问量:36

问:

尝试使用 keycloak 2022-3-10.x86_64 用户设置 openid-connect 登录 19.0.3, 步骤 6 中的“id_token验证失败 (errorCode=69)”

client_authentication设置为 client_secret_basic 还是 client_secret_post 没有区别

点击 http://tableau-openidc.domain.some 后,用户将被重定向到Keycloack登录,并可以使用其密码进行身份验证。

Access 和 ID 令牌被 Tableau 接收并记录在案

激活扩展日志记录时。

以下日志显示:

parsing response. 2023-10-30 18:03:37.499 +0000 () catalina-exec-7 vizportal: DEBUG com.tableausoftware.domain.user.openid.OpenIDConnectHelper - Validating access token received.

2023-10-30 18:03:37.549 +0000 () catalina-exec-7 vizportal: DEBUG com.tableausoftware.domain.user.openid.OpenIDConnectHelper - Verifying access token isSignatureValid:true, isDestinedToUs:true, wasIssuedByOurIdP:假, isTheTokenStillCurrent:true

2023-10-30 18:03:37.549 +0000 () catalina-exec-7 vizportal: WARN com.tableausoftware.api.webclient.WebClientGetAuthenticationController - WebClientGetAuthenticationController failed during OpenID login attempt

com.tableausoftware.domain.exceptions.AuthenticationException: id_token verification failed (errorCode=69) at com.tableausoftware.domain.user.openid.OpenIDConnectHelper.authorizeUserViaAccessToken(OpenIDConnectHelper.java:433) ~[tab-domain-user-latest.jar:?]

access- 和 id-token 都可以解码(例如:使用 https://jwt.io/)并使用 http://keycloack:8090/auth/realms/my/protocol/openid-connect/certs 中找到的 x5c 证书进行验证 在 ID 令牌中,可以找到以下声明:

  • “子”: “D1B73CA0-CD07-415E-801E-4DC7534B8A2C”
  • “电子邮件”: “[email protected]"
  • “scope”: “openid 个人资料电子邮件”

(我也试过;-)使用 openid 和 profile 声明,将电子邮件作为值,结果相同:

Keycloack 配置了:

  • Credetntials/Client 和 Id 密钥
  • 设置/客户端 ID/some-clientid
  • 设置/名称/some-clientid
  • 根网址: http://tableau-openid.domain.some
  • 客户端身份验证:开
  • 身份验证流:标准流、服务帐户角色(或非)

tableau-server 配置了:

  • tsm authentication openid configure
    --client-id “some-clientid” --client-secret “abCDEfgHiJ2kl409m261N2OPqrS0tuVx” --config-url http://keycloak:8090/auth/realms/myrealm/.well-known/openid-configuration --
    return-url “https://tableau-openid.domain.some”

  • TSM 身份验证 OpenID 启用

本地标识存储:

  • tsm 设置 import -f /opt/tableau/tableau_server/packages/scripts.20223.23.1234.5678/config.json

  • TSM 挂起更改适用

tableau-server 本地用户是从 CSV 设置的

  • tabcmd createusers ./users.csv --server http://tableau-openidc.domain.some --username tableau-admin
  • 用户.csv:

[email protected],password,email,Viewer,,,[email protected]

d1b73ca0-cd07-415e-801e-4dc7534b8a2c,password,sub,Viewer,,,[email protected]

user-1,password,name,Viewer,,,[email protected]

keycloak tableau-api openid-connect

评论

0赞 user1767316 11/8/2023
设法在access_token的 aud 声明中添加了 tableau-server,但无法删除之前的 valiue,导致: 但我无法更新似乎硬编码为 keycloak:8090/auth/realms/myrealm 的 iss 声明,其值从未在 Tableau 的 openid 配置中明确声明。"aud": [ "some-clientid", "account" ],

答:

0赞 user1767316 11/8/2023 #1

解决方案是运行 ,就像 keycloack 不支持 JWK 验证一样(cf:文档中的ignore_jwk选项tsm configuration set -k vizportal.openid.ignore_jwk -v true)