为 Snowflake 配置身份提供商 (IdP)

配置 IdP 的任务会有所不同,具体取决于您是选择 Okta、AD FS 还是其他(即自定义)符合 SAML 2.0 的服务/应用程序为您的 Snowflake 用户提供联合身份验证。

本主题内容:

重要

在配置 IdP 之前,请考虑如何在完全配置后管理联合身份验证,以及用户将如何通过联合身份验证访问 Snowflake。

例如,决定用户是通过公共 URL 还是通过与 Snowflake 服务的专用连接相关联的 URL 来访问 Snowflake。要了解更多信息,请参阅 管理/使用联合身份验证

Okta 设置

要将 Okta 用作联合身份验证的 IdP,必须在 Okta 中执行以下任务:

  1. 为公司或组织创建 Okta 账户。

  2. 以具有管理员权限的用户身份登录 Okta 账户,并为每个需要访问 Snowflake 的人创建一个用户。创建用户时,请确保包含每个用户的电子邮件地址。需要电子邮件地址才能将 Okta 中的用户与 Snowflake 中的相应用户进行映射。

    备注

    请记住确保在 Okta 值中输入的电子邮件地址映射到 Snowflake 中的 login_name 值和 SAML NameID 属性。

    有关更多信息,请参阅 迁移到 SAML2 安全集成 中的第 1 步。

  3. 在 Okta 中创建 Snowflake 应用程序:

    • 在应用程序的 Label 字段中,可以指定任何名称。

    • 在应用程序的 SubDomain 字段中,输入 Snowflake 账户的 账户标识符。如果使用专用连接,请将 privatelink 附加到账户标识符。例如,如果用于访问 Snowflake 账户的 URL 是 https://myorg-myaccount.privatelink.snowflakecomputing.cn,则输入 myorg-myaccount.privatelink

      如果 Snowflake 账户名称包含下划线,并且正在使用标识符的账户名称格式,则需要将下划线转换为连字符,因为 Okta 不支持 URLs 中存在下划线(例如 myorg-myaccount-name)。

  4. 将创建的 Okta 用户分配给 Okta 中的 Snowflake 应用程序。

  5. 将 SAML 2.0 配置为您创建的 Snowflake 应用程序的登录方法。在下一步 迁移到 SAML2 安全集成 中,将需要 SSO URL 值和证书。

    • Sign On 选项卡中,点击 View Setup Instructions

    • 从设置说明中收集所需信息:

      • SSO URL (Snowflake 将向其发送 SAML 请求的 IdP URL 端点)

      • 证书(用于验证 IdP 和 Snowflake 之间的通信)

AD FS 设置

要将 AD FS 用作联合身份验证的 IdP,必须在 AD FS 中执行以下任务。

先决条件

  • 验证 AD FS 3.0 是否已安装并在 Windows Server 2012 R2 上运行。

  • 确保需要访问 Snowflake 的每个人在 AD FS 中都有一个用户。创建用户时,请确保包含每个用户的电子邮件地址。需要电子邮件地址将 AD FS 中的用户与其在 Snowflake 中的对应用户联系起来。

备注

可以使用其他版本的 AD FS 和 Windows Server;但是,配置说明可能会有所不同。

为 Snowflake 添加依赖方信任

在 AD FS 管理控制台中,使用 Add Relying Party Trust Wizard 向 AD FS 配置数据库添加新的依赖方信任:

  1. 出现提示时,选择 Enter data about the relying party manually 单选按钮。

  2. 在下一个屏幕中,输入依赖方的显示名(例如“Snowflake”)。

  3. 在下一个屏幕中,选择 AD FS profile 单选按钮。

  4. 跳过下一个屏幕(用于指定可选的令牌加密证书)。

  5. 在下一个屏幕中:

    • 选中 Enable support for the SAML 2.0 WebSSO protocol 复选框。

    • Relying party SAML 2.0 SSO service URL 字段中,输入附加了 /fed/login 的 Snowflake 账户的 SSO URL。例如,要使用具有专用连接的账户名 URL,请输入:https://<orgname>-<account_name>.privatelink.snowflakecomputing.cn/fed/login。有关可能的 URL 格式的列表,请参阅 与 URL 连接。当为联合身份验证 创建安全集成 时,请确保其 URL 参数与该字段中使用的格式匹配。

  6. 在下一个屏幕的 Relying party trust identifier 字段中,输入上一步中指定的 Snowflake 账户的 URL。

  7. 在下一个屏幕中,选择 I do not want to configure multi-factor authentication settings for this relying party trust at this time 单选按钮。

  8. 在下一个屏幕中,选择 Permit all users to access this relying party 单选按钮。

  9. 在下一个屏幕中,检查依赖方信任的配置。 还要确保在 Advanced 选项卡中,选择 SHA-256 作为安全哈希算法。

  10. 在下一个屏幕中,选择 Open the Edit Claim Rules dialog for this relying party trust when the wizard closes,然后点击 Close 以完成向导配置。

定义 Snowflake 依赖方信任的声明规则

关闭向导后,Edit Claim Rules for snowflake_trust_name 窗口会自动打开。也可以从 AD FS 管理控制台打开此窗口,方法是点击:

AD FS » Trust Relationships » Relying Party Trusts » snowflake_trust_name » Edit Claim Rules...

在窗口中:

  1. 创建将 LDAP 属性作为声明发送的规则:

    1. 点击 Add Rules 并选择 Send LDAP Attributes as Claim

    2. Edit Rule 对话框中:

      • 输入规则的名称(例如“获取属性”)。

        • Attribute store 设置为:Active Directory

        • 为规则添加两个 LDAP 属性:

          • E-Mail-AddressesE-Mail Address 作为传出声明类型。

          • Display-NameName 作为传出声明类型。

    3. 点击 OK 按钮来创建规则。

  2. 创建用于转换传入声明的规则:

    1. 点击 Add Rules 并选择 Transform an Incoming Claim

    2. Add Transform Claim Rule Wizard 对话框中:

      • 输入声明规则的名称(例如“名称 ID 转换”)。

      • Incoming claim type 设置为:E-Mail Address

      • Outgoing claim type 设置为:Name ID

      • Outgoing name ID format 设置为:Email

      • 选择 Pass through all claim values 单选按钮。

    3. 点击 Finish 按钮来创建规则。

  3. 点击 OK 按钮完成为 Snowflake 依赖方信任添加声明规则。

重要

确保输入的规则值与上述完全相同。

另外,请确保创建的规则按以下顺序列出:

  1. LDAP 属性

  2. 传入声明转换

如果规则中有任何错别字或规则未按正确顺序列出,规则将 无法 正常工作。

启用全局注销 – 可选

要在 AD FS 中为 Snowflake 启用全局注销,请在 AD FS 管理控制台中点击:

AD FS » Trust Relationships » Relying Party Trusts » <snowflake_trust_name> » Properties

Properties 对话框中:

  1. 转到 Endpoints 选项卡,然后点击 Add SAML... 按钮。

  2. Edit Endpoint 对话框中:

    • Endpoint type 设置为:SAML Logout

    • Binding 设置为:POSTREDIRECT

    • Trusted URL 设置为第 1 步中指定的值。

    • Response URL 留空。

    • 点击 OK 按钮保存您的更改。

获取 SSO URL 和证书

若要完成 AD FS 设置,请从 AD FS 获取 SSO URL 和证书。您将在下一步中使用这两个值:迁移到 SAML2 安全集成

  • SSO URL

    Snowflake 将向其发送 SAML 请求的 AD FS URL 端点。这通常是 AD FS 的登录 URL,通常是 AD FS 服务器的 IP 地址或完全限定的域名(即 FQDN),并在末尾附加 /adfs/ls

  • 证书

    用于验证 AD FS 和 Snowflake 之间的通信。您可以从 AD FS 管理控制台下载证书:

    1. 在控制台中,点击:

      AD FS » Service » Certificates

    2. Certificates 页面中,右键点击 Token-signing 条目,然后点击 View Certificate...

    3. Certificate 对话框中,选择 Details 选项卡。

    4. 点击 Copy to File... 打开证书导出向导。

    5. 对于导出文件格式,选择 Base-64 encoded X.509 (.CER) 然后点击 Next

    6. 将文件保存到本地环境中的目录中。

    7. 打开文件并复制证书,该证书由位于以下行之间的一行组成:

      -----BEGIN CERTIFICATE-----
      <certificate>
      -----END CERTIFICATE-----
      
      Copy

自定义 IdP 设置

要使用符合 SAML 2.0 的服务或应用程序作为联合身份验证的 IdP,您必须执行以下任务:

  1. 在服务/应用程序界面中,为 Snowflake 定义一个自定义 SHA-256 应用程序。定义自定义应用程序的说明特定于充当 IdP 的服务/应用程序。

  2. 在界面中,为每个需要访问 Snowflake 的人创建一个用户。创建用户时,请确保包含每个用户的电子邮件地址。需要电子邮件地址将 IdP 中的用户与其在 Snowflake 中的对应用户联系起来。

  3. 从您的自定义 IdP 获取 SSO URL 和证书。在下一步 迁移到 SAML2 安全集成 中,将需要 SSO URL 值和证书。

    • SSO URL (Snowflake 将向其发送 SAML 请求的 IdP URL 端点)

    • 证书(用于验证 IdP 和 Snowflake 之间的通信)

重要

配置自定义身份提供商时,字段值通常区分大小写。如果出现错误消息或错误代码,请仔细检查在配置过程中输入的任何值的大小写。

后续步骤

完成上述步骤后,必须 配置 Snowflake 使用联合身份验证 来完成自定义 IdP 设置。

语言: 中文