使用多个身份提供商进行联合身份验证¶
您可以将 Snowflake 配置为允许用户通过多个身份提供商 (IdPs) 进行身份验证。
实现使用多个 IdPs 的联合环境包括以下步骤:
启用标识符优先登录流程 (本主题内容)。
创建多个 SAML 安全集成,每个 IdP 一个。
将用户与 IdPs 关联 (本主题内容)。
备注
在实现使用多个 IdPs 的环境时,请记住以下几点:
每个 IdP 必须有相应的 SAML 安全集成。如果您现有的单 IdP 环境使用已弃用的 SAML_IDENTITY_PROVIDER 参数,您必须使用 SYSTEM$MIGRATE_SAML_IDP_REGISTRATION 函数将其迁移到 SAML 安全集成。
目前,只有一部分 Snowflake 驱动程序支持使用多个身份提供商。这些驱动程序包括 JDBC、ODBC 和 Python。
启用标识符优先登录¶
当账户的联合环境使用多个 IdPs 时,Snowflake 必须能够在向用户提供身份验证选项 之前 确定哪个 IdPs 与用户关联。在此流程中,Snowflake 仅提示用户输入其电子邮件地址或用户名,然后在识别用户后显示身份验证方法。只有与用户关联的 IdPs 将显示为身份验证选项。
如果您使用多个 IdPs,则必须启用标识符优先登录流程。要启用标识符优先登录,请将 ENABLE_IDENTIFIER_FIRST_LOGIN 参数设置为 TRUE
。
有关标识符优先登录流程的更多信息,请参阅 标识符优先登录。
将用户与 IdPs 关联¶
在具有多个 IdPs 的环境中,您可以选择如何将用户与 IdP 关联。您可以使用与以下项关联的安全集成:IdP、身份验证策略,或结合使用这两种方法。
- 安全集成:
使用与每个 IdP 关联的 SAML2 安全集成的
ALLOWED_USER_DOMAINS
和ALLOWED_EMAIL_PATTERNS
属性。在此配置中,只有当用户的EMAIL
与安全集成中的电子邮件地址域或模式匹配时,他们才能将 IdP 视为身份验证选项。- 身份验证策略:
使用 身份验证策略 的
SECURITY_INTEGRATIONS
属性指定哪些安全集成可供用户使用。在此配置中,身份验证策略将分配给整个账户或单个用户。用户只能通过与身份验证策略中指定的安全集成相关联的 IdPs 进行身份验证。如果希望用户只能看到允许他们使用的身份提供商,请创建多个身份验证策略,然后将适当的策略分配给用户。
有关使用身份验证策略实现多个 IdPs 的示例,请参阅 允许对账户使用多个身份提供商的身份验证。
- 组合方法:
您可以将安全集成和身份验证策略方法结合起来,以进一步优化用户在具有多个 IdPs 的环境中的身份验证方式。
如果同时使用这两种方法,Snowflake 将首先评估哪些安全集成与管理用户登录的身份验证策略相关联。Snowflake 确定安全集成后,用户的
EMAIL
与基于ALLOWED_USER_DOMAINS
和ALLOWED_EMAIL_PATTERNS
属性的其中一个集成匹配。Snowflake 仅显示与用户的EMAIL
匹配的安全集成的 IdP 选项。