O Atlas Kubernetes Operator (AKO) fornece suporte para configurar a autenticação federada no MongoDB Atlas usando o AtlasFederatedAuth recurso personalizado.
A autenticação federada permite a você vincular credenciais de usuário entre sistemas utilizando um provedorde identidade (provedor de identidade ). 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.
Saiba como criar um provedor de identidade SAML para acesso à IU em Gerenciar fornecedores de identidade.
Saiba como criar um provedor de identidade para acesso ao cluster para uma força de trabalho (OIDC) em Configurar um aplicativo de provedor de identidade externo.
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.
Concede a função
Organization Memberaos usuários após a autenticação.Mapeia a função
Organization Ownerpara a organização e aplica o mapeamento de função a um grupo de IdP chamadoorg-admin.Mapeia as funções
Organization Project CreatoreProject Ownerpara um projeto na organização denominadodev-projecte aplica o mapeamento de role a um grupo de IdP denominadodev-team.
Observação
O spec.roleMappings.roleAssignments O parâmetro deve incluir pelo menos uma função de organização dentro da organização atual ou os projetos na organização.
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:
O carga de trabalho é para Aplicativos; permitindo que aplicativos externos autentiquem por meio de identidades programáticas, como entidades de serviço em Azure ou contas de serviço no Google Cloud, usando OAuth 2.0.
A forç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 Atlas Cluster Access via AJO, 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 dentro da organização e o acesso ao cluster agora pode ser concedido usando esse 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 .