Share via


Cómo configurar la autenticación de Windows para Microsoft Entra ID con el flujo basado en la confianza de entrada

En este artículo, se describe cómo implementar el flujo de autenticación basado en la confianza de entrada para permitir que los clientes unidos a Active Directory (AD) que ejecutan Windows 10, Windows Server 2012 o versiones superiores de Windows se autentiquen en una instancia de Azure SQL Managed Instance con la autenticación de Windows.

En este artículo, también se incluyen los pasos para rotar una clave de Kerberos para su cuenta de servicio en Microsoft Entra ID (antes llamado Azure Active Directory) y el objeto de dominio de confianza, además de los pasos para quitar un objeto de dominio de confianza y toda la configuración de Kerberos, si lo desea.

La habilitación del flujo de autenticación basado en la confianza de entrada es un paso de la configuración de la autenticación de Windows para Azure SQL Managed Instance mediante Microsoft Entra ID y Kerberos. El flujo interactivo moderno está disponible para clientes habilitados que ejecutan Windows 10 20H1, Windows Server 2022 o una versión superior de Windows.

Nota:

Microsoft Entra ID era conocido anteriormente como Azure Active Directory (Azure AD).

Permisos

Necesita lo siguiente para completar los pasos descritos en este artículo:

  • Nombre de usuario y contraseña de administrador de Active Directory local
  • Nombre de usuario y contraseña de la cuenta de administrador global de Microsoft Entra.

Requisitos previos

Para implementar el flujo de autenticación basado en la confianza de entrada, primero debe asegurarse de que se cumplen los requisitos previos siguientes:

Requisito previo Descripción
Los clientes deben ejecutar Windows 10, Windows Server 2012 o una versión superior de Windows.
Los clientes se deben unir a AD. El dominio debe tener un nivel funcional de Windows Server 2012 o versiones superiores. Para determinar si el cliente se unió a AD, ejecute el comando dsregcmd: dsregcmd.exe /status
Módulo de administración de la autenticación de Azure AD híbrido. Este módulo de PowerShell proporciona características de administración para la instalación en el entorno local.
Inquilino de Azure.
Suscripción de Azure en el mismo inquilino de Microsoft Entra que planea utilizar para la autenticación.
Microsoft Entra Connect instalado. Entornos híbridos donde existen identidades tanto en Microsoft Entra ID como en AD.

Creación y configuración del objeto de dominio de confianza Kerberos de Azure AD

Para crear y configurar el objeto de dominio de confianza Kerberos de Microsoft Entra, instalará el módulo de PowerShell para la administración de autenticación de Azure AD híbrido.

A continuación, use el módulo de PowerShell de administración de autenticación híbrida de Azure AD para configurar un objeto de dominio de confianza en el dominio de AD local y registrar la información de confianza con Microsoft Entra ID. Esto crea una relación de confianza de entrada en la instancia de AD local, lo que permite que Microsoft Entra ID confíe en AD local.

Configuración del objeto de dominio de confianza

Para configurar el objeto de dominio de confianza, instale primero el módulo de PowerShell para la administración de la autenticación de Azure AD híbrido.

Instalación del módulo de PowerShell para la administración de la autenticación de Azure AD local

  1. Inicie una sesión de Windows PowerShell con la opción Ejecutar como administrador.

  2. Use el script siguiente para instalar el módulo de PowerShell para la administración de la autenticación de Azure AD híbrido. El script:

    • Habilita TLS 1.2 para la comunicación.
    • Instala el proveedor de paquetes NuGet.
    • Registra el repositorio PSGallery.
    • Instala el módulo PowerShellGet.
    • Instala el módulo de PowerShell para la administración de la autenticación de Azure AD local.
      • El módulo de PowerShell para la administración de la autenticación de Azure AD híbrido utiliza el módulo AzureADPreview, que proporciona una característica de administración de Microsoft Entra avanzada.
      • Como protección frente a conflictos de instalación innecesarios con el módulo de Azure AD PowerShell, este comando incluye la marca de la opción –AllowClobber.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Install-PackageProvider -Name NuGet -Force

if (@(Get-PSRepository | ? {$_.Name -eq "PSGallery"}).Count -eq 0){
    Register-PSRepository -DefaultSet-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
}

Install-Module -Name PowerShellGet -Force

Install-Module -Name AzureADHybridAuthenticationManagement -AllowClobber

Creación del objeto de dominio de confianza

  1. Inicie una sesión de Windows PowerShell con la opción Ejecutar como administrador.

  2. Establezca los parámetros comunes. Personalice el script siguiente antes de ejecutarlo.

    • Establezca el parámetro $domain en el nombre de dominio de Active Directory local.
    • Cuando Get-Credential lo solicite, escriba el nombre de usuario y la contraseña de un administrador de Active Directory local.
    • Establezca el parámetro $cloudUserName en el nombre de usuario de una cuenta con privilegios de administrador global para obtener acceso a la nube de Microsoft Entra.

    Nota:

    Si desea usar su cuenta de inicio de sesión de Windows actual para el acceso a Active Directory local, puede omitir el paso en el que se asignan credenciales al parámetro $domainCred. Si usa este enfoque, no incluya el parámetro -DomainCredential en los comandos de PowerShell después de este paso.

    $domain = "your on-premesis domain name, for example contoso.com"
    
    $domainCred = Get-Credential
    
    $cloudUserName = "Azure AD user principal name, for example admin@contoso.onmicrosoft.com"
    
  3. Compruebe la configuración actual de Kerberos del dominio.

    Ejecute el comando siguiente para comprobar la configuración actual de Kerberos del dominio:

    Get-AzureAdKerberosServer -Domain $domain `
        -DomainCredential $domainCred `
        -UserPrincipalName $cloudUserName
    

    Si es la primera vez que usa algún comando Kerberos de Microsoft Entra, se le pide acceso a la nube de Microsoft Entra.

    • Introduzca la contraseña para su cuenta de administrador global de Microsoft Entra.
    • Si la organización utiliza otros métodos de autenticación modernos, como la autenticación multifactor de Microsoft Entra o la tarjeta inteligente, siga las instrucciones que se solicitan para el inicio de sesión.

    Si es la primera vez que configura las opciones de Kerberos de Microsoft Entra, el cmdlet Get-AzureAdKerberosServer mostrará información vacía, como en la salida de ejemplo siguiente:

    ID                  :
    UserAccount         :
    ComputerAccount     :
    DisplayName         :
    DomainDnsName       :
    KeyVersion          :
    KeyUpdatedOn        :
    KeyUpdatedFrom      :
    CloudDisplayName    :
    CloudDomainDnsName  :
    CloudId             :
    CloudKeyVersion     :
    CloudKeyUpdatedOn   :
    CloudTrustDisplay   :
    

    Si el dominio ya admite la autenticación FIDO, el cmdlet Get-AzureAdKerberosServer muestra información de la cuenta de servicio de Microsoft Entra, como en la siguiente salida de ejemplo. El campo CloudTrustDisplay devuelve un valor vacío.

    ID                  : 25614
    UserAccount         : CN=krbtgt-AzureAD, CN=Users, DC=aadsqlmi, DC=net
    ComputerAccount     : CN=AzureADKerberos, OU=Domain Controllers, DC=aadsqlmi, DC=net
    DisplayName         : krbtgt_25614
    DomainDnsName       : aadsqlmi.net
    KeyVersion          : 53325
    KeyUpdatedOn        : 2/24/2022 9:03:15 AM
    KeyUpdatedFrom      : ds-aad-auth-dem.aadsqlmi.net
    CloudDisplayName    : krbtgt_25614
    CloudDomainDnsName  : aadsqlmi.net
    CloudId             : 25614
    CloudKeyVersion     : 53325
    CloudKeyUpdatedOn   : 2/24/2022 9:03:15 AM
    CloudTrustDisplay   :
    
  4. Agregue el objeto de dominio de confianza.

    Ejecute el cmdlet Set-AzureAdKerberosServer PowerShell para agregar el objeto de dominio de confianza. No olvide incluir el parámetro -SetupCloudTrust. Si no hay ninguna cuenta de servicio de Microsoft Entra, este comando crea una nueva cuenta de servicio de Microsoft Entra. Si ya hay una cuenta de servicio de Microsoft Entra, este comando solo crea el objeto de dominio de confianza solicitado.

    Set-AzureADKerberosServer -Domain $domain -UserPrincipalName $cloudUserName -DomainCredential $domainCred -SetupCloudTrust
    

    Nota:

    En un bosque de varios dominios, para evitar el error LsaCreateTrustedDomainEx 0x549 al ejecutar el comando en un dominio secundario:

    1. Ejecute el comando en el dominio raíz (incluya el parámetro -SetupCloudTrust).
    2. Ejecute el mismo comando en el dominio secundario sin el parámetro -SetupCloudTrust.

    Después de crear el objeto de dominio de confianza, puede comprobar la configuración actualizada de Kerberos con el cmdlet Get-AzureAdKerberosServer de PowerShell, tal como se mostró en el paso anterior. Si el cmdlet Set-AzureAdKerberosServer se ejecutó correctamente con el parámetro -SetupCloudTrust, el campo CloudTrustDisplay ahora debería devolver Microsoft.AzureAD.Kdc.Service.TrustDisplay, como en la salida de ejemplo siguiente:

    ID                  : 25614
    UserAccount         : CN=krbtgt-AzureAD, CN=Users, DC=aadsqlmi, DC=net
    ComputerAccount     : CN=AzureADKerberos, OU=Domain Controllers, DC=aadsqlmi, DC=net
    DisplayName         : krbtgt_25614
    DomainDnsName       : aadsqlmi.net
    KeyVersion          : 53325
    KeyUpdatedOn        : 2/24/2022 9:03:15 AM
    KeyUpdatedFrom      : ds-aad-auth-dem.aadsqlmi.net
    CloudDisplayName    : krbtgt_25614
    CloudDomainDnsName  : aadsqlmi.net
    CloudId             : 25614
    CloudKeyVersion     : 53325
    CloudKeyUpdatedOn   : 2/24/2022 9:03:15 AM
    CloudTrustDisplay   : Microsoft.AzureAD.Kdc.Service.TrustDisplay
    

    Nota:

    Las nubes soberanas de Azure requieren establecer la propiedad TopLevelNames, que se establece en windows.net de forma predeterminada. Las implementaciones en la nube soberana de Azure de SQL Managed Instance usan un nombre de dominio de nivel superior diferente, como usgovcloudapi.net para Azure US Government. Establezca el objeto de dominio de confianza en ese nombre de dominio de nivel superior mediante el siguiente comando de PowerShell: Set-AzureADKerberosServer -Domain $domain -DomainCredential $domainCred -CloudCredential $cloudCred -SetupCloudTrust -TopLevelNames "usgovcloudapi.net,windows.net". Puede comprobar la configuración mediante el siguiente comando de PowerShell: Get-AzureAdKerberosServer -Domain $domain -DomainCredential $domainCred -UserPrincipalName $cloudUserName | Select-Object -ExpandProperty CloudTrustDisplay.

Configuración del objeto de directiva de grupo (GPO)

  1. Identifique su cuenta empresarial de Microsoft Entra ID.

  2. Implemente la configuración de directiva de grupo siguiente en máquinas cliente con el flujo basado en la confianza de entrada:

    1. Edite la configuración de directiva Administrative Templates\System\Kerberos\Specify KDC proxy servers for Kerberos clients.

    2. Seleccione Habilitado.

    3. En Opciones, seleccione Mostrar…. Se abrirá el cuadro de diálogo Mostrar contenido.

      Screenshot of dialog box to enable 'Specify KDC proxy servers for Kerberos clients'. The 'Show Contents' dialog allows input of a value name and the related value.

    4. Defina la configuración de los servidores proxy KDC mediante asignaciones, como se indica a continuación. Sustituya la cuenta empresarial de Microsoft Entra ID por el marcador de posición your_Azure_AD_tenant_id. Tenga en cuenta el espacio de después de https y antes del / de cierre en la asignación de valores.

      Nombre del valor Valor
      KERBEROS.MICROSOFTONLINE.COM <https login.microsoftonline.com:443:your_Azure_AD_tenant_id/kerberos />

      Screenshot of the 'Define KDC proxy server settings' dialog box. A table allows input of multiple rows. Each row consists of a value name and a value.

    5. Seleccione Aceptar para cerrar el cuadro de diálogo "Mostrar contenido".

    6. Seleccione Aplicar en el cuadro de diálogo "Specify KDC proxy servers for Kerberos clients" (Especificar servidores proxy KDC para clientes Kerberos).

Rotación de la clave Kerberos

Puede rotar la clave Kerberos periódicamente para la cuenta de servicio de Microsoft Entra creada y el objeto de dominio de confianza con fines de administración.

Set-AzureAdKerberosServer -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName -SetupCloudTrust `
   -RotateServerKey

Una vez que se rota la clave, la propagación de la clave modificada entre los servidores KDC de Kerberos tarda varias horas. Debido al tiempo que conlleva distribuir las claves, solo puede rotar una clave cada 24 horas. Si por cualquier motivo debe rotar la clave nuevamente dentro de ese plazo (por ejemplo, justo después de crear el objeto de dominio de confianza), puede agregar el parámetro -Force:

Set-AzureAdKerberosServer -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName -SetupCloudTrust `
   -RotateServerKey -Force

Eliminación del objeto de dominio de confianza

Para quitar el objeto de dominio de confianza, utilice el comando siguiente:

Remove-AzureADKerberosTrustedDomainObject -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName

Este comando solo quitará el objeto de dominio de confianza. Si el dominio admite la autenticación FIDO, es posible quitar el objeto de dominio de confianza a la vez que conserva la cuenta de servicio de Microsoft Entra que se necesita para el servicio de autenticación FIDO.

Eliminación de toda la configuración de Kerberos

Para quitar la cuenta de servicio de Microsoft Entra y el objeto de dominio de confianza, utilice el comando siguiente:

Remove-AzureAdKerberosServer -Domain $domain `
   -DomainCredential $domainCred `
   -UserPrincipalName $cloudUserName

Pasos siguientes

Obtenga más información sobre la implementación de la autenticación de Windows para entidades de seguridad de Microsoft Entra en Azure SQL Managed Instance: