Configuración del comportamiento de inicio de sesión mediante la detección del dominio de inicio

Este artículo proporciona una introducción a la configuración del comportamiento de autenticación de Microsoft Entra para usuarios federados mediante la directiva Detección del dominio de inicio. Se trata el uso del inicio de sesión de aceleración automática para omitir la pantalla de entrada del nombre de usuario y reenviar automáticamente a los usuarios a los puntos de conexión de inicio de sesión federados. Para más información sobre la directiva HRD, consulte el artículo Detección de dominio de inicio.

Inicio de sesión de aceleración automática

Algunas organizaciones configuran dominios en su inquilino de Microsoft Entra para federarlos con otro proveedor de identidades (IdP), como Servicios de federación de Active Directory (AD FS) para la autenticación de usuarios. Cuando un usuario inicia sesión en una aplicación, en primer lugar se le muestra una página de inicio de sesión de Microsoft Entra. Una vez que escribe su nombre principal de usuario (UPN), si está en un dominio federado, se le redirige a la página de inicio de sesión del IdP que sirve a ese dominio. En determinadas circunstancias, es posible que los administradores quieran dirigir a los usuarios a la página de inicio de sesión cuando inician sesión en aplicaciones específicas. Como resultado, los usuarios pueden omitir la página inicial de Microsoft Entra ID. Este proceso se conoce como "aceleración automática de inicio de sesión".

Para los usuarios federados con credenciales habilitadas para la nube, como el inicio de sesión por SMS o las claves FIDO, debe evitar la aceleración automática del inicio de sesión. Consulte Deshabilitación del inicio de sesión de aceleración automática para obtener información sobre cómo evitar sugerencias de dominio con HRD.

Importante

A partir de abril de 2023, las organizaciones que usan la aceleración automática o smartlinks podrían empezar a ver una nueva pantalla agregada a la interfaz de usuario de inicio de sesión. Esta pantalla, que se denomina diálogo de confirmación del dominio, forma parte del compromiso general de Microsoft con la protección de la seguridad y requiere que el usuario confirme el dominio del inquilino en el que inicia sesión. Si ve el diálogo de confirmación del dominio y no reconoce el dominio de inquilino que aparece, debe cancelar el flujo de autenticación y ponerse en contacto con el administrador de TI.

Para obtener más información, visite cuadro de diálogo de confirmación de dominio.

Requisitos previos

Para configurar la directiva de HRD para una aplicación en Microsoft Entra ID, necesita:

  • Una cuenta de Azure con una suscripción activa. Si no la tiene, puede crear una cuenta gratis.
  • Uno de los siguientes roles: administrador global o propietario de la entidad de servicio.
  • La versión preliminar más reciente de los cmdlets de PowerShell de Azure AD.

Establecimiento de una directiva de HRD en una aplicación

Usamos los cmdlets de PowerShell de Azure AD para recorrer algunos escenarios, incluidos:

Usamos Microsoft Graph para recorrer algunos escenarios, entre los que se incluyen:

  • La configuración de la directiva HRD para la aceleración automática de una aplicación en un inquilino con un dominio federado único.

  • La configuración de la directiva HRD para la aceleración automática de una aplicación en uno de varios dominios que se verifican en el inquilino.

  • Configuración de la directiva HRD para permitir que una aplicación heredada realice la autenticación directa de nombre de usuario/contraseña en Microsoft Entra ID para un usuario federado.

  • Enumerar las aplicaciones para las que se configura una directiva.

En los ejemplos siguientes, podrá crear, actualizar, vincular y eliminar directivas de HRD en las entidades de servicio de aplicación en Microsoft Entra ID.

Nota:

Los módulos de PowerShell de Azure AD y MSOnline están en desuso a partir del 30 de marzo de 2024. Para obtener más información, lea la actualización de desuso. Desde esta fecha, el soporte de estos módulos se limita a la asistencia de migración al SDK de PowerShell de Microsoft Graph y a las correcciones de seguridad. Los módulos en desuso seguirán funcionando hasta el 30 de marzo de 2025.

Se recomienda migrar a PowerShell de Microsoft Graph para interactuar con Microsoft Entra ID (anteriormente Azure AD). Para preguntas comunes sobre la migración, consulte las Preguntas más frecuentes sobre migración. Nota: Las versiones 1.0.x de MSOnline podrían experimentar interrupciones después del 30 de junio de 2024.

  1. Antes de empezar, ejecute el comando Conectar para iniciar sesión con la cuenta de administrador de Microsoft Entra ID:

    Connect-AzureAD -Confirm
    
  2. Ejecute el siguiente comando para ver todas las directivas de la organización:

    Get-AzureADPolicy
    

Si no se devuelve nada, significa que no tiene directivas creadas en el inquilino.

Creación de una directiva de HRD

En este ejemplo, creará una directiva que, cuando la asigna a una aplicación:

  • Acelera automáticamente a los usuarios a la pantalla de inicio de sesión de un proveedor de identidades federado cuando los usuarios inician sesión en una aplicación y hay un único dominio en su inquilino.
  • Acelera automáticamente a los usuarios a una pantalla de inicio de sesión del proveedor de identidades federado si hay más de un dominio federado en su inquilino.
  • Habilita el inicio de sesión no interactivo con nombre de usuario/contraseña directamente en Microsoft Entra ID para usuarios federados para las aplicaciones a las que se asigna la directiva.

La siguiente directiva acelera automáticamente a los usuarios a una pantalla de inicio de sesión del proveedor de identidades federado cuando estos inician sesión en una aplicación y cuando hay un solo dominio en su inquilino.

New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"AccelerateToFederatedDomain`":true}}") -DisplayName BasicAutoAccelerationPolicy 
    -Type HomeRealmDiscoveryPolicy
POST /policies/homeRealmDiscoveryPolicies

"HomeRealmDiscoveryPolicy": {
    "AccelerateToFederatedDomain": true
}

La siguiente directiva acelera automáticamente a los usuarios a una pantalla de inicio de sesión del proveedor de identidades federado cuando hay más de un dominio federado en su inquilino. Si tiene más de un dominio federado que autentica a los usuarios para las aplicaciones, es necesario especificar el dominio para la aceleración automática.

New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"AccelerateToFederatedDomain`":true, `"PreferredDomain`":`"federated.example.edu`"}}") 
    -DisplayName MultiDomainAutoAccelerationPolicy 
    -Type HomeRealmDiscoveryPolicy
POST /policies/homeRealmDiscoveryPolicies

"HomeRealmDiscoveryPolicy": {
    "AccelerateToFederatedDomain": true,
    "PreferredDomain": [
      "federated.example.edu"
    ]
}

La siguiente directiva habilita la autenticación de nombre de usuario y contraseña para los usuarios federados directamente con Microsoft Entra ID para aplicaciones específicas:

New-AzureADPolicy 
    -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"AllowCloudPasswordValidation`":true}}") 
    -DisplayName EnableDirectAuthPolicy 
    -Type HomeRealmDiscoveryPolicy
POST /policies/homeRealmDiscoveryPolicies

"EnableDirectAuthPolicy": {
    "AllowCloudPasswordValidation": true
}

Para ver la nueva directiva y obtener el valor de ObjectID, ejecute el siguiente comando:

Get-AzureADPolicy

Para aplicar la directiva HRD después de crearla, puede asignarla a varias entidades de servicio de aplicación.

Búsqueda de la entidad de servicio a la cual se asignará la directiva

Para ello, necesita el valor de ObjectID de las entidades de servicio a las que quiere asignar la directiva. Hay varias maneras de buscar el valor de ObjectID de las entidades de servicio.

Puede utilizar el Centro de administración de Microsoft Entra o hacer consultas con Microsoft Graph. También puede ir a la Herramienta Graph Explorer e iniciar sesión en su cuenta de Microsoft Entra para ver todas las entidades de servicio de su organización.

Dado que usa PowerShell, puede emplear el cmdlet siguiente para enumerar las entidades de servicio y sus identificadores.

Get-AzureADServicePrincipal

Asignación de la directiva a su entidad de servicio

Una vez tenga el valor de ObjectID de la entidad de servicio de la aplicación para el que quiere configurar la aceleración automática, ejecute el siguiente comando. Este comando asocia la directiva HRD que creó en el paso 1 con la entidad de servicio que encuentra en el paso 2.

Add-AzureADServicePrincipalPolicy 
    -Id <ObjectID of the Service Principal> 
    -RefObjectId <ObjectId of the Policy>

Puede repetir este comando para cada entidad de servicio a la que quiera agregar la directiva.

En caso de que una aplicación ya tenga una directiva HomeRealmDiscovery asignada, no puede agregar un segunda. En ese caso, cambie la definición de la directiva de detección del HRD que está asignada a la aplicación para agregar parámetros adicionales.

Comprobación de a qué entidades de servicio está asignada la directiva de HRD

Para comprobar qué aplicaciones tienen configurada la directiva de aceleración automática, use el cmdlet Get-AzureADPolicyAppliedObject. Pásele el valor de ObjectID de la directiva que quiera comprobar.

Get-AzureADPolicyAppliedObject -id <ObjectId of the Policy>

Pruebe la aplicación para comprobar que la nueva directiva funciona correctamente.

Enumere las aplicaciones para las que se configuró una directiva de HRD.

  1. Enumeración de todas las directivas creadas en la organización

    Get-AzureADPolicy
    

Apunte el valor de ObjectID de la directiva de la cual quiere enumerar las asignaciones.

  1. Enumeración de las entidades de servicio a las que se asignó la directiva

    Get-AzureADPolicyAppliedObject -id <ObjectId of the Policy>
    

Supresión de una directiva de HRD de una aplicación

  1. Obtención del valor de ObjectID

    Use el ejemplo anterior para obtener el valor de ObjectID de la directiva y el de la entidad de servicio de aplicación de la que quiere eliminarlo.

  2. Supresión de la asignación de directiva de la entidad de servicio de aplicación

    Remove-AzureADServicePrincipalPolicy -id <ObjectId of the Service Principal>  -PolicyId <ObjectId of the policy>
    
  3. Comprobación de que se eliminó correctamente; para ello, enumere las entidades de servicio a las que se asignó la directiva

    Get-AzureADPolicyAppliedObject -id <ObjectId of the Policy>
    

Configuración de la Directiva mediante el Probador de Graph

Desde la ventana del explorador de Microsoft Graph:

  1. Inicie sesión con uno de los roles indicados en la sección de requisitos previos.

  2. Conceda el consentimiento al permiso Policy.ReadWrite.ApplicationConfiguration.

  3. Use la directiva de detección del dominio de inicio para crear una nueva directiva.

  4. Publique la nueva directiva o una revisión para actualizar la directiva existente.

    PATCH /policies/homeRealmDiscoveryPolicies/{id}
        {
            "definition": [
            "{\"HomeRealmDiscoveryPolicy\":
            {\"AccelerateToFederatedDomain\":true,
            \"PreferredDomain\":\"federated.example.edu\",
            \"AlternateIdLogin\":{\"Enabled\":true}}}"
        ],
            "displayName": "Home Realm Discovery auto acceleration",
            "isOrganizationDefault": true
        }
    
  5. Para ver la nueva directiva, ejecute la siguiente consulta:

    GET /policies/homeRealmDiscoveryPolicies/{id}
    
  6. Para asignar la nueva directiva a una aplicación:

    POST /servicePrincipals/{id}/homeRealmDiscoveryPolicies/$ref
    

    O bien,

    POST /servicePrincipals(appId='{appId}')/homeRealmDiscoveryPolicies/$ref
    
  7. Enumeración de las entidades de servicio a las que se asignó la directiva

    GET /policies/homeRealmDiscoveryPolicies/{ObjectId of the policy}/appliesTo
    
  8. Para eliminar la directiva de HRD que ha creado, ejecute la consulta:

    DELETE /policies/homeRealmDiscoveryPolicies/{id}
    
  9. Eliminación de la asignación de directiva de la entidad de servicio

    DELETE /servicePrincipals/{id}/homeRealmDiscoveryPolicies/{policyId}/$ref
    

    o bien,

    DELETE /servicePrincipals(appId='{appId}')/homeRealmDiscoveryPolicies/{policyId}/$ref
    
  10. Comprobación de que se eliminó correctamente; para ello, enumere las entidades de servicio a las que se asignó la directiva

    GET /policies/homeRealmDiscoveryPolicies/{ObjectId of the policy}/appliesTo
    

Pasos siguientes