通过 OIDC 设置 Workforce Identity Federation
在此页面上
在MongoDB 7.0及更高版本中,劳动力身份联合允许您使用外部身份提供程序 (IdP)(例如公司 IdP )对特定劳动力(例如员工、合作伙伴和承包商)进行身份验证和授权。
通过 Workforce Identity Federation,您可以:
通过现有的 IdP 管理员工对 MongoDB 部署的访问。
通过 IdP 执行密码复杂性、凭证轮换和 MFA 等安全策略。
配置外部IdP并将其一次添加到 Workforce Identity Federation 后,您可以为多个Atlas组织启用Workforce Identity Provider。 在给定组织中启用Workforce Identity Federation 后,您可以在该组织的所有项目中使用它来访问权限数据库。
运行MongoDB 7.0.11及更高版本的Atlas专用集群(M 10及更高版本)支持 Workforce Identity Federation。 您需要使用MongoDB Shell或Compass来访问权限具有 Workforce Identity Federation 的Atlas 。
要学习;了解有关实施 Workforce Identity Federation访问权限的更多信息,请参阅使用 Workforce Identity Federation 将应用程序连接到MongoDB 。
必需的访问权限
要管理Workforce Identity Federation 配置,您必须对Atlas拥有 Organization Owner
访问权限。
步骤
要使用 Workforce Identity Federation访问权限Atlas集群,请完成以下步骤:
配置劳动力身份提供程序(一次性设置)。
授予外部身份(用户主体)或群组访问权限MongoDB集群的权限。
使用MongoDB Shell或Compass对Atlas集群进行身份验证。
配置外部身份提供商应用程序
要使用 OIDC 配置 Workforce Identity Federation,请向支持 OIDC 标准的 IdP 注册您的 OIDC 应用程序,例如 Microsoft Entra ID 、Okta 或 Ping Identity。
注意
Workforce Identity Federation 仅支持使用 JSON web token 进行身份验证。 它不支持不透明访问令牌。
您可以为以下授权类型配置OIDC应用程序:
使用PKCE的授权代码流
设备授权流程
MongoDB 建议您将授权代码流与PKCE 结合使用以提高安全性。 仅当用户需要从没有浏览器的计算机上访问数据库时,才使用设备授权流程。
OIDC应用程序注册步骤可能因IdP而异。 确保在注册过程中完成以下事项:
(可选)如果希望 MongoDB 客户端刷新令牌以获得更好的用户体验, 则允许刷新令牌。
(可选)配置访问令牌生命周期( exp
声明)以与数据库连接会话时间保持一致。
注册应用程序后,保存issuer
、 clientId
和audience
值,以在Atlas Workforce IdP 配置的下一阶段使用。
要使用Microsoft Entra ID注册您的OIDC应用程序:
注册应用程序。
导航至 App registrations。
在 Azure门户 中 帐户,搜索并单击Microsoft Entra ID 。
在左侧导航栏的 Manage 部分,单击 App registrations。
单击 New registration(连接)。
应用以下值。
字段值NameAtlas 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 用户界面值在我们的 Atlas 配置属性中映射的内容:
Microsoft Entra ID UI | 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,以便从 Federation Management Console(联合管理控制台)访问 Atlas 中的数据库。
要在Atlas中配置劳动力身份提供程序,请执行以下操作:
添加并验证域所有权。
您必须验证向IdP注册的域的所有权。 如果您已经在域中注册Atlas的 SAML SSO,则可以跳过此步骤。
在左侧边栏中选择“域”。
单击 Add Domain 按钮。
在Display Name框中输入显示名称。
在Domain Name框中输入域名。
单击HTML File Upload或DNS Record按钮,选择验证您是否为域所有者的方法。
如果您选择了HTML File Upload ,请下载提供的 HTML 文件并将其上传到您的域,以便可以通过
https://<your-domain/mongodb-site-verification.html>
访问该文件。如果您选择了DNS Record ,请复制提供的
TXT Record
,并将其上传到您的域提供商。单击 Continue(连接)。
最后,在Domains页面中,单击新添加的域的Verify按钮。
输入以下劳动力身份提供商协议设置。
设置 | 必要性 | 值 |
---|---|---|
Configuration Name | 必需 | 标识此配置的人类可读标签。 此标签对Atlas用户可见。 |
Configuration Description | Optional | 描述此配置的人类可读标签。 |
Issuer URI | 必需 | 所注册的 IdP 应用程序提供的发行者值。使用此 URI,MongoDB 会找到 OpenID 提供商配置文档,该文档应在 /.wellknown/open-id-configuration 端点中可用。 |
Client ID | 必需 | 已注册应用程序的唯一标识符。 输入您在外部身份提供程序中注册的应用的 clientId 值。 |
互动讨论 | 必需 | 外部身份提供商打算为其提供令牌的实体。 输入您在外部身份提供程序中注册的应用的 audience 值。 通常,此值与Client ID相同。 |
授权类型 | 必需 | 选择 Group Membership 以根据IdP用户群组成员身份授予授权,或选择User ID 以向单个用户授予授权。 |
Requested Scopes | Optional | 授予用户从授权端点请求数据权限的令牌。 如果计划支持刷新令牌,则此字段必须包含值 如果您的身份提供商是Microsoft Entra ID,则Atlas需要此设置。 添加默认范围,即 对于要添加的每个附加作用域,请单击 Add more scopes(添加更多作用域)。 |
User Claim | 必需 | 包含用户主体身份的声明的标识符。 接受默认值,除非IdP使用不同的声明。 默认值: |
Groups Claim | 必需 | 包含主体的IdP用户群组成员信息的声明的标识符。 接受默认值,除非IdP使用不同的声明,或者您需要自定义声明。 仅当您选择 默认值: |
使用劳动力身份验证添加数据库用户
AtlasGoDatabase Access在Atlas中,Go项目的 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database Access。
显示数据库访问页面。
打开 Add New Database User or Group(添加新的数据库用户)对话框。
单击 Add New Database User or Group(添加新的数据库用户)。
注意
在您应用Workforce IdP 应用于Atlas之前,此按钮会显示Add New Database User 。
选择 Federated Auth(Atlas SQL)。
在 Authentication Method 部分,选择 Federated Auth。
注意
在为组织启用Workforce IdP 之前,您无法选中此框。
分配用户或群组权限。
要向新用户或群组分配权限,请执行以下一项或多项任务:
从 Built-in Role 下拉菜单中,选择一个内置角色。
您可以在 Atlas 用户界面中为每个数据库组选择一个内置角色。
如果删除默认选项,则可以单击Add Built-in Role选择新的内置角色。
选择或添加自定义角色。
如果您定义了任何自定义角色,则可以展开Custom Roles部分,然后从Custom Roles下拉菜单中选择一个或多个角色。
单击Add Custom Role以添加更多自定义角色。
单击Custom Roles链接可查看项目的自定义角色。
添加权限。
展开Specific Privileges部分,然后从Specific Privileges下拉菜单中选择一个或多个权限。
单击Add Specific Privilege可添加更多权限。 这将为群组分配对各个数据库和集合的特定权限。
删除已应用的角色或特权。
- 单击Delete旁边
- 要删除的角色或特权。
注意
如果只选择了一个选项,Atlas 不会在 Built-in Role(内置角色)、Custom Role(自定义角色)或 Specific Privilege(特定权限)选项旁边显示 Delete(删除)图标。应用了其他角色或权限后,就可以删除选定的角色或权限。
Atlas 可以将一个内置角色、多个自定义角色和多个特定权限应用到 数据库群组。
要了解有关授权的更多信息,请参阅 MongoDB 手册中的基于角色的访问控制和内置角色。
使用 Workforce Identity Federation 将应用程序连接到MongoDB
下面列出了使用 Workforce Identity Federation身份验证将应用程序连接到MongoDB的方法:
Compass v1.38 +
MongoDB Shell v2.14 +
管理现有员工 Identity Federation 配置
Revoke JWKS
注意
仅当您管理自己的签名密钥时才使用以下过程。
请勿使用此功能轮换您的签名密钥。 轮换劳动力身份提供者签名密钥时, MongoDB会在现有访问权限令牌过期时自动获取 JWKS。
如果您的私钥遭到泄露,您可以立即撤销缓存在 MongoDB 节点中的 JSON Web 密钥集 (JWKS):
在 Atlas 中,转到 Organization Settings(项目设置)页面。
如果尚未显示,组织从导航栏中的Organizations菜单。
单击 Organizations 菜单旁边的 Organization Settings 图标。
显示“组织设置”页面。
删除劳动力身份提供商配置
要删除Workforce Identity Provider 配置,请执行以下操作:
在 Atlas 中,转到 Organization Settings(项目设置)页面。
如果尚未显示,组织从导航栏中的Organizations菜单。
单击 Organizations 菜单旁边的 Organization Settings 图标。
显示“组织设置”页面。
在 Delete Identity Provider? 模式中,单击 Delete。