为 Snowflake 配置 Microsoft Entra ID 的单一登录

本文介绍如何将 Snowflake 与 Microsoft Entra ID 集成。 将 Snowflake 与 Microsoft Entra ID 集成后,可以:

  • 在 Microsoft Entra ID 中控制谁有权访问 Snowflake。
  • 使用户能够使用其 Microsoft Entra 帐户自动登录到 Snowflake。
  • 在中心位置管理帐户。

先决条件

若要配置 Microsoft Entra 与 Snowflake 的集成,需要以下项:

  • 一个 Microsoft Entra 订阅。 如果没有 Microsoft Entra 环境,可以获取一个免费帐户
  • 已启用 Snowflakes 单一登录的订阅。
  • 除了云应用程序管理员之外,应用程序管理员也可以在 Microsoft Entra ID 中添加或管理应用程序。 有关详细信息,请参阅 Azure 内置角色

注意

此集成也可以通过 Microsoft Entra 美国政府云环境使用。 你可以在“Microsoft Entra 美国政府云应用程序库”中找到此应用程序,并以公有云相同的方式对其进行配置。

方案描述

本文中,您将在测试环境中配置和测试 Microsoft Entra 的单一登录功能。

若要配置 askSpoke 与 Microsoft Entra ID 的集成,需要从库中将 Snowflake 添加到托管 SaaS 应用列表。

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心
  2. 请导航到 Entra ID>企业应用>新应用
  3. 在“从库中添加”部分的搜索框中,键入“Snowflake” 。
  4. 从结果面板中选择“Snowflake”,然后添加该应用。 在该应用添加到租户时等待几秒钟。

或者,也可以使用企业应用配置向导。 在此向导中,还可以将应用程序添加到租户、将用户/组添加到应用、分配角色以及演练 SSO 配置。 详细了解 Microsoft 365 向导。

配置并测试 Snowflake 的 Microsoft Entra SSO

使用名为 B.Simon 的测试用户配置并测试 Snowflake 的 Microsoft Entra SSO。 若要使 SSO 正常工作,需要在 Microsoft Entra 用户与 Snowflake 中的相关用户之间建立关联。

若要配置并测试 Snowflake 的 Microsoft Entra SSO,请执行以下步骤:

  1. 配置 Microsoft Entra SSO - 使用户能够使用此功能。
    1. 创建 Microsoft Entra 测试用户 - 使用 B.Simon 测试 Microsoft Entra 单一登录。
    2. 分配 Microsoft Entra 测试用户 - 使 B.Simon 能够使用 Microsoft Entra 单一登录。
  2. 配置 Snowflake SSO - 在应用程序端配置单一登录设置。
    1. 创建 Snowflake 测试用户 - 在 Snowflake 中创建一个与 B.Simon 对应的用户,并将其链接到 Microsoft Entra 中该用户的表示形式。
  3. 测试 SSO - 验证配置是否正常工作。

配置 Microsoft Entra SSO

按照以下步骤启用 Microsoft Entra SSO。

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到 Entra ID>Enterprise 应用>Snowflake>单点登录

  3. 在“选择单一登录方法”页上选择“SAML” 。

  4. “使用 SAML 设置单一登录 ”页上,选择 基本 SAML 配置的 铅笔图标以编辑设置。

    显示编辑基本 SAML 配置的屏幕截图。

  5. 如果要在 IDP 发起的模式下配置应用程序,请在“基本 SAML 配置”部分中执行以下步骤 :

    a。 在“标识符” 文本框中,使用以下模式键入 URL:

    b. 在“回复 URL”文本框中,使用以下模式键入 URL:

  6. 若要在 SP 启动模式下配置应用程序,请选择“设置其他 URL”,并执行以下步骤:

    a。 在“登录 URL” 文本框中,使用以下模式键入 URL:

    b. 在“注销 URL”文本框中,使用以下模式键入 URL:

    注意

    这些值不是真实的。 使用实际标识符、回复 URL、登录 URL 和注销 URL 更新这些值。 请联系 Snowflake 客户端支持团队获取这些值。 还可参考“基本 SAML 配置”部分中显示的模式。

  7. 在“使用 SAML 设置单一登录”页的“SAML 签名证书”部分中,选择“下载”以根据要求从给定的选项下载“证书(Base64)”,并将其保存在计算机上。

    显示证书下载链接的屏幕截图。

  8. “设置 Snowflake ”部分中,根据需要复制一个或多个适当的 URL。

    屏幕截图:复制配置相应的 URL。

创建和分配 Microsoft Entra 测试用户

请遵循创建和分配用户帐户快速指南中的指引,创建一个名为 B.Simon 的测试用户帐户。

配置 Snowflake SSO

  1. 在不同的 Web 浏览器窗口中,以安全管理员身份登录到 Snowflake。

  2. 通过在页面右上角选择配置文件切换角色为ACCOUNTADMIN

    注意

    这与你在右上角“用户名”下选择的上下文不同。

    Snowflake 管理员

  3. 在记事本中打开下载的 Base 64 证书。 复制“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”之间的值,并将该内容粘贴到 SAML2_X509_CERT 中。

  4. 在“SAML2_ISSUER”中,粘贴之前复制的“标识符”值。

  5. 在“SAML2_SSO_URL”中,粘贴之前复制的“登录 URL”值。

  6. 在 SAML2_PROVIDER 中,给出像 之类的值。

  7. 选择 “所有查询 ”,然后选择“ 运行”。

    Snowflake sql

    CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
    TYPE = SAML2
    ENABLED = TRUE | FALSE
    SAML2_ISSUER = '<EntityID/Issuer value which you have copied>'
    SAML2_SSO_URL = '<Login URL value which you have copied>'
    SAML2_PROVIDER = 'CUSTOM'
    SAML2_X509_CERT = '<Paste the content of downloaded certificate from Azure portal>'
    [ 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>' ]
    

如果您正在使用包含组织名称作为登录地址的新 Snowflake URL,则需要更新以下参数:

更改集成以添加 Snowflake Issuer URL 和 SAML2 Snowflake ACS URL,请按照本文中的步骤 6 了解更多信息。

  1. [ SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>' ]

    将安全集成<your security integration name goes here>设置为SAML2_SNOWFLAKE_ISSUER_URL = https://<organization_name>-<account name>.snowflakecomputing.com;

  2. [ SAML2_SNOWFLAKE_ACS_URL = '<string_literal>' ]

    alter security integration <your security integration name goes here> set SAML2_SNOWFLAKE_ACS_URL = https://<organization_name>-<account name>.snowflakecomputing.com/fed/login;

注意

按照 本指南 详细了解如何创建 SAML2 安全集成。

注意

如果现有 SSO 设置使用 saml_identity_provider 帐户参数,则按照指南将其迁移到 SAML2 安全集成。

创建 Snowflake 测试用户

若要使 Microsoft Entra 用户能够登录到 Snowflake,必须将其预配到 Snowflake 中。 在 Snowflake 中,预配属手动任务。

若要预配用户帐户,请执行以下步骤:

  1. 以安全管理员身份登录到 Snowflake。

  2. 通过在页面右上角选择配置文件切换角色为ACCOUNTADMIN

    Snowflake 管理员

  3. 通过运行以下 SQL 查询创建用户,确保“登录名称”设置为工作表上的 Microsoft Entra 用户名,如下所示。

    Snowflake adminsql

     use role accountadmin;
     CREATE USER britta_simon PASSWORD = '' LOGIN_NAME = 'BrittaSimon@contoso.com' DISPLAY_NAME = 'Britta Simon';
    

注意

如果用户和组已使用 SCIM 集成预配,则无需手动预配。 了解如何为 Snowflake 启用自动预配。

测试 SSO

在本部分,你将使用以下选项测试 Microsoft Entra 单一登录配置。

SP 启动的:

  • 选择“ 测试此应用程序”,此选项将重定向到 Snowflake 登录 URL,可在其中启动登录流。

  • 直接转到 Snowflake 登录 URL,并从那里启动登录流。

IDP 启动的:

  • 选择“ 测试此应用程序”,应会自动登录到为其设置了 SSO 的 Snowflake。

还可以使用 Microsoft“我的应用”在任何模式下测试此应用程序。 在“我的应用”中选择 Snowflake 磁贴时,如果是在 SP 模式下配置的,你会重定向到应用程序登录页来启动登录流;如果是在 IDP 模式下配置的,则应会自动登录到为其设置了 SSO 的 Snowflake。 有关详细信息,请参阅 Microsoft Entra 我的应用

阻止通过本地帐户的应用程序访问

验证 SSO 是否正常工作并在组织中推出后,我们建议使用本地凭据禁用应用程序访问。 这确保您的条件访问策略、MFA等措施已到位,以保护对 Snowflake 的登录。 查看 Snowflake 文档,了解如何配置 SSO,并使用 ALTER USER commandlet 删除用户密码。

配置 Snowflake 后,可以强制实施会话控制,实时防止组织的敏感数据外泄和渗透。 会话控制从条件访问扩展而来。 了解如何通过 Microsoft Defender for Cloud Apps 强制实施会话控制