配置外部身份提供者
要使用 OIDC 配置 Workforce Identity Federation,请向外部身份提供商(例如 Okta 或Microsoft Entra ID )注册您的 OIDC应用程序。这可确保安全身份验证并简化用户管理。
关于此任务
Workforce Identity Federation 使用 OIDC。您可以使用任何支持 OIDC 标准的外部身份提供商。
您可以为以下授权类型配置 OIDC应用程序:
使用PKCE的授权代码流
设备授权流程
MongoDB建议您将授权代码流与 PKCE 结合使用以提高安全性。仅当用户需要从没有浏览器的计算机上访问权限数据库时,才使用设备授权流程。
注意
Workforce Identity Federation 仅支持 JWT 进行身份验证。它不支持不透明访问权限令牌。
以下过程提供了Microsoft Entra ID和 Okta 的详细配置说明,以及其他外部身份提供程序的通用配置说明。
开始之前
To use Okta as an identity 提供商, you must have an Okta account.
要将Microsoft Entra ID用作身份提供商,您必须拥有Microsoft Azure帐户。
步骤
注册应用程序
导航至 App registrations 。
在Azure 门户 中 帐户、 ,然后单击Atlas Search Microsoft Entra ID。
在左侧导航栏的 Manage 部分,单击 App registrations。
单击 New registration(连接)。
应用以下值。
字段值Name
MongoDB - Workforce
Supported Account Types
Accounts in this organizational directory only (single tenant)
Redirect URI
- Public client/native (mobile & desktop)- To access clusters using MongoDB Compass and MongoDB Shell, set the Redirect URI tohttp://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用户界面值在MongoDBoidcIdentityProviders
参数中的映射:
Microsoft Entra ID UI | MongoDB oidcIdentityProviders 参数字段 |
---|---|
Application (client) ID | clientID audience |
OpenID Connect metadata document (without /.well-known/openid-configuration) |
|
在 Okta 中创建应用程序
在 Okta Admin仪表盘盘中,使用左侧导航窗格转到 Applications → Applications。
在 Applications 屏幕上,单击 Create App Integration。
在 Sign-in method 部分,选择 OIDC - OpenID Connect。
在 Application type 部分,选择 Native Application。
单击 Next(连接)。
要学习;了解更多信息,请参阅创建 OIDC应用集成。
配置您的 New Native App Integration
创建应用集成后,系统会自动重定向到 New Native App Integration 屏幕。
在 App integration name字段,输入应用程序的名称。
在 Grant type字段,选择授权类型。
启用以下授权类型:
Authorization Code or Device Authorization
(可选) Refresh Token
启用刷新令牌可提供更好的用户体验。如果未启用刷新令牌,则一旦访问权限令牌过期,用户就必须向身份提供商重新进行身份验证。
在 Sign-in redirect URIs 部分,输入URL。
输入以下URL:
http://localhost:27097/redirect
。在 Assignments 部分中,配置 Controlled access 和 Enable immediate access 字段。
对于 Controlled access字段,选择 Allow everyone in your organization to access。
对于 Enable immediate access字段,确保选中 Enable immediate access with Federation Broker Mode。
单击 Save(连接)。
要学习;了解详情,请参阅创建 OIDC应用集成。
为访问权限策略创建规则
在 Access Policies标签页下,单击 Add Rule。
在 Rule Name字段,输入访问权限策略的名称。
对于 IF Grant Type is,请选择一种授权类型。
配置授权类型时,请根据客户端行为选择适当的选项:
如果客户端代表自身,请选择 Client Credentials。
如果客户端代表用户,请选择以下选项:
Authorization Code
Device Authorization
根据组织的安全策略添加规则配置。
Okta 规则配置示例:
字段
值
AND user is
选择 Any user assigned to the app 。
AND Scopes requested
选择 Any scopes 。
THEN Use this inline hook
无(已禁用)
AND Access token lifetime is
1 Hours
AND Refresh token lifetime is
单击第二个下拉菜单并选择 Unlimited。
but will expire if not used every
输入 7 days。
单击 Create Rule(连接)。
将用户添加到您的组织
在左侧导航窗格中,转到 Directory → People 并单击 Add Person。
通过在相应字段中输入以下值来提供用户详细信息:
字段值User type
选择 User 。
First name
根据需要提供名称。
Last name
根据需要提供名称。
Username
输入电子邮件作为用户名。
Primary email
输入电子邮件。电子邮件必须与 Username字段使用的电子邮件相同。
Secondary email
可选。
Groups
输入 OIDC。
Activation
选择 Activate Now 并选中 I will set password。
Password
输入密码。
User must change password on first login
选择 Optional
单击 Save(连接)。
(可选)如果您希望MongoDB客户端刷新令牌以获得更好的用户体验,请允许刷新令牌
(可选)配置访问权限令牌生命周期(exp
声明)以与数据库连接会话时间保持一致
注册应用程序后,保存 issuer
、 clientId
和 audience
值以在下一阶段的配置中使用。