配置外部身份提供者
配置与 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账户。
步骤
添加组声明
导航到 令牌配置。
在左侧导航的 管理 部分中,点击 令牌配置。
点击 添加组声明。
在 编辑组声明 窗口中,选择 安全。
您选择的组取决于您在 Azure 环境中配置的组类型。您可能需要选择不同类型的组以发送适当的组信息。
在 按类型自定义令牌属性 部分中,仅选择 组 ID。
点击 添加。
要了解更多关于添加组声明的信息,请参阅 Azure 文档
将用户标识符声明添加到访问令牌
点击 添加可选声明。
在 添加可选声明 窗口中,选择 访问。
选择一个包含用户标识符的声明,您可以在 MongoDB 访问日志中引用它,例如电子邮件。
您可以使用 UPN 声明通过电子邮件地址识别用户。
点击 添加。
在Microsoft Graph权限说明中,勾选复选框,然后点击添加。
要了解更多信息,请参阅Azure文档。
更新清单
在左侧导航的管理部分,点击清单。
将accessTokenAcceptedVersion从
null
更新到2
。数字
2
代表Microsoft访问令牌的版本2。其他应用程序可以使用它作为Active Directory管理的用户身份的签名证明。版本2确保令牌是MongoDB理解的JSON Web Token。点击保存。
要了解更多关于添加可选声明的信息,请参阅Azure文档。
记住元数据
在左侧导航中,点击概览。
复制应用程序(客户端)ID值。
在顶部导航中,点击端点。
复制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 |
在Okta中创建应用程序
在您的Okta 管理员仪表板中,使用左侧导航面板进入应用程序 → 应用程序。
在应用程序屏幕上,点击创建应用程序集成。
在登录方法部分,选择OIDC - OpenID Connect。
在应用程序类型部分,选择本地应用程序。
点击下一步。
了解更多信息,请参阅创建OIDC应用集成。
配置您的新本地应用集成
创建应用集成后,您将自动重定向到新本地应用集成界面。
在应用集成名称字段中,为您的应用程序输入名称。
在授权类型字段中,选择授权类型。
启用以下授权类型
授权码或设备授权
(可选) 刷新令牌
启用刷新令牌可以提供更好的用户体验。当刷新令牌未启用时,用户必须在访问令牌过期后再次通过身份提供者进行身份验证。
在登录重定向URI部分,输入一个URL。
输入以下URL:
http://localhost:27097/redirect
。在分配部分,配置受控访问和启用即时访问字段。
对于受控访问字段,选择允许组织中的每个人访问。
对于启用即时访问字段,确保选中启用联邦代理模式即时访问。
点击保存。
了解更多信息,请参阅 创建OIDC应用集成。
添加授权服务器
在左侧导航窗格中,转到安全 → API。点击添加授权服务器。
在名称字段中,输入服务器的名称。
在受众字段中,粘贴上一步骤中的客户端ID。
(可选)在描述字段中,输入您的服务器的描述。
点击保存。
了解更多信息,请参阅创建授权服务器。
添加组声明
在您的授权服务器屏幕上,转到声明选项卡并点击添加声明。
使用以下配置信息配置组声明
字段值名称输入您的声明的名称。包括在令牌类型中点击下拉菜单并选择访问令牌。值类型点击下拉菜单并选择组。过滤器点击下拉菜单,选择 匹配正则表达式。在下拉菜单旁边,输入.*
。禁用声明不检查。包含在选择 任何范围。点击 创建。
了解更多信息,请参阅 创建声明。
创建访问策略
在您的授权服务器屏幕上,转到 访问策略 选项卡并点击 添加策略。
在 名称 字段中,输入策略名称。
在 描述 字段中,输入策略描述。
在 分配给 字段中,选择 所有客户端。
点击 创建策略。
了解更多信息,请参阅 创建访问策略。
为访问策略创建一个规则
在“访问策略”选项卡下,点击“添加规则”。
在“规则名称”字段中,输入访问策略的名称。
对于“如果授权类型是”,选择一个授权类型。
在配置授权类型时,根据客户端行为选择合适的选项。
如果客户端代表自己操作,选择“客户端凭证”。
如果客户端代表用户操作,选择以下选项
授权码
设备授权
根据您组织的安全策略添加规则配置。
Okta规则配置示例
字段值并且用户是选择“分配给应用的所有用户”。并且请求的作用域选择“任何作用域”。然后使用此内联钩子无(禁用)并且访问令牌有效期是1小时并且刷新令牌有效期是点击第二个下拉菜单并选择“无限”。但如果不使用,则将在每输入“7天”。点击“创建规则”。
了解更多信息,请参阅为每个访问策略创建规则。
创建一个组
在左侧导航窗格中,转到 目录 → 组,然后单击 添加组。
在 名称 字段中,将您的目录命名为
OIDC
。(可选) 在 描述 字段中,输入您的规则的描述。
点击保存。
了解更多信息,请参阅 创建组。
将用户添加到您的组织中
在左侧导航窗格中,转到 目录 → 人员,然后单击 添加人员。
通过在相应字段中输入以下值来提供用户详细信息
字段值用户类型选择 用户。名提供所需的名称。姓提供所需的名称。用户名输入作为用户名的电子邮件。主要电子邮件输入电子邮件。电子邮件必须与 用户名 字段中使用的电子邮件相同。次要电子邮件可选。组输入 OIDC。激活选择 立即激活 并勾选 我将设置密码。密码输入密码。用户必须首次登录时更改密码选择 可选点击保存。
要了解更多信息,请参阅 手动添加用户。