Adición de OpenID Connect como proveedor de identidades externo

Se aplica a: Círculo verde con un símbolo de marca de verificación blanca que indica que el siguiente contenido se aplica a los inquilinos externos. Inquilinos externos (más información)

Al configurar la federación con un proveedor de identidades de OpenID Connect (OIDC) configurado personalizado, permite a los usuarios registrarse e iniciar sesión en las aplicaciones con sus cuentas existentes desde el proveedor externo federado. Esta federación de OIDC permite la autenticación con varios proveedores que cumplen el protocolo OpenID Connect.

Al agregar un proveedor de identidades OIDC a las opciones de inicio de sesión de su flujo de usuario, los usuarios pueden registrarse e iniciar sesión en las aplicaciones registradas definidas en ese flujo de usuario. Pueden hacerlo con sus credenciales del proveedor de identidades OIDC. (Obtenga más información sobre los métodos de autenticación y los proveedores de identidades para los clientes).

Prerrequisitos

Configuración del proveedor de identidades de OpenID Connect

Para federar usuarios con su proveedor de identidades, primero debe configurar su proveedor de identidades para que acepte solicitudes de federación procedentes de su inquilino externo. Para realizar esta preparación, agregue las URI de redirección y registre el proveedor de identidades para que se reconozca.

Antes de pasar al paso siguiente, agregue los URI de redirección como se indica a continuación:

https://<tenant-subdomain>.ciamlogin.com/<tenant-ID>/federation/oauth2

https://<tenant-subdomain>.ciamlogin.com/<tenant-subdomain>.onmicrosoft.com/federation/oauth2

Habilite el inicio de sesión y el registro con su proveedor de identidades

Para habilitar el inicio de sesión y el registro para los usuarios con una cuenta en el proveedor de identidades, debe registrar el identificador de Microsoft Entra como una aplicación en el proveedor de identidades. Este paso permite que el proveedor de identidad reconozca y emita tokens a su Microsoft Entra ID para la federación. Registre la aplicación mediante los URI de redirección rellenados. Guarde los detalles de la configuración del proveedor de identidades para configurar la federación en el inquilino externo.

Configuración de la federación

Para configurar la federación de OpenID Connect con el proveedor de identidades en el identificador externo de Microsoft Entra, necesita la siguiente configuración:

  • Punto de conexión conocido
  • URI del emisor
  • Id. de cliente
  • Método de autenticación de cliente
  • Secreto de cliente
  • Ámbito
  • Tipo de respuesta
  • Asignación de notificaciones
    • Sub
    • Nombre
    • Nombre propio
    • Apellido
    • Correo electrónico (obligatorio de forma predeterminada; se puede hacer opcional)
    • Correo_verificado
    • Número de teléfono
    • Número de teléfono verificado
    • Dirección postal
    • Localidad
    • Región
    • Código postal
    • País

Configuración de un nuevo proveedor de identidades de OpenID Connect en el Centro de administración

Después de configurar el proveedor de identidades, complete este paso para configurar una nueva federación de OpenID Connect en el Centro de administración de Microsoft Entra.

  1. Inicie sesión en el Centro de administración de Microsoft Entra como al menos un administrador del proveedor de identidades externo.

  2. Vaya a Entra ID>Identidades externas>Todos los proveedores de identidades.

  3. Seleccione la pestaña Personalizado y, a continuación, seleccione Agregar nuevo>Open ID Connect.

    Captura de pantalla de la adición de un nuevo proveedor de identidades personalizado.

  4. Introduzca los detalles siguientes para el proveedor de identidades:

    • Nombre para mostrar: el nombre del proveedor de identidades que se muestra a los usuarios durante los flujos de inicio de sesión y registro. Por ejemplo, Inicie sesión con el nombre de IdP o Regístrese con el nombre de IdP.

    • Punto de conexión conocido (también conocido como URI de metadatos) es el URI de detección de OIDC para obtener la información de configuración para el proveedor de identidades. La respuesta es un documento JSON que incluye ubicaciones de punto de conexión de OAuth 2.0. Como mínimo, el documento de metadatos debe contener las siguientes propiedades: issuer, authorization_endpoint, token_endpoint, token_endpoint_auth_methods_supported, response_types_supported, y subject_types_supportedjwks_uri. Para obtener más información, consulte las especificaciones de detección de OpenID Connect.

    • URI del emisor de OpenID: la entidad del proveedor de identidades que emite tokens de acceso para tu aplicación. Por ejemplo, si usa OpenID Connect para federar con Azure AD B2C, el URI del emisor tiene el siguiente aspecto: https://login.b2clogin.com/{tenant}/v2.0/. El URI del emisor es una URL sensible a mayúsculas y minúsculas que utiliza el esquema https. Contiene los componentes esquema, host y, opcionalmente, número de puerto y ruta, pero no incluye componentes de consulta o fragmento.

    Nota:

    Para federar con un tenant de Microsoft Entra ID, consulte el documento Adición de un tenant de Microsoft Entra ID como proveedor de identidades de OpenID Connect. La federación de OIDC tampoco es compatible con la característica Invitar a usuario externo (versión preliminar).

    • El identificador de cliente y el secreto de cliente son los identificadores que usa el proveedor de identidades para identificar el servicio de aplicación registrado. Proporcione un secreto de cliente al seleccionar un método de autenticación basado en client_secret.
    • Autenticación de cliente es el tipo de método de autenticación de cliente que se usará para autenticarse con el proveedor de identidades mediante el punto de conexión del token. Se admiten los métodos de autenticación client_secret_post y client_secret_jwt. Aunque la interfaz de usuario del Centro de administración puede mostrarse private_key_jwt como una opción, este método no se admite actualmente y no se debe seleccionar.

    Nota:

    Debido a posibles problemas de seguridad, no se admite el client_secret_basic método de autenticación de cliente.

    • El ámbito define la información y los permisos que desea recopilar del proveedor de identidades, por ejemplo openid profile. Las solicitudes de OpenID Connect deben contener el valor de ámbito openid para recibir el token de ID del proveedor de identidades. Se pueden agregar otros ámbitos separados por espacios. Consulte la documentación de OpenID Connect para ver otros ámbitos disponibles, como profile, emaily mucho más.
    • Tipo de respuesta describe qué tipo de información se envía en la llamada inicial al authorization_endpoint del proveedor de identidades. Actualmente, solo se admite el tipo de code respuesta. No se admiten id_token ni token.
  5. Seleccione Siguiente: Mapeo de declaraciones para configurar el mapeo de declaraciones o Revisar + crear para agregar el proveedor de identidades.

Nota:

Microsoft recomienda no usar el flujo de concesión implícita o el flujo de ROPC. Por lo tanto, la configuración del proveedor de identidades externo de OpenID Connect no admite estos flujos. La forma recomendada de admitir SPAs es el flujo de código de autorización de OAuth 2.0 (con PKCE), que es compatible con la configuración de federación de OIDC.

Adición de un proveedor de identidades OIDC a un flujo de usuario

En este momento, ya tiene configurado el proveedor de identidades OIDC en su Microsoft Entra ID, pero todavía no está disponible en ninguna de las páginas de inicio de sesión. Para agregar el proveedor de identidades OIDC a un flujo de usuario:

  1. En su inquilino externo, vaya a Entra ID>Identidades externas>Flujos de usuarios.

  2. Seleccione el flujo de usuario en el que desea agregar el proveedor de identidades OIDC.

  3. En Configuración, seleccione Proveedores de identidades.

  4. En Otros proveedores de identidades, seleccione Proveedor de identidades OIDC.

    Captura de pantalla del proveedor OIDC personalizado en la lista de IdP.

  5. Seleccione Guardar.

Hacer opcional el correo electrónico para el registro con proveedor de identidad externo

De forma predeterminada, se requiere una dirección de correo electrónico cuando los usuarios se registran con un proveedor de identidades externo (IdP). Si el IdP externo no envía una notificación de correo electrónico, los usuarios encuentran el error AADSTS901011: No email address was obtained from the external oidc identity provider durante la suscripción. Para evitar este error, configure el flujo de usuario para que el atributo de correo electrónico sea opcional. Después, los usuarios pueden completar el registro con su identidad de IdP externa, sin proporcionar una dirección de correo electrónico.

Importante

Hacer que el correo electrónico sea opcional es una configuración de nivel de flujo de usuario. Este cambio se aplica a los registros de todas las aplicaciones asociadas al flujo de usuario.

Nota:

Cuando no se recopila el correo electrónico, el código de acceso de un solo uso (OTP) de correo electrónico no se puede usar para MFA. Asegúrese de que un método MFA alternativo (como SMS) esté habilitado si las directivas requieren MFA.

Sugerencia

Normalmente, el selector de cuentas muestra la dirección de correo electrónico del usuario. Cuando no se recopila ninguna dirección de correo electrónico, se muestra en su lugar el nombre mostrado. Para ayudar a los usuarios a identificar fácilmente su cuenta, asigne la notificación name de la Asignación de notificaciones o recopile el nombre para mostrar durante la suscripción.

Actualización del flujo de usuario para que el correo electrónico sea opcional

Para que el atributo de correo electrónico sea opcional en el flujo de usuario, use microsoft Graph API para actualizar la propiedad onAttributeCollection del flujo de usuario.

  1. Busque el identificador del flujo de usuario que desea actualizar. Una manera de hacerlo es usar el Explorador de Graph para enumerar todos los flujos de usuario:

    GET https://graph.microsoft.com/v1.0/identity/authenticationEventsFlows
    

    Localice el id del flujo de usuario y la propiedad onAttributeCollection en la respuesta.

  2. Copie la onAttributeCollection propiedad de la respuesta y úsela para actualizar el flujo de usuario con una PATCH solicitud. El único cambio que debe realizar es establecer la required propiedad en el atributo email en false:

    PATCH https://graph.microsoft.com/v1.0/identity/authenticationEventsFlows/{user-flow-id}
    Content-Type: application/json
    
    {
        "@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
        "onAttributeCollection": {
            "@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
            "attributeCollectionPage": {
                "views": [
                    {
                        "title": null,
                        "description": null,
                        "inputs": [
                            {
                                "attribute": "email",
                                "label": "Email Address",
                                "inputType": "text",
                                "defaultValue": null,
                                "hidden": false,
                                "editable": true,
                                "writeToDirectory": true,
                                "required": false,
                                "validationRegEx": "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$",
                                "options": []
                            }
                        ]
                    }
                ]
            }
        }
    }
    

    Nota:

    Incluya todas las entradas de atributo del flujo de usuario existente en la PATCH solicitud, no solo el atributo de correo electrónico. En el ejemplo anterior solo se muestra la entrada de correo electrónico, pero el flujo de usuario puede incluir atributos adicionales. Para obtener el esquema completo, consulte authenticationAttributeCollectionPage resource type (Tipo de recurso authenticationAttributeCollectionPage).

Limitaciones conocidas

Las directivas de acceso condicional que requieren el registro de MFA no funcionan según lo previsto cuando un inquilino externo está federado con un proveedor de identidades externo (IdP). Esta limitación puede dar lugar a uno de los siguientes comportamientos:

  • Los usuarios no pueden registrar un método MFA y no pueden completar el inicio de sesión y a menudo se produce un error.
  • Los usuarios no se redirigen al proceso de registro de MFA durante el inicio de sesión como se espera.
  • Un usuario creado sin una dirección de correo electrónico no puede registrar una dirección de correo electrónico para su uso con el código de acceso de un solo uso (OTP) de correo electrónico como método MFA.