Docs 菜单
Docs 主页
/
MongoDB Manual
/ / / / /

配置外部身份提供者

在此页面上

  • 关于此任务
  • 开始之前
  • 步骤
  • 后续步骤
  • 了解详情

要使用 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帐户。

1
  1. 导航至 App registrations

    1. Azure 门户 中 帐户、 ,然后单击Atlas Search Microsoft Entra ID

    2. 在左侧导航栏的 Manage 部分,单击 App registrations

  2. 单击 New registration(连接)。

  3. 应用以下值。

    字段

    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 to http://localhost:27097/redirect.
  4. 单击 Register(连接)。

要了解有关注册应用程序的更多信息,请参阅 Azure 文档。

2
  1. 导航至 Token Configuration

    在左侧导航栏的 Manage 部分,单击 Token Configuration

  2. 单击 Add groups claim(连接)。

  3. Edit groups claim 模式中,选择 Security

    所选择的群组取决于您在 Azure 环境中配置的群组类型。 您可能需要选择不同类型的群组 来发送相应的群组信息。

  4. Customize token properties by type部分中,仅选择Group ID

  5. 单击 Add(连接)。

要了解有关添加群组声明的更多信息,请参阅 Azure 文档。

3
  1. 单击 Add optional claim(连接)。

  2. Add optional claim 模式中,选择 Access

  3. 选择带有用户标识符的声明,您可以在 MongoDB 访问 日志(如电子邮件)中引用该标识符。

    您可以使用UPN声明通过电子邮件解决来识别用户。

  4. 单击 Add(连接)。

  5. Microsoft Graph Permissions(Microsoft Graph 权限)注释中,选中复选框,然后单击 Add(添加)。

要了解详情,请参阅 Azure 文档。

4
  1. 在左侧导航栏的 Manage 部分,单击 Manifest

  2. accessTokenAcceptedVersionnull 更新为 2

    数字 2 代表 Microsoft 访问令牌版本 2。其他应用程序可以将其用作 Active Directory 托管用户身份的签名证明。版本 2 确保令牌是 MongoDB 可理解的 JSON 网络令牌。

  3. 单击 Save(连接)。

要了解有关添加可选声明的更多信息,请参阅 Azure 文档。

5
  1. 在左侧导航栏中单击 Overview

    复制 Application (client) ID(应用程序(客户端)ID)值。

  2. 在顶部导航栏中,单击 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)

issuer

1

在 Okta Admin仪表盘盘中,使用左侧导航窗格转到 Applications → Applications

  1. Applications 屏幕上,单击 Create App Integration

  2. Sign-in method 部分,选择 OIDC - OpenID Connect

  3. Application type 部分,选择 Native Application

  4. 单击 Next(连接)。

要学习;了解更多信息,请参阅创建 OIDC应用集成。

2

创建应用集成后,系统会自动重定向到 New Native App Integration 屏幕。

  1. App integration name字段,输入应用程序的名称。

  2. Grant type字段,选择授权类型。

    启用以下授权类型:

    • Authorization Code or Device Authorization

    • (可选) Refresh Token

      启用刷新令牌可提供更好的用户体验。如果未启用刷新令牌,则一旦访问权限令牌过期,用户就必须向身份提供商重新进行身份验证。

  3. Sign-in redirect URIs 部分,输入URL。

    输入以下URL:http://localhost:27097/redirect

  4. Assignments 部分中,配置 Controlled accessEnable immediate access 字段。

    1. 对于 Controlled access字段,选择 Allow everyone in your organization to access

    2. 对于 Enable immediate access字段,确保选中 Enable immediate access with Federation Broker Mode

  5. 单击 Save(连接)。

要学习;了解详情,请参阅创建 OIDC应用集成。

3

在应用程序仪表盘上,转到 General标签页并配置以下内容:

  1. Client ID 字段,单击图标复制客户端ID供以后使用。

  2. Proof Key for Code Exchange (PKCE)字段,确保启用 Require PKCE as additional verification(默认选中)。

4

在左侧导航窗格中,转到 Security → API。单击 Add Authorization Server

  1. Name字段,输入服务器的名称。

  2. Audience字段,粘贴上一步中的客户端ID 。

  3. (可选)在 Description字段,输入服务器的描述。

  4. 单击 Save(连接)。

要学习;了解更多信息,请参阅创建授权服务器。

5

创建授权服务器后,系统会自动重定向到授权服务器的屏幕。

Settings标签页下,将 Metadata URI 的第一部分复制到 .well-known 部分,以保存颁发者 URI。 URI 结构应类似于以下内容:https://trial4238026.okta.com/oauth2/ausabgmhveoOQSMsE697

6

在授权服务器屏幕上,转到 Claims标签页并单击 Add Claim

  1. 使用以下配置信息配置 Groups 声明:

    字段

    Name

    输入声明的名称。

    Include in token type

    单击下拉菜单并选择 Access Token

    Value type

    单击下拉菜单并选择 Groups

    Filter

    单击下拉菜单并选择 Matches regex。 在下拉菜单旁边,输入 .*

    Disable claim

    请勿检查。

    Include in

    选择 Any scope

  2. 单击 Create(连接)。

要学习;了解更多信息,请参阅创建声明。

7

在授权服务器屏幕上,转到 Access Policies标签页并单击 Add Policy

  1. Name字段,输入策略名称。

  2. Description字段,输入策略的说明。

  3. Assign to字段,选择 All clients

  4. 单击 Create Policy(连接)。

要学习;了解更多信息,请参阅创建访问策略。

8

Access Policies标签页下,单击 Add Rule

  1. Rule Name字段,输入访问权限策略的名称。

  2. 对于 IF Grant Type is,请选择一种授权类型。

    配置授权类型时,请根据客户端行为选择适当的选项:

    • 如果客户端代表自身,请选择 Client Credentials

    • 如果客户端代表用户,请选择以下选项:

      • Authorization Code

      • Device Authorization

  3. 根据组织的安全策略添加规则配置。

    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

  4. 单击 Create Rule(连接)。

要学习;了解详情,请参阅为每个访问策略创建规则。

9

在左侧导航窗格中,转到 Directory → Groups 并单击 Add Group

  1. Name字段,将目录命名为 OIDC

  2. (可选)在 Description字段,输入规则的说明。

  3. 单击 Save(连接)。

要学习;了解更多信息,请参阅创建群组。

10

在左侧导航窗格中,转到 Directory → People 并单击 Add Person

  1. 通过在相应字段中输入以下值来提供用户详细信息:

    字段

    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

  2. 单击 Save(连接)。

要学习;了解更多信息,请参阅手动添加用户。

1

选择public client/native application作为客户端类型。

2
3

对于群组,此步骤可确保您的访问令牌包含进行身份验证的用户的群组成员信息。 MongoDB 使用群组声明中发送的值进行授权。

4

(可选)如果您希望MongoDB客户端刷新令牌以获得更好的用户体验,请允许刷新令牌

5

(可选)配置访问权限令牌生命周期(exp 声明)以与数据库连接会话时间保持一致

注册应用程序后,保存 issuerclientIdaudience 值以在下一阶段的配置中使用。

后退

劳动力(人员)