通过 OIDC 设置 Workforce Identity Federation
在此页面上
在MongoDB 7.0及更高版本中,劳动力身份联合允许您使用外部身份提供程序 (IdP)(例如公司 IdP )对特定劳动力(例如员工、合作伙伴和承包商)进行身份验证和授权。
通过 Workforce Identity Federation,您可以:
通过现有的 IdP 管理员工对 MongoDB 部署的访问。
在 IdP 中实施密码复杂性、档案轮换和多因素身份验证等安全策略。
每个项目只能创建一个 Workforce Identity Federation,但可以随时编辑或重新创建配置。
必需的访问权限
要配置 Workforce Identity Federation,您必须对Cloud Manager拥有Project Owner
访问权限。
先决条件
您必须具备以下条件:
mongosh
1.9.1 或更高版本。MongoDB 7.0 或更高版本。
配置了MongoDBMongoDB Agent 助手的至少一种其他身份验证机制。
注意
MongoDB AgentMongoDB 助手助手无法通过 OIDC 连接到您的部署。您必须为MongoDBMongoDB Agent 助手启用额外的身份验证机制。如果Cloud Manager不管理监控或备份,您必须手动将其配置为使用备用身份验证机制。
步骤
要使用 Workforce Identity Federation访问权限Cloud Manager部署,请完成以下步骤:
配置劳动力身份提供程序(一次性设置)。
配置外部身份提供商应用程序
注意
如果您想为项目重置身份验证和 TLS 设置,请先取消管理所有 MongoDB 部署,并且 Cloud Manager 在您的项目中管理这些部署。
要使用 OIDC 配置 Workforce Identity Federation,请向支持 OIDC 标准的 IdP 注册您的 OIDC应用程序,例如Microsoft Entra ID、Okta 或 Ping Identity。
您可以为以下授权类型配置OIDC应用程序:
使用PKCE的授权代码流
设备授权流程
MongoDB 建议您将授权代码流与PKCE 结合使用以提高安全性。 仅当用户需要从没有浏览器的计算机上访问数据库时,才使用设备授权流程。
OIDC应用程序注册步骤可能因IdP而异。 确保在注册过程中完成以下事项:
OIDC应用程序的一般注册步骤如下:
(可选)如果希望 MongoDB 客户端刷新令牌以获得更好的用户体验, 则允许刷新令牌。
(可选)配置访问令牌生命周期( exp
声明)以与数据库连接会话时间保持一致。
注册应用程序后,保存 issuer
、 clientId
和 audience
值以在下一阶段的配置中使用。
要使用Microsoft Entra ID注册您的OIDC应用程序:
注册应用程序。
导航至 App registrations。
在 Azure门户 中 帐户,搜索并单击Microsoft Entra ID 。
在左侧导航栏的 Manage 部分,单击 App registrations。
单击 New registration(连接)。
应用以下值。
字段值NameCloud Manager Database - WorkforceSupported Account TypesAccounts 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 Audience |
OpenID Connect metadata document (without /.well-known/openid-configuration) | Issuer URI. |
配置 Workforce Identity Federation 身份验证
要使用 OIDC 配置 Workforce Identity Federation,请完成以下过程。
注意
Workforce Identity Federation 仅支持使用 JSON web token 进行身份验证。 它不支持不透明访问令牌。
可选:指定 TLS 设置。
字段 | 操作 |
---|---|
MongoDB 部署传输层安全 (TLS) | 将此滑块切换至 ON(开启)。 |
TLS CA 文件路径 | TLS 证书颁发机构文件是
在运行 MongoDB 进程的每个主机上键入 TLS 证书颁发机构文件的文件路径:
这将为项目中的 MongoDB 进程启用 单击 Validate(验证)测试部署中每个主机在您指定的路径上是否都有 TLS 证书颁发机构。 |
集群 TLS CA 文件路径 | 包含来自证书授权机构的根证书链的 如果不指定
|
客户端证书模式 |
输入以下设置。
设置 | 必要性 | 值 |
---|---|---|
Configuration Name | 必需 | |
Issuer URI | 必需 | 所注册的 IdP 应用程序提供的发行者值。使用此 URI,MongoDB 会找到 OpenID 提供商配置文档,该文档应在 /.wellknown/open-id-configuration 端点中可用。 |
Client ID | 必需 | 已注册应用程序的唯一标识符。 输入您在外部身份提供程序中注册的应用的 clientId 值。 |
Audience | 必需 | 外部身份提供商打算为其提供令牌的实体。 输入您在外部身份提供程序中注册的应用的 audience 值。 通常,此值与Client ID相同。 |
Requested Scopes | Optional | 赋予用户从授权端点请求数据权限的令牌。 对于要添加的每个附加作用域,请单击 Add more scopes(添加更多作用域)。 |
授权类型 | 必需 | 选择 Group Membership 以根据IdP用户群组成员身份授予授权,或选择User ID 以向单个用户授予授权。 |
Customize User Claim | 必需 | 包含用户主体身份声明的标识符。接受默认值,除非 IdP 使用不同的声明。 默认值: |
Customize Group Claim | 必需 | 如果选择 默认值: |
配置 OIDC 授权
MongoDB不会显式为 OIDC 创建数据库用户。它根据配置将 OIDC 用户映射到MongoDB角色。
根据您在配置 OIDC身份验证时选择的授权类型,选择一个标签页。
如果您选择了Group Membership
授权类型,请完成以下步骤以创建自定义角色,该角色根据 IdP 用户群组成员身份授予授权:
创建 OIDC 角色。
输入以下字段:
字段必要性说明Identifier必需在Database框中,输入
admin
。在Name 框中,输入您的 OIDC IdP 配置名称和来自外部身份提供商的群组名称,并用斜杠分隔
/
:{configuration_name}/{group_name} Inherits FromOptional角色名称和数据库对的列表。 这些对的格式为roleName@dbName
。Authentication RestrictionsOptional您想要限制来自IdP的 IP 地址或 CIDR 符号列表。Privilege Actions by ResourceOptional允许对资源执行的操作。
要学习;了解更多信息,请参阅特权操作。
单击 Add Role(连接)。
如果您选择了 User ID
授权类型,请创建一个新用户以向单个用户授权:
添加 OIDC 用户。
填写用户帐户字段:
字段说明Identifier在第一个字段,输入
$external
数据库。在第二个字段,输入使用用户名 IdP 配置名称的用户名和配置中的用户主体声明,用斜杠
/
分隔:{configuration_name}/{user_principal_claim}
Roles在此框中输入任何可用的用户定义角色和内置角色。 单击该组合框会提供现有角色的列表。Authentication Restrictions单击 Add Entry(连接)。
在Client Source 或 框中添加一个或多个IP地址和/或 CIDRServer Address 块。用逗号分隔多个地址或区块。
Client Source 限制此用户可以进行身份验证并使用给定角色的地址。
Server Address 限制该用户可以进行身份验证的地址并具有给定的角色。
单击 Save(连接)。
要添加其他条目,请单击Add Entry 。
单击 Add User(连接)。
使用 Workforce Identity Federation 连接到MongoDB
使用mongosh
或Compass通过 Workforce Identity Federation身份验证将应用程序连接到MongoDB 。
管理现有员工 Identity Federation 配置
要管理Workforce Identity Federation 配置,您可以执行以下操作。
Revoke JWKS
注意
请勿使用此功能轮换您的签名密钥。轮换 OIDC IdP 签名密钥时,MongoDB 会在现有访问令牌到期后自动获取 JWKS。
如果您的私钥遭到泄露,您可以立即撤销缓存在 MongoDB 节点中的 JSON Web 密钥集 (JWKS):
编辑配置
要编辑 Workforce Identity Federation 配置,请执行以下操作:
删除配置
要删除Workforce Identity Federation 配置,请执行以下操作: