Workload Identity Federation 使用 OAuth 2.0,启用您的应用程序能够使用外部编程身份(例如Azure服务主体、 Azure托管身份和 Google 服务帐户)访问权限MongoDB 。
重要
OpenID Connect (OIDC) 仅在Linux上受支持。
用例
借助 Workload Identity Federation,您可以:
通过现有的云提供商或身份提供商(IdP) 管理应用程序对MongoDB部署的访问权限。
实施安全策略,例如基于角色的访问权限控制、档案轮换和特定于工作负载的权限。
授予对特定应用程序、容器或虚拟机的访问权限,而无需管理单个服务帐户。
行为
要使用 Workload Identity Federation,您必须使用MongoDB Enterprise并拥有MongoDB 7.0.11 或更高版本。
要验证您是否正在使用MongoDB Enterprise,请将
--version
命令行选项传递给mongod
或mongos
:mongod --version 在该命令的输出中,请查找字符串
modules: subscription
或modules: enterprise
,以确认您使用的是 MongoDB Enterprise 二进制文件。Workload Identity Federation 允许应用程序使用 OAuth 2.0访问权限令牌访问权限MongoDB集群。 访问权限令牌可由任何外部身份提供商颁发,包括Azure Entra ID和Google Cloud Platform。
MongoDB存储用户标识符和权限,但不存储密钥。
开始体验
要配置和使用 Workload Identity Federation,请执行以下任务:
向支持 OAuth 2.0 标准的 IdP(例如Azure服务主体、 Azure托管身份和 Google 服务帐户)注册您的 OAuth 2.0应用程序。
使用 Workload Identity Federation 配置MongoDB
配置MongoDB服务器以将 Workload Identity Federation 与 OAuth 2.0 结合使用。
使用 Workload Identity Federation 授权用户
通过向MongoDB添加角色(用于 OAuth、外部授权或两者)或向MongoDB添加数据库用户(用于数据库托管授权)来指定工作负载身份主体的权限。
详情
MongoDB驱动程序支持Workload Identity Federation 的两种类型的身份验证流程:内置身份验证和回调身份验证。
内置身份验证
如果将应用程序部署在具有受支持主体类型的受支持基础架构上,则可以使用内置身份验证。 您的应用程序可以访问权限MongoDB集群,无需提供密码或手动向云提供商的元数据服务请求JSON Web 令牌 (JSON web token )。 相反,您选择的MongoDB驾驶员会使用现有的主体标识符在幕后请求JSON web token访问权限令牌,然后在应用程序连接时,该令牌会自动传递到Atlas 集群。
有关更多实施详情,请参阅所选 驱动程序的文档。
内置身份验证支持的基础架构和主体类型
云服务提供商 | 基础架构类型 | 主体类型 |
---|---|---|
Google Cloud Platform Provider (GCP) | Compute Engine | GCP 服务帐号 |
App Engine 标准环境 | ||
App Engine 灵活环境 | ||
Cloud Functions | ||
Google Run | ||
Google Kubernetes Engine | ||
Cloud Build | ||
AZURE | Azure VM | Azure 托管身份(分配的用户和系统) |
回调身份验证
您可以在任何支持 OAuth 2.0访问权限令牌的服务中使用回调身份验证。 Workload Identity Federation 会调用回调方法,您可以在该方法中向授权服务器或云提供商请求所需的JSON web token,而当应用程序通过 Workload Identity Federation 连接到MongoDB时,您必须传递该令牌。