Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
/ / /

Gestiona Usuarios de Base de Datos utilizando Autenticación OIDC

El operador de Kubernetes admite la administración de usuarios de bases de datos para implementaciones que se ejecutan con TLS y la autenticación de clúster OIDC están activadas. Esto permite crear objetos de usuario individuales de la base de datos que se autentican en el proveedor OIDC configurado.

Este método se usa principalmente cuando tu proveedor OIDC está configurado con un authorizationType de UserID.

Para la autorización GroupMembership, los roles se administran directamente en la especificación de recursos MongoDB, no a través de recursos MongoDBUser individuales.

  • MongoDBUser Recurso: cada usuario de OIDC gestionado de esta manera requiere un recurso personalizado correspondiente de MongoDBUser. El Operador de Kubernetes utiliza este recurso para configurar al usuario dentro de MongoDB.

  • $external Base de datos: Todos los usuarios que se autentiquen mediante un mecanismo externo como OIDC deben crearse en la base de datos virtual $external. Debe configurar spec.db en "$external" en el recurso MongoDBUser.

  • Formato del nombre de usuario: El archivo spec.username debe seguir el formato <configurationName>/<userClaimValue>, combinando el nombre de configuración del proveedor OIDC con la reclamación única del JWT del usuario. Esta reclamación se especifica con userClaim en la configuración del proveedor OIDC y su valor predeterminado es sub.

  • Autenticación vs. Autorización: Su proveedor de identidad (IdP) de OIDC es responsable de autenticar al usuario (verificar su identidad). El recurso MongoDBUser es responsable de autorizar al usuario (definir sus permisos) en MongoDB.

Antes de gestionar los usuarios de la base de datos, debes implementar un set de réplicas o clúster con OpenID Connect habilitado. activado. Opcionalmente, puede activar TLS. Para obtener más información, consulta Protección de un recurso de base de datos.

1

Crea un archivo (por ejemplo, my-oidc-user.yaml) para definir el usuario.

  • metadata.name: Un nombre único para el recurso MongoDBUser dentro de Kubernetes.

  • spec.username: La identidad OIDC del usuario, que combina el configurationName del proveedor oidc y la declaración de token única del usuario en el formato <configurationName>/<userClaimValue>.

  • spec.dbEsto debe ser $external.

  • spec.mongodbResourceRef.name: Nombre del recurso MongoDB al que pertenece este usuario.

  • spec.roles:Una matriz de roles de MongoDB para otorgar a este usuario.

Aquí hay un ejemplo que crea un usuario con acceso de lectura y escritura a la base de datos 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 borrar un usuario de base de datos, simplemente borra el recurso MongoDBUser asociado a él. El operador de Kubernetes removerá automáticamente al usuario de la base de datos MongoDB. Pasa el metadata.name del recurso MongoDBUser al siguiente comando:

kubectl delete mongodbuser oidc-app-user-1

En esta página