教程:Microsoft Entra SSO 与 Snowflake 的集成

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

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

先决条件

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

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

注意

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

方案描述

在本教程中,你将在测试环境中配置并测试 Microsoft Entra 单一登录。

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

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览至“标识”>“应用程序”>“企业应用程序”>“新建应用程序”。
  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. 浏览到“标识”>“应用程序”>“企业应用程序”>“Snowflake”>“单一登录”。

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

  4. 在“设置 SAML 单一登录”页面上,单击“基本 SAML 配置”旁边的铅笔图标以编辑设置 。

    Screenshot shows to edit Basic S A M L Configuration.

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

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

    b. 在“回复 URL”文本框中,使用以下模式键入 URL:https://<SNOWFLAKE-URL>.snowflakecomputing.com/fed/login

  6. 如果要在 SP 发起的模式下配置应用程序,请单击“设置其他 URL” ,并执行以下步骤:

    a. 在“登录 URL” 文本框中,使用以下模式键入 URL:https://<SNOWFLAKE-URL>.snowflakecomputing.com

    b. 在“注销 URL”文本框中,使用以下模式键入 URL:https://<SNOWFLAKE-URL>.snowflakecomputing.com/fed/logout

    注意

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

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

    Screenshot shows the Certificate download link.

  8. 在“设置 Snowflake”部分中,根据要求复制相应 URL 。

    Screenshot shows to copy configuration appropriate U R L.

创建 Microsoft Entra 测试用户

在本部分,你将创建名为 B.Simon 的测试用户。

  1. 至少以用户管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览到“标识”>“用户”>“所有用户”。
  3. 选择屏幕顶部的“新建用户”>“创建新用户”。
  4. 在“用户”属性中执行以下步骤
    1. 在“显示名称”字段中输入 B.Simon
    2. 在“用户主体名称”字段中,输入 username@companydomain.extension。 例如 B.Simon@contoso.com
    3. 选中“显示密码”复选框,然后记下“密码”框中显示的值。
    4. 选择“查看 + 创建”。
  5. 选择“创建”。

分配 Microsoft Entra 测试用户

在本部分中,通过授予 B.Simon 访问 Snowflake 的权限,使其能够使用单一登录。

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览到“标识”>“应用程序”>“企业应用程序”>“Snowflake”。
  3. 在应用的概述页面中,选择“用户和组”。
  4. 选择“添加用户/组”,然后在“添加分配”对话框中选择“用户和组” 。
    1. 在“用户和组”对话框中,从“用户”列表中选择“B.Simon”,然后单击屏幕底部的“选择”按钮。
    2. 如果你希望将某角色分配给用户,可以从“选择角色”下拉列表中选择该角色。 如果尚未为此应用设置任何角色,你将看到选择了“默认访问权限”角色。
    3. 在“添加分配”对话框中,单击“分配”按钮。

配置 Snowflake SSO

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

  2. 通过单击页面右上方的“配置文件”,使用“切换角色”将角色切换为“ACCOUNTADMIN” 。

    注意

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

    The Snowflake admin

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

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

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

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

  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>' ]
    

如果你使用组织名称作为登录 URL 的新 Snowflake URL,则需要更新以下参数:

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

  1. [ SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>' ]

    alter security integration <your security integration name goes here> set 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” 。

    The Snowflake admin

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

    The 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 我的应用

后续步骤

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