Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de marcação de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL .
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Gerenciar usuários do banco de dados usando a autenticação OIDC

O Operador Kubernetes oferece suporte ao gerenciamento de usuários do banco de dados para implantações em execução com a autenticação de cluster TLS e OIDC ativada. Isso permite que você crie objetos de usuário de banco de dados individuais que se autenticam em seu provedor de OIDC configurado.

Este método é usado principalmente quando o provedor OIDC está configurado com um authorizationType de UserID.

Para a autorização GroupMembership, as funções são gerenciadas diretamente na especificação do recurso MongoDB, não por meio de recursos MongoDBUser individuais.

  • MongoDBUser Recurso: cada usuário do OIDC gerenciado dessa forma requer um recurso personalizado MongoDBUser correspondente. O Kubernetes Operator usa esse recurso para configurar o usuário no MongoDB.

  • $external Banco de dados: todos os usuários que se autenticam por meio de um mecanismo externo como o OIDC devem ser criados no banco de dados virtual $external. Você deve definir spec.db como "$external" no recurso MongoDBUser.

  • Formato do nome de usuário: o spec.username deve seguir o formato <configurationName>/<userClaimValue>, combinando o nome de configuração do provedor OIDC com a declaração exclusiva do JSON web token do usuário. Esta reivindicação é especificada por userClaim na configuração do provedor OIDC e padrão para sub.

  • Autenticação versus autorização: seu provedor de identidade (IdP) do OIDC é responsável por autenticar o usuário (verificar sua identidade). O recurso MongoDBUser é responsável por autorizar o usuário (definindo o que ele tem permissão para fazer) dentro do MongoDB.

Antes de gerenciar usuários de banco de dados, você deve implantar um conjunto de réplicas ou cluster fragmentado com o OpenID Connect habilitado. habilitado. Opcionalmente, você pode habilitar o TLS. Para saber mais, consulte Proteger um Recurso de Banco de Dados.

1

Crie um arquivo (por exemplo, my-oidc-user.yaml) para definir o usuário.

  • metadata.name: um nome exclusivo para o recurso MongoDBUser no Kubernetes.

  • spec.username: A identidade OIDC do usuário, combinando o provedor de oidc configurationName e a declaração de token exclusiva do usuário no formato <configurationName>/<userClaimValue>.

  • spec.db: deve ser $external.

  • spec.mongodbResourceRef.name: o nome do recurso MongoDB ao qual este usuário pertence.

  • spec.roles: Uma array de funções do MongoDB para conceder a esse usuário.

Aqui está um exemplo que cria um usuário com acesso de leitura e gravação ao banco de dados app-data.

apiVersion: mongodb.com/v1
kind: MongoDBUser
metadata:
# A unique name for this Kubernetes resource.
name: oidc-app-user-1
spec:
# This username MUST match the 'userClaim' from the OIDC token.
username: "idp0/a1b2c3d4e5f6g7h8"
# OIDC users MUST be created in the $external database.
db: "$external"
# Point to the MongoDB deployment where this user should be created.
mongodbResourceRef:
name: my-oidc-replicaset
# Grant MongoDB roles to the user.
roles:
- db: "app-data"
name: "readWrite"
2
kubectl apply -f my-oidc-user.yaml

Para excluir um usuário de banco de dados, basta excluir o recurso MongoDBUser associado a ele. O Operador Kubernetes removerá automaticamente o usuário do banco de dados MongoDB . Passe o metadata.name do recurso MongoDBUser para o seguinte comando:

kubectl delete mongodbuser oidc-app-user-1