使用 DBeaver 通过 SSO 登录(外部浏览器)连接到雪花

Posted

技术标签:

【中文标题】使用 DBeaver 通过 SSO 登录(外部浏览器)连接到雪花【英文标题】:Connect to snowflake via SSO login (external browser) using DBeaver 【发布时间】:2021-11-01 14:04:35 【问题描述】:

我的 SNOWFLAKE 数据库启用了 SSO 登录,当我通过我的 chrome 浏览器连接时,SSO 连接工作得非常好。

当我尝试使用 DBeaver(外部浏览器)连接到 SNOWFLAKE 数据库时,出现以下错误。

注意:我可以确认我能够看到身份验证(通过资源管理器浏览器)页面,并且身份也已经过验证。我觉得当资源管理器浏览器向 DBeaver 确认身份验证时会出现问题。

有人可以帮忙吗?

【问题讨论】:

确保 DBeaver 连接信息中没有任何拼写错误。用户名必须与您的 SSO 用户名匹配。 是的。dBeaver中提供的SSO用户名和用户名是一样的。 启用JDBC 日志并在发生错误时提供日志的sn-p。 【参考方案1】:

上述错误是一般性消息,可能由于身份提供者端或服务提供者端的错误配置而出现。 建议验证您的身份提供者的配置,并确保所有步骤都正确执行。

以下可能是此错误的常见原因,但是,也可能存在其他不正确的配置,这可能会导致类似的错误消息。

一个。 Idp(身份提供商)和 Snowflake 的用户配置详细信息不匹配。

b. SSO 证书不正确。

解决方案

一个。在身份提供者端配置的用户名应与该用户在雪花端的 login_name 匹配。例如,如果 SAML 响应将 NameID 显示为 abc@xyz.com。那么 Snowflake 端配置的 login_name 应该和 abc@xyz.com 一样

SAML 响应 sn-p:

abc@xyz.com

将 login_name 设置为与身份提供者端配置的 NameID 相同。

更改用户集 login_name='abc@xyz.com';

b. Snowflake 端配置的 SSO 证书应与身份提供者端配置的证书匹配。

注意:

    证书值包含许多新行。删除新行,用一行形成一个证书值。

    如果上述建议没有帮助,请使用以下查询检查 Snowflake Information Schema 中登录尝试失败的错误代码。并在此处检查该错误代码的原因。以下查询检索您当前角色在过去一小时内允许监控的每个用户的最多 100 个登录事件,您可以对其进行适当修改。

select * from table(information_schema.login_history(dateadd('hours',-1,current_timestamp()),current_timestamp())) 按event_time排序

【讨论】:

以上是关于使用 DBeaver 通过 SSO 登录(外部浏览器)连接到雪花的主要内容,如果未能解决你的问题,请参考以下文章

SSO - 如何从 Intranet (SAML 2.0) 自动登录到外部网站?

sso单点登录系统

密码太多记不住?SSO帮你轻松访问VDI及外部资源

单点登录(SSO)原理与简单实现

使用 SSO 和基于浏览器的登录从 Python 连接到 Snowflake

SSO单点登录--支持C-S和B-S