教程: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 单一登录。
- Snowflake 支持 SP 和 IDP 发起的 SSO。
- Snowflake 支持自动用户预配和取消设置(推荐)。
从库中添加 Snowflake
若要配置 askSpoke 与 Microsoft Entra ID 的集成,需要从库中将 Snowflake 添加到托管 SaaS 应用列表。
- 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
- 浏览至“标识”>“应用程序”>“企业应用程序”>“新建应用程序”。
- 在“从库中添加”部分的搜索框中,键入“Snowflake” 。
- 从结果面板中选择“Snowflake”,然后添加该应用。 在该应用添加到租户时等待几秒钟。
或者,也可以使用企业应用配置向导。 在此向导中,可以将应用程序添加到租户、将用户/组添加到应用、分配角色,以及逐步完成 SSO 配置。 详细了解 Microsoft 365 向导。
配置并测试 Snowflake 的 Microsoft Entra SSO
使用名为 B.Simon 的测试用户配置并测试 Snowflake 的 Microsoft Entra SSO。 若要使 SSO 正常工作,需要在 Microsoft Entra 用户与 Snowflake 中的相关用户之间建立关联。
若要配置并测试 Snowflake 的 Microsoft Entra SSO,请执行以下步骤:
- 配置 Microsoft Entra SSO - 使用户能够使用此功能。
- 创建 Microsoft Entra 测试用户 - 使用 B.Simon 测试 Microsoft Entra 单一登录。
- 分配 Microsoft Entra 测试用户 - 使 B.Simon 能够使用 Microsoft Entra 单一登录。
- 配置 Snowflake SSO - 在应用程序端配置单一登录设置。
- 创建 Snowflake 测试用户 - 在 Snowflake 中创建 B.Simon 的对应用户,并将其链接到该用户的 Microsoft Entra 表示形式。
- 测试 SSO - 验证配置是否正常工作。
配置 Microsoft Entra SSO
按照以下步骤启用 Microsoft Entra SSO。
至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“应用程序”>“企业应用程序”>“Snowflake”>“单一登录”。
在“选择单一登录方法”页上选择“SAML” 。
在“设置 SAML 单一登录”页面上,单击“基本 SAML 配置”旁边的铅笔图标以编辑设置 。
如果要在 IDP 发起的模式下配置应用程序,请在“基本 SAML 配置”部分中执行以下步骤 :
a. 在“标识符”文本框中,使用以下模式键入 URL:
b. 在“回复 URL”文本框中,使用以下模式键入 URL:
https://<SNOWFLAKE-URL>.snowflakecomputing.com/fed/login
如果要在 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 配置”部分中显示的模式。
在“使用 SAML 设置单一登录” 页上,在“SAML 签名证书” 部分中,单击“下载” 以根据要求从给定的选项下载证书(Base64) 并将其保存在计算机上。
在“设置 Snowflake”部分中,根据要求复制相应 URL 。
创建 Microsoft Entra 测试用户
在本部分,你将创建名为 B.Simon 的测试用户。
- 至少以用户管理员身份登录到 Microsoft Entra 管理中心。
- 浏览到“标识”>“用户”>“所有用户”。
- 选择屏幕顶部的“新建用户”>“创建新用户”。
- 在“用户”属性中执行以下步骤:
- 在“显示名称”字段中输入
B.Simon
。 - 在“用户主体名称”字段中,输入 username@companydomain.extension。 例如
B.Simon@contoso.com
。 - 选中“显示密码”复选框,然后记下“密码”框中显示的值。
- 选择“查看 + 创建”。
- 在“显示名称”字段中输入
- 选择“创建”。
分配 Microsoft Entra 测试用户
在本部分中,通过授予 B.Simon 访问 Snowflake 的权限,使其能够使用单一登录。
- 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
- 浏览到“标识”>“应用程序”>“企业应用程序”>“Snowflake”。
- 在应用的概述页面中,选择“用户和组”。
- 选择“添加用户/组”,然后在“添加分配”对话框中选择“用户和组” 。
- 在“用户和组”对话框中,从“用户”列表中选择“B.Simon”,然后单击屏幕底部的“选择”按钮。
- 如果你希望将某角色分配给用户,可以从“选择角色”下拉列表中选择该角色。 如果尚未为此应用设置任何角色,你将看到选择了“默认访问权限”角色。
- 在“添加分配”对话框中,单击“分配”按钮。
配置 Snowflake SSO
在另一个 Web 浏览器窗口中,以安全管理员身份登录到 Snowflake。
通过单击页面右上方的“配置文件”,使用“切换角色”将角色切换为“ACCOUNTADMIN” 。
注意
这与你在右上角“用户名”下选择的上下文不同。
在记事本中打开下载的 Base 64 证书。 复制“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”之间的值,并将该内容粘贴到 SAML2_X509_CERT 中。
在“SAML2_ISSUER”中,粘贴之前复制的“标识符”值。
在“SAML2_SSO_URL”中,粘贴之前复制的“登录 URL”值。
在 SAML2_PROVIDER 中,给出像
CUSTOM
之类的值。选择“所有查询” ,然后单击“运行” 。
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 了解更多信息。
[ 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
;[ 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 中,预配属手动任务。
若要预配用户帐户,请执行以下步骤:
以安全管理员身份登录到 Snowflake。
通过单击页面右上方的“配置文件”,使用“切换角色”将角色切换为“ACCOUNTADMIN” 。
通过运行以下 SQL 查询来创建用户,确保“登录名”设置为工作表上的 Microsoft Entra 用户名,如下所示。
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 强制实施会话控制。