文档菜单
文档首页
/
MongoDB 手册
/ / / / /

配置外部身份提供者

本页内容

  • 关于此任务
  • 开始之前
  • 步骤
  • 下一步
  • 了解更多信息

配置与 Workforce Identity FederationOIDC,在第三方身份提供者(如Okta或Microsoft Entra ID)处注册您的OIDC应用程序。这确保了安全的身份验证并简化了用户管理。

工作身份联盟使用OIDC。您可以使用支持OIDC标准的任何第三方身份提供者。

您可以配置您的OIDC应用程序以使用以下授权类型

  • 带有PKCE的授权代码流

  • 设备授权流

MongoDB建议您使用带有PKCE的授权代码流以提高安全性。如果您的用户需要从没有浏览器的机器访问数据库,请仅使用设备授权流。

注意

工作身份联盟仅支持JWT进行身份验证。它不支持不透明访问令牌。

以下步骤提供了Microsoft Entra ID和Okta的详细配置说明,以及其他第三方身份提供者的通用配置说明。

  • 要使用Okta作为身份提供者,您必须拥有Okta账户.

  • 要使用Microsoft Entra ID作为身份提供者,您必须拥有一个Microsoft Azure账户。

1
  1. 导航到应用程序注册.

    1. 在您的 Azure 门户 账户中,搜索并点击 Microsoft Entra ID

    2. 在左侧导航的 管理 部分,点击 应用程序注册

  2. 点击 新建注册

  3. 应用以下值。

    字段
    名称
    MongoDB - Workforce
    支持的账户类型
    仅此组织目录中的账户(单租户)
    重定向 URI
    - 公共客户端/本地(移动和桌面)
    - 要使用 MongoDB CompassMongoDB Shell 访问集群,请将 重定向 URI 设置为http://localhost:27097/redirect.
  4. 点击 注册

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

2
  1. 导航到 令牌配置

    在左侧导航的 管理 部分中,点击 令牌配置

  2. 点击 添加组声明

  3. 编辑组声明 窗口中,选择 安全

    您选择的组取决于您在 Azure 环境中配置的组类型。您可能需要选择不同类型的组以发送适当的组信息。

  4. 按类型自定义令牌属性 部分中,仅选择 组 ID

  5. 点击 添加

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

3
  1. 点击 添加可选声明

  2. 添加可选声明 窗口中,选择 访问

  3. 选择一个包含用户标识符的声明,您可以在 MongoDB 访问日志中引用它,例如电子邮件。

    您可以使用 UPN 声明通过电子邮件地址识别用户。

  4. 点击 添加

  5. Microsoft Graph权限说明中,勾选复选框,然后点击添加

要了解更多信息,请参阅Azure文档。

4
  1. 在左侧导航的管理部分,点击清单

  2. accessTokenAcceptedVersionnull更新到2

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

  3. 点击保存

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

5
  1. 在左侧导航中,点击概览

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

  2. 在顶部导航中,点击端点

    复制OpenID Connect元数据文档值,但不包括/.well-known/openid-configuration部分。

    您也可以通过复制OpenID Connect元数据文档 URL 中的issuer值来获取此值。

下表显示了这些Microsoft Entra ID UI值在MongoDB中的映射关系oidcIdentityProviders参数

Microsoft Entra ID UI
MongoDB oidcIdentityProviders 参数字段
应用程序(客户端)ID
clientID
audience
OpenID Connect元数据文档(不包含/.well-known/openid-configuration)
issuer
1

在您的Okta 管理员仪表板中,使用左侧导航面板进入应用程序 → 应用程序

  1. 应用程序屏幕上,点击创建应用程序集成

  2. 登录方法部分,选择OIDC - OpenID Connect

  3. 应用程序类型部分,选择本地应用程序

  4. 点击下一步

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

2

创建应用集成后,您将自动重定向到新本地应用集成界面。

  1. 应用集成名称字段中,为您的应用程序输入名称。

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

    启用以下授权类型

    • 授权码设备授权

    • (可选) 刷新令牌

      启用刷新令牌可以提供更好的用户体验。当刷新令牌未启用时,用户必须在访问令牌过期后再次通过身份提供者进行身份验证。

  3. 登录重定向URI部分,输入一个URL。

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

  4. 分配部分,配置受控访问启用即时访问字段。

    1. 对于受控访问字段,选择允许组织中的每个人访问

    2. 对于启用即时访问字段,确保选中启用联邦代理模式即时访问

  5. 点击保存

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

3

在您的应用仪表板上,转到常规选项卡,并配置以下内容

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

  2. 代码交换证明密钥(PKCE)字段中,确保已启用要求PKCE作为附加验证(默认选中)。

4

在左侧导航窗格中,转到安全 → API。点击添加授权服务器

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

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

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

  4. 点击保存

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

5

创建您的授权服务器后,您将自动重定向到您的授权服务器屏幕。

设置选项卡下,通过复制元数据URI的第一部分(直到.well-known部分)来保存发行者URI。URI结构应类似于:https://trial4238026.okta.com/oauth2/ausabgmhveoOQSMsE697

6

在您的授权服务器屏幕上,转到声明选项卡并点击添加声明

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

    字段
    名称
    输入您的声明的名称。
    包括在令牌类型中
    点击下拉菜单并选择访问令牌
    值类型
    点击下拉菜单并选择
    过滤器
    点击下拉菜单,选择 匹配正则表达式。在下拉菜单旁边,输入 .*
    禁用声明
    不检查。
    包含在
    选择 任何范围
  2. 点击 创建

了解更多信息,请参阅 创建声明。

7

在您的授权服务器屏幕上,转到 访问策略 选项卡并点击 添加策略

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

  2. 描述 字段中,输入策略描述。

  3. 分配给 字段中,选择 所有客户端

  4. 点击 创建策略

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

8

在“访问策略”选项卡下,点击“添加规则”。

  1. 在“规则名称”字段中,输入访问策略的名称。

  2. 对于“如果授权类型是”,选择一个授权类型。

    在配置授权类型时,根据客户端行为选择合适的选项。

    • 如果客户端代表自己操作,选择“客户端凭证”。

    • 如果客户端代表用户操作,选择以下选项

      • 授权码

      • 设备授权

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

    Okta规则配置示例

    字段
    并且用户是
    选择“分配给应用的所有用户”。
    并且请求的作用域
    选择“任何作用域”。
    然后使用此内联钩子
    无(禁用)
    并且访问令牌有效期是
    1小时
    并且刷新令牌有效期是
    点击第二个下拉菜单并选择“无限”。
    但如果不使用,则将在每
    输入“7天”。
  4. 点击“创建规则”。

了解更多信息,请参阅为每个访问策略创建规则。

9

在左侧导航窗格中,转到 目录 → 组,然后单击 添加组

  1. 名称 字段中,将您的目录命名为 OIDC

  2. (可选)描述 字段中,输入您的规则的描述。

  3. 点击保存

了解更多信息,请参阅 创建组。

10

在左侧导航窗格中,转到 目录 → 人员,然后单击 添加人员

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

    字段
    用户类型
    选择 用户
    提供所需的名称。
    提供所需的名称。
    用户名
    输入作为用户名的电子邮件。
    主要电子邮件
    输入电子邮件。电子邮件必须与 用户名 字段中使用的电子邮件相同。
    次要电子邮件
    可选。
    输入 OIDC
    激活
    选择 立即激活 并勾选 我将设置密码
    密码
    输入密码。
    用户必须首次登录时更改密码
    选择 可选
  2. 点击保存

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

1

选择公共客户端/本地应用程序作为客户端类型。

2
3

对于组,这一步确保您的访问令牌包含正在验证的用户的组成员信息。MongoDB 使用组声明中发送的值进行授权。

4

(可选) 如果您想提高用户体验,允许刷新令牌

5

(可选) 配置访问令牌有效期(exp 声明)以与您的数据库连接会话时间一致

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

返回

员工(人类)