Snowflake OAuth 概述¶
Snowflake OAuth 使用 Snowflake 内置的 OAuth 服务提供基于 OAuth 的身份验证。
本主题介绍 Snowflake OAuth,以及如何使用 Snowflake 作为 OAuth 资源和授权服务器,实现 Snowflake 数据的安全访问。
Snowflake OAuth 使用 Snowflake 内置的 OAuth 服务来支持以下应用程序:
合作伙伴应用程序¶
要配置支持,请参阅 为合作伙伴应用程序配置 Snowflake OAuth。
要了解如何在不穿过公开互联网的情况下使用 OAuth,请参阅 合作伙伴应用程序。
自定义客户端¶
Snowflake 支持由组织配置的自定义客户端。要配置支持,请参阅 为自定义客户端配置 Snowflake OAuth。
网络策略¶
您只能将专用网络策略与 Snowflake OAuth ` 集成。 :doc: 外部 OAuth </user-guide/oauth-ext-overview>` 安全集成不支持设置单独的网络策略,但您仍可以使用适用于整个 Snowflake 账户的常规网络策略。
Snowflake OAuth 安全集成具有一个 network_policy
参数,这让 Snowflake OAuth 集成可对用户进行身份验证和授权,不需要添加这些 IP 地址,即可实现正常用户访问。
通过设置特定于 Snowflake OAuth 集成的网络策略,即可将 Snowflake OAuth 网络策略与可能适用于 Snowflake 账户的其他网络策略区分开来。因此,Snowflake OAuth 网络策略支持按预期对用户进行身份验证和授权。
应用于 Snowflake OAuth 集成的网络策略会替换应用于整个 Snowflake 账户的网络策略,但会被分配给用户的网络策略替换。
重要
如果按用户或账户设置了网络策略,并且使用了在另外一个位置运行的服务(例如 Microsoft Power BI Service),您将无法连接到 Snowflake。
创建 Snowflake OAuth 安全集成后,使用此命令设置 OAuth 网络策略:
ALTER SECURITY INTEGRATION <oauth_integration> SET NETWORK_POLICY = <oauth_network_policy>;
要取消设置 Snowflake OAuth 网络策略,请使用此命令:
ALTER SECURITY INTEGRATION <oauth_integration> UNSET <oauth_network_policy>;
其中:
<oauth_integration>
指定 Snowflake OAuth 安全集成的名称。
<oauth_network_policy>
在 Snowflake 中指定 Snowflake OAuth 网络策略。
有关更多信息,请参阅 使用网络策略控制网络流量 和 ALTER SECURITY INTEGRATION。
错误代码¶
有关与 Snowflake OAuth 相关的错误代码的说明,请参阅下表:
错误代码 |
错误 |
描述 |
---|---|---|
390302 |
OAUTH_CONSENT_INVALID |
在生成或验证给定用户的同意时出现问题。 |
390303 |
OAUTH_ACCESS_TOKEN_INVALID |
尝试创建 Snowflake 会话时所用的访问令牌已过期或无效。 |
390304 |
OAUTH_AUTHORIZE_INVALID_RESPONSE_TYPE |
以参数形式提供给授权端点的 |
390305 |
OAUTH_AUTHORIZE_INVALID_STATE_LENGTH |
以参数形式提供给授权端点的状态参数长度超过 2048 个字符。 |
390306 |
OAUTH_AUTHORIZE_INVALID_CLIENT_ID |
与所提供的客户端 ID 关联的集成不存在。 |
390307 |
OAUTH_AUTHORIZE_INVALID_REDIRECT_URI |
以参数形式提供给授权端点的 |
390308 |
OAUTH_AUTHORIZE_INVALID_SCOPE |
请求的作用域并非有效作用域,或者请求的作用域无法完全授予用户。 |
390309 |
OAUTH_USERNAMES_MISMATCH |
您尝试验证的用户不同于绑定到访问令牌的用户。 |
390311 |
OAUTH_AUTHORIZE_INVALID_CODE_CHALLENGE_PARAMS |
代码质询或代码质询方法缺失、无效或不受支持。 |
此外,以下错误源自 RFC,并在令牌请求或交换失败期间生成的 JSON blob 中返回:
错误 |
描述 |
---|---|
invalid_client |
存在与客户端身份验证相关的故障,例如客户端未知、客户端密钥不匹配等。 |
invalid_grant |
提供的授权授予或刷新令牌无效、已过期、已撤销、与授权请求中所用的重定向 URI 不匹配,或者已颁发给其他客户端。 |
unsupported_grant_type |
提供了 Snowflake 目前不支持的授权类型(目前仅支持“refresh_token”和“authorization_code”这两种授权类型)。 |
invalid_request |
请求格式不正确或无法处理。 |