ALTER SECURITY INTEGRATION (SAML2)¶
修改现有 SAML2 安全集成的属性。有关修改其他类型的安全集成(例如 SCIM),请参阅 ALTER SECURITY INTEGRATION。
语法¶
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET
[ TYPE = SAML2 ]
[ ENABLED = { TRUE | FALSE } ]
[ SAML2_ISSUER = '<string_literal>' ]
[ SAML2_SSO_URL = '<string_literal>' ]
[ SAML2_PROVIDER = '<string_literal>' ]
[ SAML2_X509_CERT = '<string_literal>' ]
[ ALLOWED_USER_DOMAINS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ ALLOWED_EMAIL_PATTERNS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = '<string_literal>' ]
[ SAML2_ENABLE_SP_INITIATED = TRUE | FALSE ]
[ SAML2_SNOWFLAKE_X509_CERT = '<string_literal>' ]
[ SAML2_SIGN_REQUEST = TRUE | FALSE ]
[ SAML2_REQUESTED_NAMEID_FORMAT = '<string_literal>' ]
[ SAML2_POST_LOGOUT_REDIRECT_URL = '<string_literal>' ]
[ SAML2_FORCE_AUTHN = TRUE | FALSE ]
[ SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>' ]
[ SAML2_SNOWFLAKE_ACS_URL = '<string_literal>' ]
[ COMMENT = '<string_literal>' ]
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
ENABLED |
[ , ... ]
}
ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER [ SECURITY ] INTEGRATION <name> REFRESH SAML2_SNOWFLAKE_PRIVATE_KEY
参数¶
name
要更改的集成的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。
SET ...
指定要为集成设置的一个或多个属性/参数(用空格、逗号或新行分隔):
ALLOWED_USER_DOMAINS = ( 'string_literal' [ , 'string_literal' , ... ] )
指定可以通过 SAML2 安全集成进行身份验证的电子邮件域列表。例如
ALLOWED_USER_DOMAINS = ("example.com", "example2.com", ...)
。This parameter can be used to associate a user with an IdP for configurations that use multiple IdPs. For details, see 使用多个身份提供商进行联合身份验证.
ALLOWED_EMAIL_PATTERNS = ( 'string_literal' [ , 'string_literal' , ... ] )
指定电子邮件地址匹配的正则表达式列表,用于通过 SAML2 安全集成进行身份验证。例如
ALLOWED_EMAIL_PATTERNS = ("^(.+dev)@example.com$", "^(.+dev)@example2.com$", ... )
。This parameter can be used to associate a user with an IdP for configurations that use multiple IdPs. For details, see 使用多个身份提供商进行联合身份验证.
TYPE = SAML2
指定集成类型:
SAML2
:在 Snowflake 和身份提供商之间创建安全界面。
ENABLED = TRUE | FALSE
指定是启动集成操作还是暂停集成操作。
TRUE
允许集成基于管道定义中指定的参数运行。FALSE
会暂停集成以进行维护。Snowflake 与第三方服务之间的任何集成都无法正常工作。
SAML2_ISSUER = 'string_literal'
包含 EntityID / IdP 的发放者的字符串。
SAML2_SSO_URL = 'string_literal'
包含 IdP SSO URL 的字符串,Snowflake(服务提供商)应对用户进行重定向,并提供 SAML
AuthnRequest
消息。SAML2_PROVIDER = 'string_literal'
描述 IdP 的字符串。
以下其中一项:OKTA、ADFS、自定义。
SAML2_X509_CERT = 'string_literal'
在一行中列出 Base64 编码的 IdP 签名证书,不带前导
-----BEGIN CERTIFICATE-----
和结束-----END CERTIFICATE-----
标记。SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'string_literal'
包含要在登录页上的 Log In With 按钮之后显示的标签的字符串。
SAML2_ENABLE_SP_INITIATED = TRUE | FALSE
指示是否在登录页上显示 Log In With 按钮的布尔值。
TRUE
会在登录页上显示 Log in With 按钮。FALSE
不会在登录页上显示 Log in With 按钮。
SAML2_SNOWFLAKE_X509_CERT = 'string_literal'
Snowflake 生成的 Base64 编码自签名证书,用于 加密 SAML 断言 和 发送已签名的 SAML 请求。
您必须在 Snowflake 账户中启用其中至少一项功能(加密 SAML 断言或有签名的 SAML 响应)才能访问证书值。
SAML2_SIGN_REQUEST = TRUE | FALSE
指示 SAML 请求是否已签名的布尔值。
TRUE
允许对 SAML 请求进行签名。FALSE
不允许对 SAML 请求进行签名。
SAML2_REQUESTED_NAMEID_FORMAT = 'string_literal'
SAML NameID 格式允许 Snowflake 在来自 IdP 的 SAML 断言中设置对用户识别属性的预期(即 SAML 主题),从而确保对 Snowflake 的身份验证有效。如果未指定值,Snowflake 会将身份验证请求中的
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
值发送到 IdP。可选。
如果选择指定 SAML
NameID
格式,请使用以下值之一:urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName
urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName
urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
urn:oasis:names:tc:SAML:2.0:nameid-format:transient
SAML2_POST_LOGOUT_REDIRECT_URL = '<string_literal>'
点击 Classic Console 中的 Log Out 按钮后,Snowflake 将用户重定向到的端点。
在重定向到指定端点时,Snowflake 会终止 Snowflake 会话。
SAML2_FORCE_AUTHN = TRUE | FALSE
指示在初始身份验证流程期间是否强制用户再次进行身份验证以访问 Snowflake 的布尔值。设置为
TRUE
时,Snowflake 会在从 Snowflake 向身份提供商发出的请求中将ForceAuthn
SAML 参数设置为TRUE
。即使存在与身份提供商的有效会话,
TRUE
值也会强制用户再次进行身份验证以访问 Snowflake。FALSE
值不会强制用户再次进行身份验证以访问 Snowflake。
默认:
FALSE
。SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>'
包含 Snowflake 服务提供商的
EntityID
/Issuer
的字符串。如果指定值不正确,Snowflake 将返回一条错误消息,指出应该使用的可接受的值。
此属性中的值必须与 IdP 中指定的 Snowflake 账户 URL 匹配。它默认为 旧版 URL,因此如果在 IdP 中定义了不同的 URL 格式,请确保适当地设置此属性。
SAML2_SNOWFLAKE_ACS_URL = '<string_literal>'
包含 Snowflake 断言使用者服务 URL 的字符串,IdP 会通过此 URL 将 SAML 身份验证响应回发给 Snowflake。在 Snowflake 发起与 IdP 的 SAML SSO 操作时,将在由 Snowflake 生成的 SAML 身份验证请求中设置此属性。
如果指定值不正确,Snowflake 将返回一条错误消息,指出应该使用的可接受的值。
此属性中的值必须与 IdP 中指定的 Snowflake 账户 URL 匹配。它默认为 旧版 URL,因此如果在 IdP 中定义了不同的 URL 格式,请确保适当地设置此属性。
默认:
https://<account_locator>.<region>.snowflakecomputing.cn/fed/login
COMMENT = 'string_literal'
添加注释或覆盖集成的现有注释。
默认:无值
UNSET ...
指定要为安全集成取消设置的一个或多个属性/参数,这会将它们重置回默认值:
ENABLED
TAG tag_name [ , tag_name ... ]
REFRESH SAML2_SNOWFLAKE_PRIVATE_KEY
为 SAML2 安全集成生成新的私钥和自签名证书。旧的私钥和自签名证书将被新的私钥和自签名证书覆盖。有关轮换密钥的最佳实践的更多信息,请参阅 管理 SAML2 安全集成。
使用说明¶
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
使用
REFRESH
命令轮换SAML2_SNOWFLAKE_PRIVATE_KEY
后,您需要将新的SAML2_SNOWFLAKE_X509_CERT
值上传到 IdP,否则 SAML 身份验证会停止工作。有关轮换密钥的最佳实践的详细信息,请参阅 管理 SAML2 安全集成。
示例¶
以下示例启动了已暂停的集成的操作:
ALTER SECURITY INTEGRATION myint SET ENABLED = TRUE;
以下示例轮换私钥并为名为
my_idp
的 SAML2 安全集成生成新的自签名证书:小心
运行以下命令后,SAML 身份验证将停止工作,因为 IdP 仍在使用旧的
SAML2_SNOWFLAKE_X509_CERT
证书。为了更大程度地减少中断,您应该在用户不那么活跃时运行此命令。有关更多信息,请参阅 管理 SAML2 安全集成。alter security integration my_idp refresh SAML2_SNOWFLAKE_PRIVATE_KEY;