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 Autenticación de clústerTLS y OIDC habilitada. Esto le permite crear objetos de usuario de base de datos individuales que se autentican con su proveedor OIDC configurado.

Este método se utiliza principalmente cuando su 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 MongoDBUser correspondiente. El operador de Kubernetes utiliza este recurso para configurar el usuario en MongoDB.

  • $external Base de datos: Todos los usuarios que se autentican mediante un mecanismo externo como OIDC deben crearse en la base de datos virtual $external. Debe configurar spec.db como "$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 administrar los usuarios de la base de datos, debe implementar una Conjunto de réplicas o clúster fragmentado con OpenID Connect habilitado. Opcionalmente, puede habilitar TLS. Para obtener más información, consulte Proteger 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 de OIDC y la reclamación de token única del usuario en el formato <configurationName>/<userClaimValue>.

  • spec.db:Esto debe ser $external.

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

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

A continuación se muestra un ejemplo que crea un usuario con acceso de lectura y escritura a la base de datos de datos de la aplicación.

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