Docs Menu
Docs Home
/ /

Configura la federación de identidades de cargas de trabajo con OAuth 2.0

Workload Identity Federation permite a las aplicaciones acceder a los clústeres de MongoDB Atlas mediante identidades programáticas externas, como los principales de servicio de Azure, las identidades gestionadas de Azure y las cuentas de servicio de Google.

Es posible habilitar cualquier número de proveedores de identidad de carga de trabajo para una o varias organizaciones. Cuando se habilita un proveedor de identidad de carga de trabajo en una organización de Atlas, se puede usar en todos los proyectos de esa organización para acceder a las bases de datos.

Atlas es compatible con Workload Identity Federation solo en clústeres dedicados (M10 y superiores) que ejecuten la versión 7.0.11 o superior de MongoDB y solo mediante drivers seleccionados.

Para obtener más información sobre cómo implementar el acceso a Workload Identity Federation con el controlador elegido, consulte Conecte una aplicación a MongoDB con Workload Identity Federation.

La Federación de Identidades de Carga de Trabajo permite que sus aplicaciones accedan a clústeres de MongoDB con tokens de acceso OAuth2.0. Estos tokens de acceso pueden ser emitidos por cualquier proveedor de identidad externo, como Azure Entra ID y Google Cloud Platform. Atlas almacena los identificadores y privilegios de usuario, pero no los secretos. Este mecanismo de autenticación para sus aplicaciones solo es compatible con los controladores de MongoDB. Otras herramientas de MongoDB, como mongosh y MongoDB Compass no admiten este mecanismo de autenticación.

Los drivers MongoDB admiten dos tipos de flujo de autenticación para Workload Identity Federation: autenticación incorporada y autenticación de función de retorno.

Puede usar la autenticación incorporada si se implementa la aplicación en una infraestructura compatible con un tipo de principal compatible. La aplicación puede acceder a los clústeres de Atlas sin proporcionar una contraseña ni realizar una solicitud manual de JWT al servicio de metadatos del proveedor de nube. En cambio, el driver de MongoDB elegido usa el identificador principal existente para realizar una solicitud de un token de acceso JWT subyacente, que luego se pasa al clúster de Atlas automáticamente cuando la aplicación se conecta.

Para más detalles sobre la implementación, consulta la documentación del controlador que hayas elegido.

Infraestructura y tipos principales compatibles con la autenticación incorporada

Proveedor de nube
Tipo de infraestructura
Tipo principal

GCP

Motor de cómputo

Cuentas de servicio de GCP

Entorno estándar del motor de la aplicación

Entorno flexible del motor de la aplicación

Funciones en la nube

Cloud Run

Google Kubernetes Engine

Cloud Build

Azure

Azure VM

Identidades gestionadas de Azure (asignadas al usuario y al sistema)

Si no puedes usar métodos de autenticación incorporados, puedes usar la autenticación de función de retorno con cualquier servicio de autorización OAuth 2.0. Con la autenticación de función de retorno, el driver de MongoDB llama a un método de función de retorno proporcionado para obtener un token JWT para acceder a la base de datos. Dentro de tu método de función de retorno, recupera el token de tu proveedor de autorización mediante el mecanismo que prefieras, como la autenticación con certificado, el flujo de credenciales del cliente o un SDK.

Para confirmar que el driver que has elegido admite Workload Identity Federation y revisar los detalles adicionales de implementación, consulta la lista de versiones de drivers que admiten la autenticación de Workload Identity Federation.

La siguiente lista proporciona ejemplos de cómo puedes recuperar tu token de acceso para aplicaciones que se ejecutan en la nube o en recursos on-premises:

Workload Identity Federation con Azure Managed Identities proporciona la forma más segura de autenticarte en los clústeres de MongoDB Atlas que se ejecutan en Azure. Este enfoque ofrece las siguientes ventajas de seguridad:

  • Aprovecha las identidades gestionadas: esto permite que tus aplicaciones que se ejecutan en servicios de Azure (como VM de Azure, AKS, Azure Functions) se autentiquen en MongoDB Atlas utilizando sus identidades gestionadas de Azure asignadas sin necesidad de gestionar credenciales de MongoDB separadas.

  • Autenticación "sin contraseña" segura: tus aplicaciones obtienen tokens de acceso OAuth 2.0 de corta duración del servidor de metadatos de Azure, que MongoDB Atlas verifica después. Esto elimina la necesidad de almacenar y gestionar nombres de usuario y contraseñas sensibles de bases de datos dentro del código o las configuraciones de tu aplicación.

  • Gestión de identidades centralizada: gestionas las identidades de tus cargas de trabajo de Azure dentro del marco de Azure Entra ID, lo que proporciona una fuente única de información fiable para la gestión de identidades.

  • Auditoría mejorada: Azure proporciona registros de auditoría de la actividad de las cuentas de servicio, lo que mejora la trazabilidad y las capacidades de supervisión de la seguridad.

Para obtener la mejor seguridad al acceder a los clústeres de MongoDB Atlas, puede combinar Workload Identity Federation con Azure Private Link. Esta configuración aprovecha las capacidades de seguridad y administración de Azure, a la vez que garantiza... Conectividad de red privada y segura a su base de datos.

Para configurar Workload Identity Federation de MongoDB:

  1. Configurar el proveedor de identidad de carga de trabajo (configuración única).

    1. Configurar al proveedor de identidad externo.

    2. Configurar el Proveedor de identidad de carga de trabajo en Atlas y activarlo para la(s) organización(es) de Atlas.

  2. Conceder a grupos o identidades externas (principales de servicio) el acceso a clústeres de MongoDB.

  3. Conectar la aplicación a Atlas con un driver de MongoDB.

Para acceder a los clústeres de MongoDB Atlas con identidades gestionadas de Azure o entidades de servicio de Azure, se debe registrar una aplicación de Azure Entra ID. Si se cuenta con un registro de aplicación existente para el acceso a Workforce (usuario humano), recomendamos que se registre una aplicación independiente para el acceso a la carga de trabajo.

1
  1. Navegar a App registrations.

    1. En la cuenta del portal de Azure, buscar y hacer clic en Microsoft Entra ID.

    2. En la sección Manage de la navegación izquierda, hacer clic en App registrations.

  2. Haga clic en New registration.

  3. Aplicar los siguientes valores.

    Campo
    Valor

    Name

    Atlas Database - Workload

    Supported Account Types

    Accounts in this organizational directory only (single tenant)

    Redirect URI

    Web

2

Una de las prácticas recomendadas implica utilizar identificadores de entidad de servicio como identificadores de usuario de MongoDB al definir los derechos de acceso en Atlas. Si se planea utilizar este enfoque común, se puede omitir este paso. Sin embargo, si se prefiere utilizar identificadores de grupo como el Identificador de grupo de seguridad de Azure AD, es posible establecer la notificación de grupos en el registro de la aplicación siguiendo los pasos descritos a continuación.

  1. Ir a Token Configuration.

    En la sección Manage de la navegación izquierda, hacer clic en Token Configuration.

  2. Haga clic en Add groups claim.

  3. En el cuadro modal Edit groups claim, seleccionar Security.

    Los grupos que seleccione dependen del tipo de grupos que haya configurado en su entorno de Azure. Es posible que necesite seleccionar un tipo diferente de grupo para enviar la información de grupo adecuada.

  4. En la sección Customize token properties by type, es importante que se seleccione solo Group ID.

    Si seleccionas Group Id, Azure envía el ID de objeto del grupo de seguridad.

  5. Haga clic en Add.

    Para aprender más sobre cómo agregar una reclamación de grupo, se puede consultar Documentación de Azure.

3
  1. Ir a Expose an API en la barra lateral izquierda y activar el URI del ID de la aplicación.

  2. Habilitar un URI de ID de la aplicación.

    1. Mantener el URI de ID de la aplicación por defecto asignado por Azure, que es <application_client_id>. Copiar y almacenar este valor, ya que MongoDB Atlas y todos los drivers de MongoDB requieren este valor para la configuración de Workload Identity Federation.

4
  1. En la sección Manage de la navegación izquierda, hacer clic en Manifest.

  2. Actualizar el requestedAccessTokenVersion de null a 2.

    El número 2 representa la versión 2 de los tokens de acceso de Microsoft. Otras aplicaciones pueden utilizar esto como una declaración firmada de la identidad del usuario gestionado por el Directorio de Active. La versión 2 garantiza que el token sea un JSON Web Token que MongoDB comprenda.

  3. Haga clic en Save.

Para aprender más sobre cómo agregar una reclamación opcional, se puede consultar Documentación de Azure.

5
  1. En la navegación izquierda, hacer clic en Overview.

    Copiar el valor de Application (client) ID.

  2. En la navegación superior, haga clic en Endpoints.

    Copie el valor OpenID Connect metadata document sin la parte /.well-known/openid-configuration.

    También puedes recuperar este valor siguiendo las OpenID Connect metadata document URL y copiando el valor issuer para.

La siguiente tabla muestra cómo se asignan estos valores de la interfaz de usuario de Microsoft Entra ID en nuestras propiedades de configuración de Atlas:

Microsoft Entra ID UI
Propiedad de configuración de Atlas

OpenID Connect metadata document (without /.well-known/openid-configuration)

Issuer URI.

Application (client) ID

Client ID.

Application ID URI (<Application ID>)

Audience

No es necesario realizar cambios de configuración en la cuenta de Google Cloud.

Nota

Requisito previo

Este procedimiento requiere acceso a Organization Owner y asume que ya se configuró el proveedor de identidad externo. Más información sobre cómo configurar un IdP en Configurar una aplicación de proveedor de identidad externo.

Puede configurar Workload Identity Federation para acceder a la base de datos en Atlas desde Federation Management Console.

Para configurar un proveedor de identidad de Workload Identity Federation con Azure Entra ID en Atlas:

1
  1. Si aún no se muestra, selecciona la organización deseada en el menú Organizations de la barra de navegación.

  2. En la barra lateral, haz clic en Federation en la sección Identity & Access.

  3. Haga clic en Open Federation Management App.

La página de Federación se muestra.

2
  1. Hacer clic en Set Up Identity Provider o Configure Identity Provider.

  2. Seleccione Workload Identity Provider y haga clic en Continue.

3
Configuración
Necesidad
Valor

Configuration Name

Requerido

Especificar una etiqueta legible por humanos que identifique esta configuración. Esta etiqueta es visible para los usuarios de Atlas.

Configuration Description

Opcional

Describir esta configuración.

Issuer URI

Requerido

Especifica el valor de URI del emisor proporcionado por el registro de tu aplicación Microsoft Entra ID. Para aprender más, consulta la tabla en Preparar tu identidad externa.

Audiencia

Requerido

Especifica el valor de URI del ID de la aplicación en el registro de tu aplicación de Azure Entra ID. Para aprender más, consulta la tabla en Prepara tu identidad externa.

Tipo de autorización

Requerido

Seleccionar Group Membership para conceder autorización basada en la pertenencia a grupos o seleccionar User ID para autorizar a un usuario individual.

Es más común usar la ID de usuario para el acceso a aplicaciones.

Groups Claim

Condicional

Especifique el identificador de la reclamación que incluye la información de la membresía del grupo de usuarios del proveedor de identidad del principal. Si se selecciona Groups Membership como tipo de autorización, debe especificar este campo. Deje el valor establecido por defecto, groups.

Por defecto: groups

User Claim

Requerido

No modifique el valor por defecto, sub.

Por defecto: sub

4
5
  1. Haga clic en Connect Organizations.

  2. Para la organización a la que quiere conectarse con Workload Identity Federation, haga clic en Configure Access.

  3. Haga clic en Connect Identity Provider.

    Nota

    Si ya configuró otro proveedor de identidad, Atlas muestra un botón Connect Identity Provider(s) en su lugar.

6

En el modal Connect Identity Provider(s), seleccione un proveedor de identidad de carga de trabajo donde Purpose sea Workload Identity Federation.

7

Cuando se conecta el proveedor de identidad de carga de trabajo a una organización, Atlas habilita Workload Identity Federation para todos los proyectos dentro de esa organización.

Para configurar un proveedor de identidad de Workload Identity Federation con Google Cloud en Atlas:

1
  1. Si aún no se muestra, selecciona la organización deseada en el menú Organizations de la barra de navegación.

  2. En la barra lateral, haz clic en Federation en la sección Identity & Access.

  3. Haga clic en Open Federation Management App.

La página de Federación se muestra.

2
  1. Hacer clic en Set Up Identity Provider o Configure Identity Provider.

  2. Seleccione Workload Identity Provider y haga clic en Continue.

3
Configuración
Necesidad
Valor

Configuration Name

Requerido

Especificar una etiqueta legible por humanos que identifique esta configuración. Esta etiqueta es visible para los usuarios de Atlas.

Configuration Description

Opcional

Describir esta configuración.

Issuer URI

Requerido

Introducir el URI https://accounts.google.com.

Audiencia

Requerido

Especificar cualquier valor personalizado. El parámetro Audience se usa al llamar a los controladores de MongoDB

Tipo de autorización

Requerido

Seleccione Group Membership para conceder la autorización basada en la pertenencia a grupos o seleccione User ID para autorizar a usuarios individuales.

Es más común usar la ID de usuario para el acceso a aplicaciones.

User Claim

Requerido

No modifique el valor por defecto, sub.

Por defecto: sub

4
5
  1. Haga clic en Connect Organizations.

  2. Para la organización a la que quieres conectar con Workload Identity Federation, haz clic en Configure Access.

  3. Haga clic en Connect Identity Provider.

    Nota

    Si ya configuró otro proveedor de identidad, Atlas muestra un botón Connect Identity Provider(s) en su lugar.

6

En el modal Connect Identity Provider(s), seleccione un proveedor de identidad de carga de trabajo donde Purpose sea Workload Identity Federation.

7

Cuando se conecta el proveedor de identidad de carga de trabajo a una organización, Atlas habilita Workload Identity Federation para todos los proyectos dentro de esa organización.

Antes de comenzar, debes tener lo siguiente para agregar un usuario de base de datos:

  • Project Owner Acceso

  • Workload Identity Federation configurada en Atlas y habilitada para tu organización.

1
2

En la sección Authentication Method, seleccione Federated Auth.

Nota

3
  1. En la sección Select Identity Provider, selecciona un proveedor de identidad de carga de trabajo configurado.

  2. Especifica el identificador de usuario o el identificador de grupo asociado con tu proveedor de identidad de Workload configurado.

Nota

  • Para los usuarios de Azure Entra ID, este valor se asigna al ID de objeto de su grupo de usuarios de Azure en lugar del nombre del grupo de usuarios.

  • Para los usuarios de GCP, este valor se asigna al ID único de la cuenta de servicio de GCP.

4
5
  • Si agregaste un usuario, haz clic en el botón Add User.

  • Si ha agregado un grupo, haga clic en el botón Add Group.

Utiliza la versión enumerada o superior de los siguientes drivers de MongoDB para conectar una aplicación a MongoDB con autenticación de Workload Identity Federation:

Nota

Este procedimiento es solo para usuarios que gestionan sus propias claves de firma.

No utilices esta funcionalidad para rotar tus claves de firma. Cuando rotas tus claves de firma de Workload Identity Federation, MongoDB recupera el JWKS automáticamente al expirar los tokens de acceso existentes.

Si la llave privada está comprometida, se pueden revocar inmediatamente los conjuntos de llaves web JSON (JWKS) almacenados en caché en los nodos de MongoDB:

1
2
  1. Si aún no se muestra, selecciona la organización deseada en el menú Organizations de la barra de navegación.

  2. En la barra lateral, haz clic en Federation en la sección Identity & Access.

  3. Haga clic en Open Federation Management App.

La página de Federación se muestra.

3
4
5
6

Después de hacer clic en Revoke, MongoDB obtiene las nuevas claves a través del endpoint JWKS. Los clientes se deben reiniciar (como mongosh o Compass) después de revocar JWKS.

Para borrar tu configuración de Workload Identity Federation:

1
  1. Si aún no se muestra, selecciona la organización deseada en el menú Organizations de la barra de navegación.

  2. En la barra lateral, haz clic en Federation en la sección Identity & Access.

  3. Haga clic en Open Federation Management App.

La página de Federación se muestra.

2
  1. Hacer clic en Organizations en la barra lateral izquierda.

  2. Haz clic en la organización que Workload Identity Federation tiene habilitada.

  3. Haz clic en Disconnect en el menú desplegable Manage de la tarjeta Workload Identity Federation.

  4. En el cuadro de diálogo Disconnect identity provider?, hacer clic en Disconnect.

    Cuando desconectes un proveedor de identidad, los usuarios que se autentican usando el proveedor de identidad perderán acceso a Workload Identity Federation en los proyectos de Atlas listados en la tabla Project.

3

Haz clic en Identity Providers en la barra de navegación lateral izquierda.

4
5

En el cuadro de diálogo Delete Identity Provider?, hacer clic en Delete.

Volver

Fuerza laboral (humanos)