Learn the "why" behind slow queries and how to fix them in our 2-Part Webinar.
Register now >
Docs 菜单
Docs 主页
/ /
/ / /

使用Atlas Kubernetes Operator配置联合身份验证

The Atlas Kubernetes Operator (AKO)支持使用 自定义资源 在MongoDB Atlas中配置 联合身份验证AtlasFederatedAuth

联合身份验证使您能够使用身份提供程序 (IdP) 跨系统链接用户凭证。它提供两个核心目的:

  • 管理用户对Atlas用户界面的访问权限(限制查看、创建和配置资源的权限)。

  • 对Atlas集群进行身份验证和授权访问权限(针对人类用户和应用程序)。

可以通过AtlasFederatedAuth 自定义资源同时配置这两个功能。

注意

Atlas Kubernetes Operator支持在Atlas组织中配置现有IdP,而不是在Atlas中创建 IdP。您必须先完成此过程,然后才能将此资源与 AKO 一起使用。

Atlas访问权限(或用户界面访问权限)允许组织所有者根据在身份提供程序(例如Microsoft Entra ID或 Google Workspace)中的角色,在组织中的用户进行身份验证后自动将Atlas中的角色授予给他们。

注意

启用联合身份提供程序后, Atlas会禁用所有其他身份验证方法。

创建用户界面访问身份提供程序并将其与组织关联后,您可以使用Atlas Kubernetes Operator对其进行配置。

此示例执行以下操作:

注意

spec.roleMappings.roleAssignments 参数必须至少包含当前组织或组织中的项目中的一个组织角色

示例:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasFederatedAuth
metadata:
name: atlas-default-federated-auth
namespace: mongodb-atlas-system
spec:
enabled: true
connectionSecretRef:
name: my-org-secret
namespace: mongodb-atlas-system
domainAllowList:
- my-org-domain.com
domainRestrictionEnabled: true
ssoDebugEnabled: false
postAuthRoleGrants:
- ORG_MEMBER
roleMappings:
- externalGroupName: org-admin
roleAssignments:
- role: ORG_OWNER
- externalGroupName: dev-team
roleAssignments:
- role: ORG_GROUP_CREATOR
- projectName: dev-project
role: GROUP_OWNER
EOF

有关配置 AtlasFederatedAuth资源的更多信息,请参阅 AtlasFederatedAuth 自定义资源。

集群访问权限允许组织所有者使用身份提供者(使用 OIDC 或 OAuth 2.0)根据 角色身份提供程序 中提供对Atlas中数据库集群的数据访问。还可以根据访问权限权限是授予人类用户还是应用程序来进一步区分此功能:

  • 工作负载用于应用程序;允许外部应用程序使用 OAuth 2.0 通过编程身份(例如Azure中的服务主体或 Google Cloud 中的服务帐户)进行身份验证。

  • Workforce 是为用户服务的;允许使用 OIDC 通过外部 身份提供程序(例如Microsoft Entra ID或 Okta)对数据库进行身份验证和授权。

要通过 AKO 启用 Atlas 集群访问,请将 身份提供程序 ID 添加到 AtlasFederatedAuth 资源的 dataAccessIdentityProviderIds 字段。

apiVersion: atlas.mongodb.com/v1
kind: AtlasFederatedAuth
metadata:
name: atlas-default-federated-auth
namespace: mongodb-atlas-system
spec:
enabled: true
dataAccessIdentityProviders:
- 32b6e34b3d91647abb20e7b8
- 42d8v92k5a34184rnv93f0c1
connectionSecretRef:
name: my-org-secret
namespace: mongodb-atlas-system

有关配置 AtlasFederatedAuth资源的更多信息,请参阅 AtlasFederatedAuth 自定义资源。

身份验证使 身份提供程序 能够在组织内使用,现在可以通过配置 并在 AtlasDatabaseUser oidcAuthType中设置相应的ID和名称,在 字段中使用此 身份提供程序username 集群访问权限权限。

  • 对于劳动力访问权限,将 oidcAuthType字段设立为 USER,将 databaseName字段设置为 admin,并将 username字段设置为 <Atlas IdP ID>/IdP Username

  • 对于工作负载访问权限,将 oidcAuthType字段设立为 IDP_GROUP,将 databaseName字段设置为 $external,并将 username字段设置为 <Atlas IdP ID>/IdP Group Name

apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-workload-user
namespace: mongodb-atlas-system
spec:
databaseName: $external
roles:
- roleName: "readWrite"
databaseName: "my-database"
projectRef:
name: my-project
username: idp-id-in-atlas/my-idp-group-name
oidcAuthType: IDP_GROUP
apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-workforce-user
namespace: mongodb-atlas-system
spec:
databaseName: admin
roles:
- roleName: "readWrite"
databaseName: "my-database"
projectRef:
name: my-project
username: idp-id-in-atlas/my-idp-user-name
oidcAuthType: USER

有关配置 AtlasDatabaseUser资源的更多信息,请参阅 AtlasDatabaseUser 自定义资源。

后退

加密数据

在此页面上