OAuth 简介

Snowflake 通过集成为客户端启用 OAuth。集成是一个 Snowflake 对象,它在 Snowflake 和第三方服务之间提供一个接口。管理员使用 安全集成 配置 OAuth,使支持 OAuth 的客户端能够将用户重定向到授权页面,并生成访问 Snowflake 的访问令牌(也可选择刷新令牌)。

Snowflake 支持使用以下选项之一的 OAuth 2.0 (https://oauth.net/2/) 协议进行身份验证和授权:

下表比较了 Snowflake OAuth 和 External OAuth:

类别

Snowflake OAuth

External OAuth

修改客户端应用程序

必填

必填

客户端应用程序浏览器访问

必填

不需要

程序化客户端

需要浏览器

最佳选择

驱动程序属性

authenticator = oauth

authenticator = oauth

安全集成语法

create security integration type = oauth ...

create security integration type = external_oauth

OAuth 流

OAuth 2.0 代码授权流

客户端可与 External OAuth 服务器启动的任何 OAuth 流

审计 OAuth 登录

为了查询 Snowflake 用户的登录尝试,Snowflake 提供了登录历史记录:

当使用 OAuth 进行身份验证(成功或失败)时,输出中的 FIRST_AUTHENTICATION_FACTOR 列的值为 OAUTH_ACCESS_TOKEN。

专用连接

Snowflake 支持 External OAuth 与 Snowflake 服务的专用连接。

Snowflake OAuth 和 Tableau 可通过以下方式与 Snowflake 进行专有连接:

Tableau Desktop:

从 Tableau 2020.4 开始,Tableau 包含一个嵌入式 OAuth 客户端,支持使用账户 URL 连接到 Snowflake,以实现与 Snowflake 服务的专有连接。

升级到 Tableau 2020.4 后,无需进一步配置,使用 AWS 或 Azure 的相应专用连接 URL 即可连接到 Snowflake。

Tableau Server:

从 Tableau 2020.4 开始,用户可以选择配置 Tableau Server,使其使用嵌入式 OAuth 客户端与 Snowflake 连接,并使用账户 URL 实现与 Snowflake 服务的专用连接。

要使用此功能,请创建一个新的 自定义客户端 安全集成,并按照 Tableau 说明 (https://help.tableau.com/current/server/en-us/config_oauth_snowflake.htm) 操作。

Tableau Online:

Tableau Online 不支持用于与 Snowflake 服务进行专用连接的 Snowflake 账户 URL,因为 Tableau Online 需要访问公共互联网。

有关 Tableau Online 何时支持用于与 Snowflake 服务进行专有连接的专有连接 Snowflake 账户 URLs 的详细信息,请联系 Tableau。

重要

要确定用于 Snowflake 服务专用连接的账户 URL,请调用 SYSTEM$GET_PRIVATELINK_CONFIG 函数。

Looker:

目前,结合 Snowflake OAuth 和 Looker 需要访问公共互联网。因此,您无法通过到 Snowflake 服务的专用连接来使用 Snowflake OAuth 和 Looker。

有关更多信息,请参阅:

客户端、驱动程序和连接器

支持的客户端、驱动程序和连接器可以使用 OAuth 来验证用户登录凭据。

请注意以下事项:

  • 必须将 authenticator 参数设置为 oauth,将 token 参数设置为 oauth_access_token

  • token 值作为 URL 查询参数传递时,必须对 oauth_access_token 值进行 URL 编码。

  • token 值传递给属性对象(例如 JDBC 驱动程序)时,无需进行任何修改。

有关连接参数的详细信息,请参阅以下客户端、驱动程序或连接器的参考文档:

Client Redirect

Snowflake 支持将 Client Redirect 与 Snowflake OAuth 和 External OAuth 结合使用,包括将 Client Redirect 和 OAuth 与支持的 Snowflake 客户端结合使用。

有关更多信息,请参阅 重定向客户端连接

复制

Snowflake 支持通过 Snowflake OAuth 和 External OAuth 安全集成从源账户到目标账户进行复制和故障转移/故障恢复。

有关详细信息,请参阅 跨多个账户复制安全集成和网络策略

语言: 中文