The Atlas Kubernetes Operator (AKO) provides support for configuring federated authentication in MongoDB Atlas using the AtlasFederatedAuth Custom Resource.
Autenticação federada permite vincular credenciais de usuário entre sistemas usando um provedor de identidade (IdP). Ele serve a dois propósitos principais:
Gerenciar o acesso do usuário à IU do Atlas (restringindo permissões para visualizar, criar e configurar recursos).
Autenticar e autorizar o acesso a Atlas clusters (para usuários humanos e aplicativos).
Ambas as funcionalidades podem ser configuradas simultaneamente por meio do AtlasFederatedAuth Recurso Personalizado.
Observação
O Atlas Kubernetes Operator suporta a configuração de IdPs existentes em uma organização do Atlas, não a criação deles no Atlas. Você deve concluir este procedimento antes de usar este recurso com o AJO.
Learn how to create a SAML IdP for UI Access in Manage Identity Providers.
Learn how to create an IdP for cluster access for a workforce (OIDC) in Configure an External Identity Provider Application.
Saiba como criar um provedor de identidade para o acesso ao cluster para um aplicativo/carga de trabalho (OAuth 2.0) em Preparar seu provedor de identidade externo.
Atlas UI Access (SAML)
O acesso ao Atlas (ou acesso à interface do usuário) permite que os proprietários da organização concedam automaticamente funções no Atlas aos usuários da organização depois que eles se autenticam, com base em suas funções em um provedor de identidade, como o Microsoft Entra ID ou o Google Workspace.
Observação
Quando um provedor de identidade federado está habilitado, o Atlas desabilita todos os outros métodos de autenticação.
Após criar um provedor de identidade de acesso da IU IdP e associá-lo à sua organização, você pode configurá-lo utilizando o Atlas Kubernetes Operator.
Este exemplo faz o seguinte:
Habilita a autenticação federada para a organização vinculada ao segredo especificado.
Adiciona
my-org-domain.comcomo um domínio aprovado.Habilita a restrição de domínio para a organização.
Desabilita a depuração para SSO.
Grants the
Organization Memberrole to users after authenticating.Maps the
Organization Ownerrole for the organization and applies the role mapping to an IdP group namedorg-admin.Maps the
Organization Project CreatorandProject Ownerroles for a project in the organization nameddev-projectand applies the role mapping to an IdP group nameddev-team.
Observação
The spec.roleMappings.roleAssignments parameter must include at least one organization role within the current organization or the projects in the organization.
Exemplo:
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
Informações adicionais sobre como configurar o recurso AtlasFederatedAuth podem ser encontradas no Recurso PersonalizadoAtlasFederatedAuth .
Atlas Cluster Access (OIDC/OAuth 2.0)
O Acesso ao Cluster permite que os proprietários da organização usem provedores de identidade (usando OIDC ou OAuth 2.0) para fornecer acesso aos dados a um cluster de banco de dados no Atlas com base em funções no provedor de identidade. Esse recurso pode ser distinguido ainda mais pelo fato de o acesso estar sendo concedido a um usuário humano ou a um aplicativo:
A carga de trabalho destina-se a aplicativos; permitindo que aplicativos externos se autentiquem por meio de identidades programáticas, como Service Principals no Azure ou Service Accounts no Google Cloud Platform, usando OAuth 2.0.
Aforça de trabalho é para os usuários; permitindo a autenticação e a autorização no banco de dados por meio de um provedor de identidade externo, como o Microsoft Entra ID ou o Okta, usando o OIDC.
Para habilitar o acesso ao cluster Atlas via AKO, adicione o ID do provedor de identidade ao campo dataAccessIdentityProviderIds no recurso AtlasFederatedAuth.
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
Informações adicionais sobre como configurar o recurso AtlasFederatedAuth podem ser encontradas no Recurso PersonalizadoAtlasFederatedAuth .
A autenticação habilita o provedor de identidade para uso na organização, e o acesso ao cluster agora pode ser concedido usando este provedor de identidade no AtlasDatabaseUser, configurando o oidcAuthType e definindo o ID e o nome apropriados no campo username.
Para acesso do Workforce, configure o campo
oidcAuthTypeparaUSER, o campodatabaseNameparaadmine o campousernamepara<Atlas IdP ID>/IdP Username.Para acesso à carga de trabalho, defina o campo
oidcAuthTypecomoIDP_GROUP, o campodatabaseNamecomo$externale o campousernamecomo<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
Informações adicionais sobre como configurar o recurso AtlasDatabaseUser podem ser encontradas no Recurso PersonalizadoAtlasDatabaseUser .