为合作伙伴应用程序配置 Snowflake OAuth

本主题说明如何为受支持的 Snowflake 合作伙伴应用程序配置对 Snowflake 的 Snowflake OAuth 访问权限。此过程需要创建一个集成,即定义 Snowflake 与第三方应用程序或服务之间的界面的第一类 Snowflake 对象。

重要

使用任何第三方应用程序连接到 Snowflake 时,Snowflake 建议您验证该应用程序使用的集成流程是否满足内部安全要求。您可以直接与合作伙伴联系,以详细了解其用于此功能的端到端流程。

备注

Snowflake OAuth 不支持在会话中将角色切换为辅助角色。

如果 OAuth 工作流程需要进行此行为,请改用外部 OAuth。

有关更多信息,请参阅 将次要角色与 External OAuth 结合使用

目前,Snowflake OAuth 支持以下应用程序:

客户端

所需的客户端版本

客户端类型

Tableau Desktop/Server/Online (https://www.tableau.com/) [1]

2019.1 或更高版本

公共

Looker (https://looker.com) [2]

6.20 或更高版本

Alation (https://www.alation.com/)

请参阅 Alation 文档

ThoughtSpot (https://thoughtspot.com)

请参阅 ThoughtSpot 文档

Collibra (https://www.collibra.com)

请参阅 Collibra 文档

本主题内容:

配置 Snowflake OAuth 集成

使用 CREATE SECURITY INTEGRATION 命令创建集成。集成是一个 Snowflake 对象,它在 Snowflake 和第三方服务(例如支持 Snowflake OAuth 的客户端)之间提供界面。

备注

只有账户管理员(即具有 ACCOUNTADMIN 系统角色的用户)或具有全局 CREATE INTEGRATION 权限的角色才能执行此 SQL 命令。

CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
  <name>
  TYPE = OAUTH
  ENABLED = { TRUE | FALSE }
  OAUTH_CLIENT = <partner_application>
  oauthClientParams
  [ COMMENT = '<string_literal>' ]
Copy

其中:

oauthClientParams

oauthClientParams ::=
  [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ BLOCKED_ROLES_LIST = ('<role_name>', '<role_name>') ]
Copy

阻止特定角色使用集成

可选的 BLOCKED_ROLES_LIST 参数允许您列出用户 无法 明确同意在集成中使用的 Snowflake 角色。

默认情况下,ACCOUNTADMIN、SECURITYADMIN 和 ORGADMIN 角色包含在此列表中,并且无法移除。如果在业务上需要允许用户将 Snowflake OAuth 与这些角色一起使用,并且安全团队允许这样做,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge),以请求允许您的账户使用这些角色。

控制登录频率

当用户成功进行身份验证时,合作伙伴应用程序可以使用颁发的刷新令牌来请求新的短期访问令牌,并且在刷新令牌过期之前不会提示用户重复登录过程。可选的 OAUTH_REFRESH_TOKEN_VALIDITY 参数指定刷新令牌的有效时间长度(以秒为单位)。此设置可用于定期使刷新令牌过期,从而强制用户重复登录过程。

下面列出 OAUTH_REFRESH_TOKEN_VALIDITY 参数支持的最小值、最大值和默认值:

应用程序

最小值

最大值

默认值

Tableau Desktop

60 (1 分钟)

36000 (10 小时)

36000 (10 小时)

Tableau Server 或 Tableau Online

60 (1 分钟)

7776000 (90 天)

7776000 (90 天)

如果在业务上需要降低最小值或提高最大值,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge),以请求为您的账户进行此变更。

将 Client Redirect 与用于合作伙伴应用程序的 Snowflake OAuth 一起使用

Snowflake 支持将 Client Redirect 与用于合作伙伴应用程序的 Snowflake OAuth 一起使用,包括将 Client Redirect 和 Snowflake OAuth 与支持的 Snowflake 客户端一起使用。

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

管理网络策略

Snowflake 支持将网络策略用于 Snowflake OAuth。有关更多信息,请参阅 网络策略

示例

Tableau Desktop

以下示例使用默认设置来创建 Snowflake OAuth 集成:

CREATE SECURITY INTEGRATION td_oauth_int1
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = TABLEAU_DESKTOP;
Copy

使用 DESCRIBE INTEGRATION 查看集成设置:

DESC SECURITY INTEGRATION td_oauth_int1;
Copy

以下示例使用在 10 小时(36000 秒)后过期的刷新令牌创建 Snowflake OAuth 集成。该集成会阻止用户在使用 SYSADMIN 作为活动角色的情况下启动会话:

CREATE SECURITY INTEGRATION td_oauth_int2
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_REFRESH_TOKEN_VALIDITY = 36000
  BLOCKED_ROLES_LIST = ('SYSADMIN')
  OAUTH_CLIENT = TABLEAU_DESKTOP;
Copy

Tableau Server 或 Tableau Online

以下示例使用默认设置来创建 Snowflake OAuth 集成:

CREATE SECURITY INTEGRATION ts_oauth_int1
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = TABLEAU_SERVER;
Copy

使用 DESCRIBE INTEGRATION 查看集成设置:

DESC SECURITY INTEGRATION ts_oauth_int1;
Copy

以下示例使用在 1 天(86400 秒)后过期的刷新令牌创建 Snowflake OAuth 集成。该集成会阻止用户在使用 SYSADMIN 作为活动角色的情况下启动会话:

CREATE SECURITY INTEGRATION ts_oauth_int2
  TYPE = OAUTH
  ENABLED = TRUE
  OAUTH_CLIENT = TABLEAU_SERVER
  OAUTH_REFRESH_TOKEN_VALIDITY = 86400
  BLOCKED_ROLES_LIST = ('SYSADMIN');
Copy

从合作伙伴应用程序登录到 Snowflake

Tableau

按照 Tableau 提供的 说明 (https://onlinehelp.tableau.com/current/pro/desktop/en-us/examples_snowflake.htm),使用 Snowflake OAuth 连接到 Snowflake。

Looker

按照 Looker 提供的 步骤 (https://docs.looker.com/setup-and-management/database-config/snowflake#oauth),使用 Snowflake OAuth 连接到 Snowflake。

Alation

访问 Alation 社区 (https://community.alation.com/home),并按照 Alation 提供的说明使用 Snowflake OAuth 连接到 Snowflake。

ThoughtSpot

访问 ThoughtSpot 文档 (https://docs.thoughtspot.com/software/latest/connections-snowflake),并按照说明创建与 Snowflake 的连接,说明中包含了有关如何配置 Snowflake OAuth (https://docs.thoughtspot.com/software/latest/connections-snowflake-oauth.html) 的步骤。

Collibra

访问 Collibra 文档 (https://productresources.collibra.com/docs/collibra/latest/Content/Edge/JDBCConnections/ta_create-jdbc-connection.htm?catalog-connector-details=snowflake-native),并按照 Collibra 提供的说明使用 Snowflake OAuth 连接到 Snowflake。

错误代码

请参阅 错误代码,以查看与 OAuth 关联的错误代码列表,以及在授权流程、令牌请求或交换期间或在完成 OAuth 流程后创建 Snowflake 会话时,在 JSON Blob 中返回的错误。

语言: 中文