从 Microsoft Entra ID 中配置联合身份验证
在此页面上
本指南介绍如何将 Microsoft Entra ID 作为 IdP 以配置联合身份验证。
在将 Microsoft Entra ID 与 Atlas 集成在一起后,您可以使用公司的凭证登录到 Atlas 和其他 MongoDB 云服务。
注意
Atlas 现在通过使用 OIDC/OAuth 2.0 进行身份验证和授权的方式支持数据库用户的 SSO。
必需的访问权限
如需管理联合身份验证,必须拥有一个或多个组织的 Organization Owner
(组织所有者)访问权限,这些组织会将联合设置委托给实例。
先决条件
要将 Microsoft Entra ID 作为 Atlas 的 IdP,您必须具有:
Azure 订阅。要获得订阅,请访问 Microsoft Azure 门户。
与您的订阅关联的 Microsoft Entra ID 租户。有关设置 Microsoft Entra ID 租户的信息,请参阅 Microsoft Entra ID 文档。
在 Microsoft Entra ID 租户中至少具有
Cloud App Administrator
和User Administrator
权限。自定义的可路由域名。
步骤
添加域用户
如果还没有这些用户,请使用 Azure 控制台将您的自定义域名添加到 Microsoft Entra ID 并创建用户:
将您的自定义域添加到 Microsoft Entra ID 中。
将您的自定义域名添加到 Microsoft Entra ID 中,以创建属于您的域的用户。在添加您的域后,还必须将 Microsoft Entra ID DNS 信息添加到 DNS 提供程序的 TXT
记录中并验证配置。
要将您的自定义域添加到 Microsoft Entra ID 中,请参阅 Azure 文档。
创建 Microsoft Entra ID 用户。
如果这些用户还不存在,请在 Microsoft Entra ID 中创建要授予访问权限的用户。用户必须属于您添加到 Microsoft Entra ID 的自定义域。
要创建 Microsoft Entra ID 用户,请参阅 Azure 文档。
将 Microsoft Entra ID 配置为身份提供程序
使用 Azure 控制台将 Microsoft Entra ID 配置为 SAML IdP。您可以从 Gallery 中添加 MongoDB Cloud 应用,也可以手动配置应用程序。
从库中添加 MongoDB Cloud 应用程序。
要将 MongoDB Cloud 应用添加到您的 Microsoft Entra ID 租户中,请参阅 Azure 文档。
将用户分配给应用程序。
将用户分配给应用程序。完成本教程后, 这些用户将可以访问 Atlas 和其他 MongoDB 云服务。
要将 Microsoft Entra ID 用户分配给应用程序,请参阅 Azure 文档。
导航到 SAML 配置页面,开始配置单点登录。
要导航到 SAML 配置页面,请参阅 Azure 文档。
为标识符和回复 URL 设置临时值。
要生成有效的 SAML 签名证书,您必须为适用于 Microsoft Entra ID 企业应用程序的 Identifier 和 Reply URL 分配临时值。如果在设置这些值之前下载证书,下载的证书将不是唯一的,您必须在设置这些值后重新下载证书。
要设置临时值:
单击第 1 部分中的 Edit。
删除任何现有的默认值,并设置以下临时值:
设置临时值Identifier (Entity ID)https://www.okta.com/saml2/service-provider/MongoDBCloud
Reply URL (Assertion Consumer Service URL).https://auth.mongodb.com/sso/saml2/
单击 Save(连接)。
刷新浏览器页面,确保重新生成证书。
临时性标识符和回复 URL 首次更新后,证书的指纹和有效期也会随之更改。
可选:将群组声明添加到 SAML 令牌。
如果不使用角色映射,请跳过此步骤。
要使用角色映射,请将以下组声明添加到 Microsoft Entra ID 发送到 Atlas 的 SAML 令牌中:
单击 Add a group claim。Azure 显示 Group Claims 面板。
在 Which groups associated with the user should be returned in the claim? 中,单击 Security groups。
所选择的群组取决于您在 Azure 环境中配置的群组类型。 您可能需要选择不同类型的群组 来发送相应的群组信息。
在 Source attribute 下拉菜单中,点击 Group Id。
如果选择 Group Id,Azure 将发送安全群组的“对象 ID”,而不是人类可读的群组名称。根据您的 Azure 环境,您可以选择不同的源属性来发送群组名称。
在 Atlas 中创建角色映射时,请将 SAML 响应中发送的 Azure 群组数据与配置的 Atlas 角色映射名称精确匹配。
单击 Advanced options 部分中的 Customize the name of the group claim。
将 Name 设置为 memberOf。
将 Namespace 留空。
清除 Emit groups as role claims(允许此应用请求其他 SSO URL)。
单击 Save(连接)。
将非库应用程序添加到 Microsoft Entra ID。
为应用程序指定一个描述性名称,例如 MongoDB-Atlas
。
要将非图库应用程序添加到 Microsoft Entra ID,请参阅 Azure 文档。
将用户分配给应用程序。
将用户分配给应用程序。完成本教程后, 这些用户将可以访问 Atlas 和其他 MongoDB 云服务。
要将 Microsoft Entra ID 用户分配给应用程序,请参阅 Azure 文档。
导航到 SAML 配置页面,开始配置单点登录。
要导航到 SAML 配置页面,请参阅 Azure 文档。
为标识符和回复 URL 设置临时值。
要生成有效的 SAML 签名证书,您必须为适用于 Microsoft Entra ID 企业应用程序的 Identifier 和 Reply URL 分配临时值。如果在设置这些值之前下载证书,下载的证书将不是唯一的,您必须在设置这些值后重新下载证书。
要设置临时值:
单击第 1 部分中的 Edit。
删除任何现有的默认值,并设置以下临时值:
设置临时值Identifier (Entity ID)https://www.okta.com/saml2/service-provider/MongoDBCloud
Reply URL (Assertion Consumer Service URL).https://auth.mongodb.com/sso/saml2/
单击 Save(连接)。
刷新浏览器页面,确保重新生成证书。
临时性标识符和回复 URL 首次更新后,证书的指纹和有效期也会随之更改。
编辑 Unique User Identifier(唯一用户标识符)必需声明。
使用以下值:
Choose name identifier format:
Unspecified
Source:
Attribute
Source attribute:
user.userprincipalname
重要
选择“来源”属性
根据您的 Active Directory 配置,包含用户完整电子邮件地址的源属性可以不是
user.userprincipalname
。使用包含与您的联邦域内现有 Atlas 用户的用户名相匹配的电子邮件地址的源属性,例如user.mail
。对于联合域中的现有 Atlas 用户,选择包含这些用户当前 Atlas 用户名的源属性。
要编辑 Unique User Identifier 必需声明,请参阅 Azure 文档。
在 SAML 令牌中添加用户声明。
将以下用户声明添加到 Microsoft Entra ID 发送到 Atlas 的 SAML 令牌中:
重要
Name(名称)列中的值区分大小写。严格按照所示输入。
对于所有用户索赔,必须将 Namespace
字段留空。
名称 | 源 | 源属性 |
---|---|---|
firstName | 属性 | user.givenname |
lastName | 属性 | user.surname |
注意
根据您的 Active Directory 配置,您使用的源属性可能会有所不同。将包含用户名字和姓氏的源属性用于相应的声明。
要添加用户声明,请参阅 Azure 文档。
可选:将群组声明添加到 SAML 令牌。
如果不使用角色映射,请跳过此步骤。
要使用角色映射,请将以下组声明添加到 Microsoft Entra ID 发送到 Atlas 的 SAML 令牌中:
单击 Add a group claim。Azure 显示 Group Claims 面板。
在 Which groups associated with the user should be returned in the claim? 中,单击 Security groups。
所选择的群组取决于您在 Azure 环境中配置的群组类型。 您可能需要选择不同类型的群组 来发送相应的群组信息。
在 Source attribute 下拉菜单中,点击 Group Id。
如果选择 Group Id,Azure 将发送安全群组的“对象 ID”,而不是人类可读的群组名称。根据您的 Azure 环境,您可以选择不同的源属性来发送群组名称。
在 Atlas 中创建角色映射时,请将 SAML 响应中发送的 Azure 群组数据与配置的 Atlas 角色映射名称精确匹配。
单击 Advanced options 部分中的 Customize the name of the group claim。
将 Name 设置为 memberOf。
将 Namespace 留空。
清除 Emit groups as role claims(允许此应用请求其他 SSO URL)。
单击 Save(连接)。
验证 SAML 签名证书是否使用 SHA-256
。
要验证 SAML 签名证书是否使用 SHA-256
签名算法,请参阅 Azure 文档。
在 Atlas 中添加 Microsoft Entra ID 以作为身份提供程序
使用 Federation Management Console 和 Azure 控制台将 Microsoft Entra ID 添加为 IdP:
在 Atlas 中,转到 Organization Settings(项目设置)页面。
如果尚未显示,组织从导航栏中的Organizations菜单。
单击 Organizations 菜单旁边的 Organization Settings 图标。
显示“组织设置”页面。
将 Microsoft Entra ID 作为身份提供程序添加到 Atlas 中。
单击 Configure Identity Providers(连接)。
如果您尚未配置任何身份提供程序,单击 Setup Identity Provider(设置身份提供程序)。否则,在 Identity Providers(身份提供程序)屏幕上,单击 Add Identity Provider(配置身份提供程序)。
输入或选择以下 SAML 协议设置。所有字段均为必填项:
字段说明Configuration Name描述性名称,例如Microsoft Entra ID
。IdP Issuer URIMicrosoft Entra ID Identifier 您在本教程上文内容中从 Azure 复制的内容。IdP Single Sign-On URLLogin URL 您在本教程上文内容中从 Azure 复制的。IdP Signature CertificateBase64
您在本教程上文内容中从 Azure 下载的编码 SAML 签名证书。您可以执行以下任一操作:
从您的计算机上传证书,或者
将证书内容粘贴到文本框中。
Request BindingHTTP POST.Response Signature AlgorithmSHA-256.单击 Next(连接)。
将元数据文件上传到 Azure 中,以完成将 Microsoft Entra ID 配置为 IdP 的过程。
要上传文件,请参阅3 为应用启用单点登录的 步骤 中的屏幕截图 在 Azure 文档中。在 SSO 配置页面上单击Upload metadata file ,如链接的Azure文档中的屏幕截图所示。
(可选)将一个 RelayState URL 添加到您的 IdP 以将用户转到所选的 URL,并在登录后避免不必要的重定向。您可以使用:
目的地 | RelayState URL | |
---|---|---|
MongoDB Atlas | Login URL 在 Atlas Federation Management 应用程序中为身份提供程序配置生成的。 | |
MongoDB 支持门户 |
| |
MongoDB University |
| |
MongoDB 社区论坛 |
| |
MongoDB 反馈引擎 |
| |
MongoDB JIRA |
|
映射您的域
将域映射到 IdP 可以让 Atlas 知道域中用户应该应被定向到用于身份提供者配置的 Login URL。
访问 Atlas 登录页面时,用户需要输入自己的电子邮件地址。 如果电子邮件域与 IdP 关联,则被发送到该 IdP 的登录 URL。
重要
您可以将单个域映射到多个身份提供程序。如果这样做,使用 MongoDB Cloud 控制台登录的用户将自动重定向到第一个映射到该域的匹配 IdP。
要使用备用身份提供程序登录,用户必须:
通过所需的 IdP 启动 MongoDB Cloud 登录,或
使用与所需 IdP 关联的 Login URL 登录。
使用 Federation Management Console 将您的域映射到 IdP:
打开 FMC。
在 Atlas 中,前往 Organization Settings 页面。
如果尚未显示,组织从导航栏中的Organizations菜单。
单击 Organizations 菜单旁边的 Organization Settings 图标。
显示“组织设置”页面。
在 Manage Federation Settings 中,单击 Open Federation Management App。
输入域 映射信息。
单击 Add a Domain(连接)。
在 Domains 屏幕上,单击 Add Domain。
为域映射输入以下信息:
字段说明显示名称用于轻松识别域的标签。域名要映射的域名。单击 Next(连接)。
选择域验证方法。
注意
您可以选择一次验证方法。不能修改。 如需选择不同的验证方法,请删除域映射,然后重新创建。
根据您是通过上传 HTML 文件还是创建 DNS TXT 记录来验证域,选择相应的标签页:
上传包含验证密钥的 HTML 文件,验证您是否拥有自己的域。
单击 HTML File Upload(连接)。
单击 Next(连接)。
下载 Atlas 提供的
mongodb-site-verification.html
文件。将HTML文件上传到域中的站点。 您必须能够访问权限位于
<https://host.domain>/mongodb-site-verification.html
的文件。单击 Finish(连接)。
在您的域提供商系统中创建 DNS TXT 记录,以验证您是否拥有自己的域。每个 DNS 记录都会将特定的 Atlas 组织与特定的域关联起来。
单击 DNS Record(连接)。
单击 Next(连接)。
复制所提供的 TXT 记录。TXT 记录具有以下格式:
mongodb-site-verification=<32-character string> 登录您的域名提供商(例如 GoDaddy.com 或 networksolutions.com)。
将 Atlas 提供的 TXT 记录添加到域。
返回 Atlas 并单击 Finish(完成)。
验证域。
Domains 屏幕显示您已映射到 IdP 的未验证域名和已验证域名。 要验证您的域,点击目标域的 Verify 按钮。Atlas 在屏幕顶部的横幅显示验证是否成功。
将域与身份提供商关联
在成功验证您的域后,使用 Federation Management Console(联合管理控制台)将该域与 Microsoft Entra ID 相关联:
单击左侧导航栏中的 Identity Providers。
对于要与域名关联的 IdP,请单击 Associated Domains(关联域名)旁边的 Edit(编辑)。
选择要与 IdP 关联的域。
单击 Confirm(连接)。
测试您的域映射
重要
开始测试前,复制并保存 IdP 的 Bypass SAML Mode URL。使用此 URL 可在您被 Atlas 组织锁定时绕过联合身份验证。
测试时,请将会话登录到 Federation Management Console,进一步防止锁定。
要了解有关 Bypass SAML Mode 的详情,请参阅旁路 SAML 模式。
使用 Federation Management Console(联合管理控制台)测试您的域与 Microsoft Entra ID 之间的集成:
在专用浏览器窗口中,导航到 Atlas 登录页面。
输入用户名(通常是电子邮件地址)和已验证的域名。
例子
如果验证的域是 mongodb.com
,请使用 username@mongodb.com
形式的电子邮件地址。
单击 Next(下一步)。如果域映射正确,则您会被重定向到 IdP 进行身份验证。身份验证成功后,您将被重定向回 Atlas。
注意
您可以直接导航到 IdP Login URL(登录 URL),绕过 Atlas 登录页面。
(可选)映射组织
使用 Federation Management Console 为域用户分配对特定 Atlas 组织的访问权限:
在 Atlas 中,转到 Organization Settings(项目设置)页面。
如果尚未显示,组织从导航栏中的Organizations菜单。
单击 Organizations 菜单旁边的 Organization Settings 图标。
显示“组织设置”页面。
将一个组织连接到联合应用程序。
单击 View Organizations(连接)。
Atlas 显示您属于
Organization Owner
(组织所有者)的所有组织。尚未连接到联合应用程序的组织在 Actions(操作)列中具有 Connect(连接)按钮。
单击所需组织的 Connect(连接)按钮。
将一个身份提供程序应用于组织。
从管理控制台的 Organizations 屏幕:
单击要映射到一个 IdP 的组织的 Name(名称)。
在 Identity Provider 屏幕上,单击 Apply Identity Provider。
Atlas 会将您引导至 Identity Providers(身份提供程序)页面,显示您已链接 Atlas 的所有 IdP。
对于要应用到组织的 IdP,请单击 Add Organizations。
在 Apply Identity Provider to Organizations(将身份提供商应用于组织)模式中,选择此 IdP 适用的组织。
单击 Confirm(连接)。
(可选)配置高级联合身份验证选项
您可以为联合身份验证配置以下高级选项, 以便更好地控制联邦用户和身份验证流程:
注意
以下联合身份验证高级选项要求您映射一个组织。
使用登录 URL 登录 Atlas
您分配给 Azure 应用程序的所有用户可以在 Login URL(登录 URL)上使用其 Microsoft Entra ID 凭证登录到 Atlas。用户有权访问您映射到 IdP 的组织。
重要
您可以将单个域映射到多个身份提供程序。如果这样做,使用 MongoDB Cloud 控制台登录的用户将自动重定向到第一个映射到该域的匹配 IdP。
要使用备用身份提供程序登录,用户必须:
通过所需的 IdP 启动 MongoDB Cloud 登录,或
使用与所需 IdP 关联的 Login URL 登录。
如果您选择了默认组织角色,则使用 Login URL(登录 URL)登录 Atlas 的新用户将拥有您指定的角色。