Para configurar Workforce Identity Federation con OIDC: registre su aplicación OIDC con un proveedor de identidad externo, como Okta o Microsoft Entra ID. Esto garantiza una autenticación segura y facilita la gestión de usuarios.
Acerca de esta tarea
Workforce Identity Federation utiliza OIDC. Puede usar cualquier proveedor de identidad externo compatible con el estándar OIDC.
Se puede configurar la aplicación OIDC para los siguientes tipos de concesión:
Flujo de código de autorización con PKCE
Flujo de autorización de dispositivos
MongoDB recomienda que se utilice el Flujo de códigos de autorización con PKCE para mayor seguridad. Se debe utilizar el Flujo de autorización de dispositivos solo si los usuarios necesitan acceder a la base de datos desde máquinas sin navegador.
Nota
La Federación de Identidad de la Fuerza Laboral solo admite JWT para autenticación. No admite tokens de acceso opacos.
Los siguientes procedimientos proporcionan instrucciones de configuración detalladas para Microsoft Entra ID y Okta, e instrucciones de configuración genéricas para otros proveedores de identidad externos.
Antes de comenzar
Para utilizar Okta como proveedor de identidad, debe tener una Okta account.
Para utilizar Microsoft Entra ID como proveedor de identidad, debe tener una cuenta de Microsoft Azure.
Pasos
Registrar una aplicación
Navegar a App registrations.
En la cuenta del portal de Azure, buscar y hacer clic en Microsoft Entra ID.
En la sección Manage de la navegación izquierda, hacer clic en App registrations.
Haga clic en New registration.
Aplicar los siguientes valores.
CampoValorName
MongoDB - Workforce
Supported Account Types
Accounts in this organizational directory only (single tenant)
Redirect URI
- Public client/native (mobile & desktop)- To access clusters using MongoDB Compass and MongoDB Shell, set the Redirect URI tohttp://localhost:27097/redirect.Haga clic en Register.
Para aprender más sobre cómo registrar una aplicación, se puede consultar Azure Documentation.
Agregar un reclamo de grupo
Ir a Token Configuration.
En la sección Manage de la navegación izquierda, hacer clic en Token Configuration.
Haga clic en Add groups claim.
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.
En la sección Customize token properties by type, seleccionar solo Group ID.
Haga clic en Add.
Para aprender más sobre cómo agregar una reclamación de grupo, se puede consultar Documentación de Azure.
Añade una declaración de identificador de usuario al token de acceso
Haga clic en Add optional claim.
En el cuadro modal Add optional claim, seleccionar Access.
Seleccionar una reclamación que lleve un identificador de usuario al que se pueda referir en los registros de acceso de MongoDB, como un correo electrónico.
Se puede usar la reclamación UPN para identificar a los usuarios con su dirección de correo electrónico.
Haga clic en Add.
En la nota Microsoft Graph Permissions, marque la casilla y haga clic en Add.
Para aprender más, se puede consultar la documentación de Azure.
Actualizar el manifiesto
En la sección Manage de la navegación izquierda, hacer clic en Manifest.
Actualizar el requestedAccessTokenVersion de
nulla2.El número
2representa 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.Haga clic en Save.
Para aprender más sobre cómo agregar una reclamación opcional, se puede consultar Documentación de Azure.
Recordar metadatos
En la navegación izquierda, hacer clic en Overview.
Copiar el valor de Application (client) ID.
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 se puede obtener este valor copiando el valor de
issueren la URL OpenID Connect metadata document.
La siguiente tabla muestra a qué se asignan estos valores de UI de ID de Microsoft Entra en MongoDB oidcIdentityProviders
parámetro:
Microsoft Entra ID UI | Campo de parámetro oidcIdentityProviders de MongoDB |
|---|---|
Application (client) ID | clientIDaudience |
OpenID Connect metadata document (without /.well-known/openid-configuration) |
|
Crear una aplicación en Okta
En su panel de Okta Admin, use el panel de navegación izquierdo para ir a Applications → Applications.
En la pantalla Applications, haz clic en Create App Integration.
En la sección Sign-in method, seleccione OIDC - OpenID Connect.
En la sección Application type, seleccione Native Application.
Haga clic en Next.
Para obtener más información, consulte Crear integraciones de aplicaciones OIDC.
Configura tu New Native App Integration
Después de crear una integración de aplicaciones, se le redirigirá automáticamente a la pantalla New Native App Integration.
En el campo App integration name, ingrese un nombre para su aplicación.
En el campo Grant type, seleccione los tipos de concesión.
Habilite los siguientes tipos de concesiones:
Authorization Code or Device Authorization
(Opcional) Refresh Token
Habilitar los tokens de actualización proporciona una mejor experiencia de usuario. Si no están habilitados, los usuarios deben volver a autenticarse con el proveedor de identidad una vez que caduque su token de acceso.
En la sección Sign-in redirect URIs, ingrese una URL.
Introduzca la siguiente URL:
http://localhost:27097/redirect.En la sección Assignments, configure los campos Controlled access y Enable immediate access.
Para el campo Controlled access, seleccione Allow everyone in your organization to access.
Para el campo Enable immediate access, asegúrese de que Enable immediate access with Federation Broker Mode esté marcado.
Haga clic en Save.
Para obtener más información,consulte Crear integraciones de aplicaciones OIDC.
Configura PKCE y obtén el ID de cliente
En el panel de su aplicación, vaya a la pestaña General y configure lo siguiente:
En el campo Client ID, haga clic en el icono para copiar el ID de cliente para su uso posterior.
En el campo Proof Key for Code Exchange (PKCE), asegúrese de que Require PKCE as additional verification esté habilitado (marcado por defecto).
Agregar un servidor de autorización
En el panel de navegación izquierdo, vaya a Security → API. Haga clic en Add Authorization Server.
En el campo Name ingrese un nombre para su servidor.
En el campo Audience, pegue el ID del cliente del paso anterior.
(Opcional) En el Description campo, ingrese una descripción de su servidor.
Haga clic en Save.
Para obtener más información,consulte Crear un servidor de autorización.
Busque y guarde la URI del emisor
Después de crear su servidor de autorización, será redirigido automáticamente a la pantalla de su servidor de autorización.
En la pestaña Settings, guarde la URI del emisor copiando la primera parte de Metadata URI hasta la sección .well-known. La estructura de la URI debería ser similar a: https://trial4238026.okta.com/oauth2/ausabgmhveoOQSMsE697.
Añadir Groups reclamación
En la pantalla del servidor de autorización, vaya a la pestaña Claims y haga clic en Add Claim.
Configure la reclamación Groups con la siguiente información de configuración:
CampoValorName
Introduzca un nombre para su reclamo.
Include in token type
Haga clic en el menú desplegable y seleccione Access Token.
Value type
Haga clic en el menú desplegable y seleccione Groups.
Filter
Haga clic en el menú desplegable y seleccione Matches regex. Junto al menú desplegable, introduzca
.*.Disable claim
No comprobar.
Include in
Seleccione Any scope.
Haga clic en Create.
Para obtener más información, consulte Crear reclamaciones.
Crear una política de acceso
En la pantalla del servidor de autorización, vaya a la pestaña Access Policies y haga clic en Add Policy.
En el campo Name, ingrese un nombre de política.
En el campo Description, ingrese una descripción para la política.
En el campo Assign to, seleccione All clients.
Haga clic en Create Policy.
Para obtener más información, consulte Crear una política de acceso.
Crear una regla para la política de acceso
En la pestaña Access Policies, haga clic en Add Rule.
En el campo Rule Name, ingresa un nombre para la política de acceso.
Para IF Grant Type is, seleccione un tipo de concesión.
Al configurar los tipos de concesión, seleccione la opción adecuada según el comportamiento del cliente:
Si el cliente actúa en nombre propio, seleccione Client Credentials.
Si el cliente actúa en nombre de un usuario, seleccione lo siguiente:
Authorization Code
Device Authorization
Agregue configuraciones de reglas según la política de seguridad de su organización.
Ejemplo de configuración de reglas de Okta:
Campo
Valor
AND user is
Seleccione Any user assigned to the app.
AND Scopes requested
Seleccione Any scopes.
THEN Use this inline hook
Ninguno (deshabilitado)
AND Access token lifetime is
1 Hours
AND Refresh token lifetime is
Haga clic en el segundo menú desplegable y seleccione Unlimited.
but will expire if not used every
Introduzca 7 days.
Haga clic en Create Rule.
Para obtener más información, consulte Crear reglas para cada política de acceso.
Crear un grupo
En el panel de navegación izquierdo, vaya a Directory → Groups y haga clic en Add Group.
En el campo Name, nombre su directorio
OIDC.(Opcional) En el Description campo, ingrese una descripción para su regla.
Haga clic en Save.
Para obtener más información, consulte Crear un grupo.
Agregue un usuario a su organización
En el panel de navegación izquierdo, vaya a Directory → People y haga clic en Add Person.
Proporcione los detalles del usuario ingresando los siguientes valores en los campos correspondientes:
CampoValorUser type
Seleccione User.
First name
Proporcione el nombre según sea necesario.
Last name
Proporcione el nombre según sea necesario.
Username
Introduzca un correo electrónico como nombre de usuario.
Primary email
Introduce un correo electrónico. Debe ser el mismo que el utilizado en el campo Username.
Secondary email
Opcional.
Groups
Introduzca OIDC.
Activation
Seleccione Activate Now y marque I will set password.
Password
Introduzca una contraseña.
User must change password on first login
Seleccionar Optional
Haga clic en Save.
Para obtener más información,consulte Agregar usuarios manualmente.
(Condicional) Agregue o habilite un groups reclamo si se autentica con grupos
Para los grupos, este paso garantiza que los tokens de acceso contengan la información de membresía del grupo del usuario que se autentica. MongoDB utiliza los valores enviados en una reclamación de grupos para la autorización.
(Opcional) Permitir tokens de actualización si desea que los clientes de MongoDB actualicen los tokens para una mejor experiencia del usuario
(Opcional) Configure el tiempo de vida del token de acceso (reclamo exp) para alinearlo con el tiempo de sesión de conexión de su base de datos
Después de registrar su aplicación, guarde los valores issuer, clientId y audience para usarlos en la siguiente etapa de la configuración.