在 MongoDB 7.0 及更高版本中,您可以使用 Workforce Identity Federation 与外部身份提供程序 (身份提供程序) 结合使用,例如您的企业 身份提供程序。员工身份联合对您的员工(包括员工、合作伙伴和承包商)进行身份验证和授权。
通过 Workforce Identity Federation,您可以:
通过现有的 IdP 管理员工对 MongoDB 部署的访问。
在 IdP 中实施密码复杂性、档案轮换和多因素身份验证等安全策略。
每个项目只能创建一个 Workforce Identity Federation,但可以随时编辑或重新创建配置。
必需的访问权限
要配置 Workforce Identity Federation,您必须拥有Cloud Manager的Project Owner 访问权限。
先决条件
您必须满足以下前提条件:
mongosh1.9.1 或更高版本。MongoDB 7.0 或更高版本。
配置了MongoDBMongoDB Agent 助手的至少一种其他身份验证机制。
注意
MongoDB Agent 无法通过 OIDC 连接到您的部署。您必须为 MongoDB Agent 启用另一个身份验证机制。如果Cloud Manager不管理监控或备份,您必须手动将其配置为使用备用身份验证机制。
步骤
要使用 Workforce Identity Federation 访问 Cloud Manager 部署,请按照以下步骤操作:
配置劳动力身份提供程序(一次性设置)。
配置外部身份提供程序应用
注意
要重置项目的身份验证和 TLS 设置,请先取消管理Cloud Manager在项目中管理的任何MongoDB部署。
要使用 OIDC 配置 Workforce Identity Federation,请向支持 OIDC 标准的 身份提供程序 注册您的 OIDC 应用。示例包括 Microsoft Entra ID、Okta 和 Ping Identity。
您可以为这些授权类型配置您的 OIDC 应用:
使用PKCE的授权代码流
设备授权流程
MongoDB 建议您将授权代码流与PKCE 结合使用以提高安全性。 仅当用户需要从没有浏览器的计算机上访问数据库时,才使用设备授权流程。
OIDC 应用注册步骤可能因 身份提供程序 而异。在应用注册过程中,设置以下项目:
您的 OIDC 应用的一般注册步骤如下所示:
(可选)如果希望 MongoDB 客户端刷新令牌以获得更好的用户体验, 则允许刷新令牌。
(可选)配置访问令牌生命周期( exp声明)以与数据库连接会话时间保持一致。
注册应用程序后,保存 issuer 、 clientId 和 audience 值以在下一阶段的配置中使用。
要使用 Microsoft Entra ID 注册您的 OIDC应用:
注册应用程序。
导航至 App registrations。
在Azure门户帐户中,搜索并单击 Microsoft Entra ID。
在左侧导航栏的 Manage 部分,单击 App registrations。
单击 New registration(连接)。
应用以下值。
字段值Name
Cloud Manager Database - Workforce
Supported Account Types
Accounts in this organizational directory only (single tenant)
Redirect URI
- Public client/native (mobile & desktop)
-http://localhost:27097/redirect单击 Register(连接)。
要了解有关注册应用程序的更多信息,请参阅 Azure 文档。
添加一个群组声明。
导航至 Token Configuration。
在左侧导航栏的 Manage 部分,单击 Token Configuration。
单击 Add groups claim(连接)。
在 Edit groups claim 模式中,选择 Security。
所选择的群组取决于您在 Azure 环境中配置的群组类型。 您可能需要选择不同类型的群组 来发送相应的群组信息。
在Customize token properties by type部分中,仅选择Group ID 。
单击 Add(连接)。
要学习;了解有关添加群组声明的更多信息,请参阅Azure文档。
在访问令牌中添加用户标识符声明。
单击 Add optional claim(连接)。
在 Add optional claim 模式中,选择 Access。
选择带有用户标识符的声明,您可以在 MongoDB 访问 日志(如电子邮件)中引用该标识符。
您可以使用UPN声明通过电子邮件解决来识别用户。
单击 Add(连接)。
在 Microsoft Graph Permissions(Microsoft Graph 权限)注释中,选中复选框,然后单击 Add(添加)。
要了解详情,请参阅 Azure 文档。
更新清单。
在左侧导航栏的 Manage 部分,单击 Manifest。
将 accessTokenAcceptedVersion 从
null更新为2。数字
2代表 Microsoft 访问令牌版本 2。其他应用程序可以将其用作 Active Directory 托管用户身份的签名证明。版本 2 确保令牌是 MongoDB 可理解的 JSON 网络令牌。单击 Save(连接)。
要学习;了解有关添加可选声明的更多信息,请参阅Azure文档。
记住元数据。
在左侧导航栏中单击 Overview。
复制 Application (client) ID(应用程序(客户端)ID)值。
在顶部导航栏中,单击 Endpoints。
复制不带
/.well-known/openid-configuration部分的 OpenID Connect metadata document 值。您还可以通过复制OpenID Connect metadata document URL中
issuer的值来获取此值。
下表显示了这些Microsoft Entra ID用户界面值在MongoDB Atlas配置属性中的映射:
Microsoft Entra ID UI | MongoDB Atlas配置属性 |
|---|---|
Application (client) ID | Client ID |
OpenID Connect metadata document (without /.well-known/openid-configuration) | Issuer URI. |
配置 Workforce Identity Federation 身份验证
要使用OIDC 配置 Workforce Identity Federation,请完成此过程。
注意
Workforce Identity Federation 仅支持 JSON web token (JWT) 身份验证。它不支持不透明访问令牌。
可选:指定 TLS 设置。
字段 | 操作 |
|---|---|
MongoDB 部署传输层安全 (TLS) | 将此滑块切换至 ON(开启)。 |
TLS CA 文件路径 | TLS 证书颁发机构文件是
在运行 MongoDB 进程的每个主机上键入 TLS 证书颁发机构文件的文件路径:
这将为项目中的 MongoDB 进程启用 单击 Validate(验证)测试部署中每个主机在您指定的路径上是否都有 TLS 证书颁发机构。 |
集群 TLS CA 文件路径 | 包含来自证书授权机构的根证书链的 如果不指定
|
客户端证书模式 |
输入以下设置。
设置 | 必要性 | 值 |
|---|---|---|
Configuration Name | 必需 | |
Issuer URI | 必需 | 所注册的 IdP 应用程序提供的发行者值。使用此 URI,MongoDB 会找到 OpenID 提供商配置文档,该文档应当 |
Client ID | 必需 | 已注册应用程序的唯一标识符。 输入您在外部身份提供程序中注册的应用的 |
Audience | 必需 | 外部身份提供商打算为其提供令牌的实体。 输入您在外部身份提供程序中注册的应用的 |
Requested Scopes | Optional | 赋予用户从授权端点请求数据权限的令牌。 对于要添加的每个附加作用域,请单击 Add more scopes(添加更多作用域)。 |
授权类型 | 必需 | 选择 |
Customize User Claim | 必需 | 包含用户主体身份声明的标识符。接受默认值,除非 IdP 使用不同声明。 默认值: |
Customize Group Claim | 必需 | 如果选择 默认值: |
配置 OIDC 授权
MongoDB 不会明确地为 OIDC 创建数据库用户。它根据配置将 OIDC 用户映射到 MongoDB 角色。
按照您在配置 OIDC 身份验证时:选择的授权类型执行步骤。
群组成员资格
如果您选择了Group Membership 授权类型,请按照以下步骤创建自定义角色,该角色将根据 身份提供程序 用户群组成员身份授予授权:
创建 OIDC 角色。
输入以下字段:
字段必要性说明Identifier
必需
在Database框中,输入
admin。在 Name 框中,输入您的 OIDC 身份提供程序 配置名和来自您的外部身份提供程序的组名,以斜杠 (
/) 分隔:{configuration_name}/{group_name}Inherits From
Optional
角色名称和数据库对的列表。 这些对的格式为
roleName@dbName。Authentication Restrictions
Optional
您想要限制来自IdP的 IP 地址或 CIDR 符号列表。
Privilege Actions by Resource
Optional
允许对资源执行的操作。
要学习;了解更多信息,请参阅特权操作。
单击 Add Role(连接)。
用户 ID
如果您选择了 User ID授权类型,请创建一个新用户以向单个用户授权:
添加 OIDC 用户。
填写用户帐户字段:
字段说明Identifier
在第一个字段,输入
$external数据库。在第二个字段中,使用 OIDC 身份提供程序 配置名和配置中的用户主体索赔,以斜杠 (
/) 分隔的形式输入用户名:{configuration_name}/{user_principal_claim}
Roles
在此框中输入任何可用的用户定义角色和内置角色。 单击该组合框会提供现有角色的列表。
Authentication Restrictions
单击 Add Entry(连接)。
在 Client Source 或 Server Address 框中,添加一个或多个 IP 地址和/或 CIDR 块。使用逗号分隔多个地址或区块。
Client Source 限制此用户可以进行身份验证并使用给定角色的地址。
Server Address 限制该用户可以进行身份验证的地址并具有给定的角色。
单击 Save(连接)。
要添加其他条目,请单击Add Entry 。
单击 Add User(连接)。
使用 Workforce Identity Federation 连接到MongoDB
使用 mongosh 或 Compass 将应用与 MongoDB 连接,并使用 Workforce Identity Federation 身份验证。
管理现有员工 Identity Federation 配置
为了管理您的 Workforce Identity Federation 配置,您可以执行这些操作。
Revoke JSON Web Key Sets (JWKS)
注意
请勿使用此功能轮换您的签名密钥。轮换 OIDC IdP 签名密钥时,MongoDB 会在现有访问令牌到期后自动获取 JWKS。
如果您的私钥遭到泄露,您可以立即撤销缓存在 MongoDB 节点中的 JSON Web 密钥集:
在MongoDB Cloud Manager中,转到项目的 Security 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Database 标题下的 Security。
显示“安全”页面。
编辑配置
要编辑 Workforce Identity Federation 配置,请执行以下操作:
在MongoDB Cloud Manager中,转到项目的 Security 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Database 标题下的 Security。
显示“安全”页面。
删除配置
要删除Workforce Identity Federation 配置,请执行以下操作:
在MongoDB Cloud Manager中,转到项目的 Security 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Database 标题下的 Security。
显示“安全”页面。