Configuración de entidades de certificación

En este artículo, se describe la configuración avanzada del Servicio de autenticación federada (FAS) para que se integre en los servidores de la entidad de certificación (CA). La consola de administración de FAS no admite la mayoría de estas configuraciones. En las instrucciones, se usan las API de PowerShell que suministra el servicio FAS. Debe tener conocimientos básicos de PowerShell para poder ejecutar las instrucciones de este artículo.

Configurar varios servidores de CA para usar en FAS

Puede utilizar la consola de administración de FAS para configurar FAS con varias CA al crear o modificar una regla:

Modifique la regla con dos CA.

Todas las CA que seleccione deben publicar la plantilla de certificado Citrix_SmartcardLogon (o cualquier plantilla que haya elegido en la regla).

Si una de las CA que quiere usar no está publicando la plantilla deseada, siga el pasoConfigurar una entidad de certificación para la CA.

Nota:

No es necesario realizar el paso Autorizar este servicio para cada CA, ya que el certificado de autorización configurado en este paso se puede utilizar en cualquiera de las CA.

Cambios de comportamiento previstos

Después de configurar el servidor FAS con varios servidores de CA, la generación de certificados de usuario se distribuye entre todos los servidores de CA configurados. Además, si se produce un error en uno de los servidores de CA configurados, el servidor FAS cambia a otro servidor disponible de la entidad de certificación.

Configurar la entidad de certificación de Microsoft para el acceso por TCP

FAS accede a la CA de Microsoft mediante DCOM. DCOM usa el puerto 135 para detectar el puerto en el que el servicio está escuchando. De forma predeterminada, el puerto de escucha se asigna de forma dinámica. Esto puede dar lugar a complejidades a la hora de implantar la seguridad del firewall. Por lo tanto, Microsoft tiene una opción para configurar un puerto estático. Para configurar un puerto estático en Microsoft CA, seleccione Inicio > Ejecutar > dcomcnfg.exe para abrir el panel de configuración de DCOM. Expanda Equipos > Mi equipo > Configuración de DCOM para mostrar el nodo de solicitudes de CertSrv. A continuación, modifique las propiedades de la aplicación CertSrv Request DCOM:

imagen traducida

Cambie los Puntos finales para seleccionar un dispositivo de punto final estático y especifique un número de puerto TCP (900 en el gráfico anterior).

En este ejemplo, el firewall debe permitir los puertos 135 y 900.

Para aplicar el cambio, reinicie la entidad de certificación de Microsoft.

No es necesario configurar el servidor del servicio FAS (o cualquier otra máquina que use la entidad de certificación) porque DCOM tiene una fase de negociación que usa el puerto RPC 135. Cuando un cliente quiere usar DCOM, se conecta al servicio de RPC de DCOM que está presente en el servidor y solicita acceso a un servidor DCOM determinado. Esta acción abre el puerto 900 (en este ejemplo) y el servidor DCOM indica al cliente que se conecte a ese puerto.

Generar previamente los certificados de usuario

El tiempo de inicio de sesión mejora significativamente para los usuarios si los certificados de usuario se generan previamente en el servidor de FAS. En las siguientes secciones, se describe cómo hacerlo con uno o varios servidores de FAS.

Obtener una lista de usuarios de Active Directory

Puede mejorar la generación de certificados si consulta AD y almacena la lista de usuarios en un archivo (por ejemplo, un archivo CSV), como se muestra en el siguiente ejemplo.

Import-Module ActiveDirectory

$searchbase = "cn=users,dc=bvt,dc=local" # AD User Base to Look for Users, leave it blank to search all
$filename = "user_list.csv" # Filename to save

if ($searchbase -ne ""){
    Get-ADUser -Filter {(UserPrincipalName -ne "null") -and (Enabled -eq "true")} -SearchBase $searchbase -Properties UserPrincipalName | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $filename
} else {
    Get-ADUser -Filter {(UserPrincipalName -ne "null") -and (Enabled -eq "true")} -Properties UserPrincipalName | Select UserPrincipalName | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $filename
}
<!--NeedCopy-->

Get-ADUser es un cmdlet estándar para consultar una lista de usuarios. El ejemplo anterior contiene un argumento de filtro para incluir en la lista solo a los usuarios con un UserPrincipalName y un estado de cuenta “enabled” (habilitado).

El argumento SearchBase limita la parte de Active Directory en que buscar usuarios. Puede omitirlo si quiere incluir a todos los usuarios de AD.

Nota:

Es posible que esta consulta devuelva una gran cantidad de usuarios.

El archivo CSV tiene un aspecto similar a:

imagen traducida

Servidor de FAS

El siguiente script de PowerShell utiliza la lista de usuarios previamente generada y crea a partir de ella una lista de los certificados de usuario.

Add-PSSnapin Citrix.A*
$csv = "user_list.csv"
$rule = "default" # rule/role in your admin console
$users = Import-Csv -encoding utf8 $csv
foreach ( $user in $users )
{
    $server = Get-FasServerForUser -UserPrincipalNames $user.UserPrincipalName
    if( $server.Server -ne $NULL) {
        New-FasUserCertificate -Address $server.Server -UserPrincipalName $user.UserPrincipalName -CertificateDefinition $rule"_Definition" -Rule $rule
    }
    if( $server.Failover -ne $NULL) {
        New-FasUserCertificate -Address $server.Failover -UserPrincipalName $user.UserPrincipalName -CertificateDefinition $rule"_Definition" -Rule $rule
    }
}
<!--NeedCopy-->

Si dispone de varios servidores de FAS, el certificado de un usuario concreto se genera dos veces: uno en el servidor principal y otro en el servidor de conmutación por error.

El script anterior está orientado a una regla denominada “default”. Si tiene otro nombre de regla (por ejemplo, “hola”), cambie la variable $rule en el script.

imagen traducida

Renovar un certificado de autorización de FAS

Puede renovar un certificado de autorización de FAS sin interrumpir a los usuarios de FAS.

Mediante la consola de administración de FAS

  • Haga clic en Volver a autorizar para generar una nueva solicitud de certificado de autorización de FAS: volver a autorizar

Debe aprobar manualmente la solicitud en la CA. Para obtener más información, consulte Autorizar el Servicio de autenticación federada.

  • Una vez que se genera un nuevo certificado de autorización, FAS proporciona una indicación de que aún no está asociado a sus reglas. Haga clic en la opción para actualizar la configuración a fin de asociar el nuevo certificado de autorización a sus reglas. Actualizar la configuración

Uso de PowerShell

Lleve a cabo los siguientes pasos:

  1. Cree un certificado de autorización: New-FasAuthorizationCertificate

  2. Anote el GUID del nuevo certificado de autorización, tal como lo devuelve: Get-FasAuthorizationCertificate

  3. Cambie el nuevo certificado de autorización: Set-FasCertificateDefinition –AuthorizationCertificate <GUID>

  4. Elimine el certificado de autorización antiguo: Remove-FasAuthorizationCertificate. Use la opción DeleteUserCerts $false para que la actividad del usuario no se interrumpa.

Desautorización de FAS y eliminación de certificados de FAS

Mediante la consola de administración de FAS

  • Haga clic en el enlace para desautorizar y elimine los certificados de autorización. Puede eliminar todos los certificados de usuario y todas las reglas (aunque no es necesario para borrar los certificados). Desautorizar

  • Si no elimina las reglas, cuando autorice FAS más tarde, aparecerá una advertencia: Advertencia

La advertencia indica que el certificado de autorización aún no está asociado a sus reglas. Haga clic en la opción para actualizar la configuración a fin de asociar el nuevo certificado de autorización a sus reglas.

Uso de PowerShell

Utilice el siguiente comando de PowerShell para eliminar el certificado de autorización y los certificados de usuario:

$AuthCert = Get-FasAuthorizationCertificate -Address localhost
Remove-FasAuthorizationCertificate -Address localhost -Id $AuthCert.Id
<!--NeedCopy-->

Nota:

Get-FasAuthorizationCertificate devuelve una lista de certificados de autorización y solicitudes de certificados de autorización pendientes, para que pueda inspeccionar el valor de $AuthCert antes de continuar con Remove-FasAuthorizationCertificate.

Puede quitar el certificado de autorización, pero conservar los certificados de usuario, estableciendo el parámetro DeleteUserCerts en false:

Remove-FasAuthorizationCertificate -Address localhost -Id $AuthCert.Id -DeleteUserCerts $false

FAS puede seguir utilizando los certificados de usuario restantes para los certificados de inicio de sesión y durante la sesión de VDA, lo que resulta útil a la hora de renovar la autorización de FAS. Para obtener información más detallada, consulte Renovar un certificado de autorización de FAS.

  • Puede quitar certificados de usuario de la siguiente manera:

Remove-FasUserCertificate -Address localhost

Este comando quita todos los certificados de usuario del servidor de FAS. El comando tiene opciones para filtrar el conjunto de certificados eliminados.

Nota:

Cuando FAS quita un certificado de autorización o de usuario de su almacenamiento interno, también elimina el par de claves asociado.

Autorización sin conexión

El certificado de autorización de FAS se puede solicitar sin conexión mediante PowerShell. Esto es adecuado para organizaciones que no quieran que su entidad de certificación emita un certificado de autorización a través de una solicitud de firma de certificado en línea.

  1. Durante la configuración inicial de FAS con la consola de administración, complete solo los primeros dos pasos: implementar las plantillas de certificado y configurar la entidad de certificación. Implementar plantillas y configurar la entidad de certificación

  2. Cargue los siguientes cmdlets de PowerShell en el servidor de FAS:

    Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1`
    <!--NeedCopy-->
    
  3. Genere el par de claves y cree la solicitud de firma de certificado con el siguiente cmdlet de PowerShell en el servidor de FAS:

    
    $AuthCertRequest = New-FasAuthorizationCertificateRequest -Address localhost $AuthCertRequest
    
    <!--NeedCopy-->
    

    Esto da como resultado:

    Resultado

    Nota:

    Las propiedades del par de claves generado dependen de la configuración de la clave de autorización de FAS. Para obtener más información, consulte el artículo Protección de claves privadas.

  4. Copie la solicitud de certificado en el disco:

    `$AuthCertRequest.CertificateRequest > c:\temp\authcert.csr
    <!--NeedCopy-->
    
  5. Presente el archivo de solicitud de certificado (en este ejemplo, authcert.csr) a su entidad de certificación, apruebe la solicitud y obtenga una respuesta de certificado.

    Los siguientes cinco pasos son específicos para el uso de una entidad de certificación empresarial de Microsoft; para otras CA, contacte con su proveedor de CA para obtener ayuda.

    • En el servidor de la entidad de certificación, agregue el complemento MMC de las plantillas de certificados. Haga clic con el botón secundario en la plantilla Citrix_RegistrationAuthority_ManualAuthorization y seleccione Duplicar plantilla. Seleccione la ficha General. Cambie el nombre y el período de validez. En este ejemplo, el nombre es Offline_RA y el período de validez es de dos años:

      Propiedades de plantilla de claves privadas

    • En el servidor de la entidad de certificación, agregue el complemento MMC de la entidad de certificación. Haga clic con el botón secundario en Plantillas de certificado. Seleccione Nueva y, a continuación, haga clic en Plantilla de certificado que se va a emitir. Elija la plantilla que creó.

    • Envíe la solicitud de firma de certificado a la entidad de certificación. Para ello, escriba lo siguiente en un símbolo del sistema de PowerShell presente en el servidor de FAS:

      certreq -submit -attrib "certificatetemplate:<certificate template from step 5a>" <certificate request file from step 4>
      <!--NeedCopy-->
      

      Por ejemplo:

      certreq -submit -attrib "certificatetemplate:Offline_RA" C:\temp\authcert.csr
      <!--NeedCopy-->
      

      Al ejecutar el comando anterior se obtiene el siguiente resultado:

      Resultado de la plantilla de certificado

      En este punto, es posible que aparezca una ventana con la lista de entidades de certificación. En este ejemplo, la entidad de certificación tiene habilitadas las inscripciones DCOM (arriba) y HTTP (abajo). Seleccione DCOM, si está disponible, y haga clic en Aceptar:

      Lista de entidades de certificación

      Tras especificar la entidad de certificación, el comando se completa y muestra el RequestID:

      Estado pendiente de solicitud de certificado

    • En el servidor de la entidad de certificación, en el complemento MMC de esta, haga clic en Solicitudes pendientes. Busque el ID de la solicitud. A continuación, haga clic con el botón secundario en la solicitud y elija Emitir.

    • Seleccione el nodo Certificados emitidos. Busque el certificado que se emitió (el ID de solicitud debe coincidir). Haga doble clic para abrir el certificado. Seleccione la ficha Detalles. Haga clic en Copiar a archivo. Se iniciará el Asistente para exportación de certificados. Haga clic en Siguiente. Seleccione las siguientes opciones para el formato de archivo:

      Asistente para exportar certificados de claves privadas

    El formato debe ser estándar de sintaxis de mensajes criptográficos – PKCS #7 Certificados (.P7B) y se debe seleccionar la opción para incluir todos los certificados en la ruta de certificación si es posible.

  6. Copie el archivo de certificado exportado en el servidor de FAS.

  7. Importe el certificado de autoridad de registro en el servidor de FAS. Para ello, introduzca los siguientes cmdlets de PowerShell en el servidor de FAS:

    Import-FasAuthorizationCertificateResponse -Address localhost -Id $AuthCertRequest.Id -Pkcs7CertificateFile <Certificate file from step 6>
    <!--NeedCopy-->
    

    Por ejemplo:

    Import-FasAuthorizationCertificateResponse -Address localhost -Id $AuthCertRequest.Id -Pkcs7CertificateFile C:\temp\response.p7b
    <!--NeedCopy-->
    

    Al ejecutar este comando se obtiene el siguiente resultado:

    Importar respuesta del certificado de autorización de FAS

  8. Compruebe la consola de administración de FAS. Debe mostrar que FAS ahora está autorizado.

    Autorizar servicio

    Nota:

    El paso Autorizar este servicio tiene una marca de verificación verde al lado.

  9. Continúe con la configuración creando una regla. Para obtener información más detallada, consulte Configurar reglas.

Información relacionada

Configuración de entidades de certificación