适用于本地应用程序的身份验证:Snowflake OAuth 的内置安全集成

使用 Snowflake OAuth 进行身份验证的应用程序需要安全集成来定义 Snowflake 与应用程序之间的接口。此变更引入了一个系统自有的内置安全集成,简化了本地桌面应用程序与 Snowflake OAuth 的身份验证方式。

备注

启用此行为变更后,内置的安全集成会逐步向各账户推送,可能无法立即使用。

变更前:

如果您希望应用程序使用 Snowflake OAuth 向 Snowflake 进行身份验证,则必须始终创建和配置安全集成。

变更后:

希望与 Snowflake OAuth 进行身份验证的本地桌面应用程序无需创建安全集成。所有账户中都存在内置的安全集成 SNOWFLAKE$LOCAL_APPLICATION。它是类型 OAUTH 的安全集成。

由于无需创建安全集成,应用程序开发人员可以在无需 Snowflake 管理员协助的情况下实施 Snowflake OAuth。但安全管理员仍然可以配置内置安全集成,以控制访问令牌的有效期,以及是否使用一次性刷新令牌等设置。

只有本地桌面应用程序可以使用内置安全集成进行身份验证。对于其他类型的应用程序(例如第三方 Web 应用程序),如果要使用 Snowflake OAuth 进行身份验证,仍必须创建和配置安全集成。

内置集成的优势

使用 SNOWFLAKE$LOCAL_APPLICATION 安全集成对本地应用程序进行身份验证具有以下优势:

  • 提供一种简便的认证方法,可作为密码认证的替代方案,帮助您遵循即将生效的 Snowflake 要求:如果用户使用密码进行认证,则必须启用多重身份验证 (MFA)。

  • 减少管理摩擦;无需管理员初始操作即可使用 Snowflake OAuth。

  • 改善了开发人员的用户体验,尤其是那些使用 Snowflake CLI 的开发人员。

  • 使本地应用程序可以将 OAuth 用作单一身份验证方法,从而无需进行复杂的配置,并使身份验证过程对应用程序基本不透明。

  • 支持与其他身份验证方法类似的角色内会话切换。用户定义的 Snowflake OAuth 安全集成不支持角色内会话切换。

  • 将本地应用程序与用户凭据进行隔离。这样可以避免在磁盘上保存长期有效的凭据,意味着敏感的认证数据(如密码或个人访问令牌)不会以不安全的方式被持久存储。

内置安全集成不会削弱账户的安全性,反而将更好的用户体验与最安全的本地身份验证形式相结合。在 OAuth 刷新令牌有效期窗口内创建新会话,相当于使用已保存的用户凭据创建新会话的现有模式。此外,管理员使用 身份验证策略 来规定允许用户使用哪些凭据,从而保持对身份验证的控制。

选择退出变更

账户管理员可以禁用账户的 SNOWFLAKE$LOCAL_APPLICATION 安全集成。此操作会阻止本地应用程序使用 Snowflake OAuth 进行身份验证,除非管理员创建了自己的安全集成。

要选择退出此变更以使安全管理员无法启用 SNOWFLAKE$LOCAL_APPLICATION 安全集成,请运行以下命令:

USE ROLE ACCOUNTADMIN;

ALTER ACCOUNT SET DISABLE_SNOWFLAKE_LOCAL_APPLICATION_INTEGRATION = TRUE;
Copy

使用 DISABLE_SNOWFLAKE_LOCAL_APPLICATION_INTEGRATION 参数选择退出并不会阻止 SNOWFLAKE$LOCAL_APPLICATION 集成的创建。该集成仍将存在于您的账户中,但其 ENABLED 属性将为 FALSE,安全管理员无法将该属性更改为 TRUE。

账户管理员可以在账户中创建 SNOWFLAKE$LOCAL_APPLICATION 集成之前设置 DISABLE_SNOWFLAKE_LOCAL_APPLICATION_INTEGRATION 参数,以确保该集成始终不被启用。

如果账户管理员不使用账户参数选择退出,则安全管理员仍可以在 SNOWFLAKE$LOCAL_APPLICATION 集成创建后将其禁用。在账户中已有内置安全集成后,如需禁用它,请运行以下命令:

USE ROLE SECURITYADMIN;

ALTER SECURITY INTEGRATION SNOWFLAKE$LOCAL_APPLICATION SET ENABLED = FALSE;
Copy

参考:2056

语言: 中文