Configuración de la entidad de certificación

Este artículo describe la configuración avanzada de Federated Authentication Service (FAS) para integrarse con los servidores de la entidad de certificación (CA). La mayoría de estas configuraciones no son compatibles con la consola de administración de FAS. Las instrucciones usan las API de PowerShell proporcionadas por FAS. Debes tener conocimientos básicos de PowerShell antes de ejecutar cualquier instrucción de este artículo.

Configurar varios servidores CA para usar en FAS

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

Editar regla con dos CA.

Todas las CA que selecciones deben publicar la plantilla de certificado Citrix_SmartcardLogon (o cualquier otra plantilla que hayas elegido en tu regla).

Si una de las CA que quieres usar no publica la plantilla deseada, realiza el paso Configurar una entidad de certificación para esa CA.

Nota:

No tienes que realizar el paso Autorizar este servicio para cada CA, porque el certificado de autorización configurado en este paso se puede usar en cualquiera de tus CA.

Cambios de comportamiento esperados

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

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

FAS accede a la CA de Microsoft mediante DCOM. DCOM usa el puerto 135 para descubrir el puerto en el que el servicio está escuchando. De forma predeterminada, el puerto de escucha se asigna dinámicamente. Esto puede generar complejidades al implementar la seguridad del firewall. Por lo tanto, Microsoft tiene una disposición para configurar un puerto estático. Para configurar un puerto estático en la CA de Microsoft, selecciona Inicio > Ejecutar > dcomcnfg.exe para abrir el panel de Configuración de DCOM. Expande Equipos > Mi PC > Configuración de DCOM para mostrar el nodo Solicitud de CertSrv. Luego, modifica las propiedades de la aplicación DCOM Solicitud de CertSrv:

imagen localizada

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

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

Reinicia la entidad de certificación de Microsoft para aplicar el cambio.

No es necesario configurar el servidor FAS (ni ninguna otra máquina que use la entidad de certificación) porque DCOM tiene una etapa de negociación que usa el puerto RPC 135. Cuando un cliente necesita usar DCOM, se conecta al servicio DCOM RPC en el servidor y solicita acceso a un servidor DCOM en particular. Esto activa la apertura del puerto 900 (en este ejemplo), y el servidor DCOM indica al cliente que se conecte a ese puerto.

Pre-generar certificados de usuario

El tiempo de inicio de sesión para los usuarios mejorará significativamente cuando los certificados de usuario se pre-generen dentro del servidor FAS. Las siguientes secciones describen cómo se puede hacer, ya sea para servidores FAS únicos o múltiples.

Obtener una lista de usuarios de Active Directory

Puedes mejorar la generación de certificados consultando AD y almacenando 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 listar solo los usuarios con un UserPrincipalName y un estado de cuenta ‘habilitado’.

El argumento SearchBase restringe qué parte de AD buscará usuarios. Puedes dejarlo si quieres incluir a todos los usuarios de AD.

Nota:

Esta consulta podría devolver un gran número de usuarios.

El CSV se ve algo así:

  • imagen localizada

Servidor FAS

El siguiente script de PowerShell toma la lista de usuarios generada previamente y crea una lista de 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 tienes más de un servidor FAS, el certificado de un usuario en particular se genera dos veces: uno en el servidor principal y el otro en el servidor de conmutación por error.

El script anterior está diseñado para una regla llamada ‘default’. Si tienes un nombre de regla diferente (por ejemplo, ‘hello’), cambia la variable $rule en el script.

  • imagen localizada

Renovar el certificado de autorización de FAS

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

Usar la consola de administración de FAS

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

Debes aprobar manualmente la solicitud en la CA. Para obtener más información, consulta Autorizar Federated Authentication Service.

-  Una vez que se ha generado un nuevo certificado de autorización, FAS indica que aún no está asociado con tus reglas. Haz clic en **Actualizar la configuración** para asociar el nuevo certificado de autorización con tus reglas. ![Actualizar la configuración](/en-us/federated-authentication-service/2411/media/update-the-config-fas-admin-console.png)

Usar PowerShell

Completa la siguiente secuencia:

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

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

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

  4. Elimina el certificado de autorización antiguo: Remove-FasAuthorizationCertificate. Asegúrate de usar la opción DeleteUserCerts $false para que la actividad del usuario no se interrumpa.

Desautorizar FAS y eliminar certificados FAS

Usar la consola de administración de FAS

-  Haz clic en el enlace **Desautorizar** y elimina los certificados de autorización. Puedes eliminar todos los certificados de usuario y todas las reglas (aunque no es necesario para borrar los certificados).
-  ![Desautorizar](/en-us/federated-authentication-service/2411/media/deauthorize-service-and-fas-admin-console.png)

-  Si no eliminas las reglas, cuando autorices FAS más tarde, recibirás una advertencia: ![Advertencia](/en-us/federated-authentication-service/2411/media/update-the-config-fas-admin-console.png)

La advertencia indica que el certificado de autorización aún no está asociado con tus reglas. Haz clic en Actualizar la configuración para asociar el nuevo certificado de autorización con tus reglas.

Usar PowerShell

Usa 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 inspecciones el valor de `$AuthCert` antes de continuar con `Remove-FasAuthorizationCertificate`.

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

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

Los certificados de usuario restantes pueden seguir siendo utilizables por FAS para el inicio de sesión de VDA y los certificados de sesión, lo cual es útil al renovar la autorización de FAS. Para obtener más detalles, consulta Renovar el certificado de autorización de FAS.

  • Puedes quitar los certificados de usuario de esta manera:

Remove-FasUserCertificate -Address localhost

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

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 quieren que su autoridad 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 mediante la consola de administración, completa solo los dos primeros pasos: Implementar plantillas de certificado y Configurar una autoridad de certificación. Implementar plantillas y configurar una autoridad de certificación

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

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

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

    Esto da como resultado:

    Resultado

    Nota:

    Las propiedades del par de claves generado se determinan mediante la configuración de la clave de autorización de FAS. Para obtener más detalles, consulta Protección de clave privada.

  4. Copia la solicitud de certificado al disco:

    `$AuthCertRequest.CertificateRequest > c:\temp\authcert.csr
    <!--NeedCopy-->
    
  5. Presenta el archivo de solicitud de certificado (en este ejemplo, authcert.csr) a tu autoridad de certificación, aprueba la solicitud y obtén una respuesta de certificado.

    Los siguientes cinco pasos son específicos para usar una autoridad de certificación de Microsoft Enterprise; para otras CA, contacta con tu proveedor de CA para obtener ayuda.

    • En tu servidor de autoridad de certificación, agrega el complemento MMC de Plantillas de certificado. Haz clic con el botón derecho en la plantilla Citrix_RegistrationAuthority_ManualAuthorization y selecciona Duplicar plantilla. Selecciona la ficha General. Cambia 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 la plantilla de claves privadas

    • En tu servidor de autoridad de certificación, agrega el complemento MMC de autoridad de certificación. Haz clic con el botón derecho en Plantillas de certificado. Selecciona Nuevo y, a continuación, haz clic en Plantilla de certificado para emitir. Elige la plantilla que creaste.

    • Envía la solicitud de firma de certificado a tu autoridad de certificación escribiendo lo siguiente en un símbolo del sistema de PowerShell en el servidor 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-->
      

      La ejecución del comando anterior da como resultado:

      Resultado de la plantilla de certificado

      En este punto, puede aparecer una ventana de Lista de autoridades de certificación. La autoridad de certificación de este ejemplo tiene la inscripción DCOM (arriba) y HTTP (abajo) habilitadas. Selecciona DCOM, si está disponible, y luego haz clic en Aceptar:

      Lista de autoridades de certificación

      Una vez especificada la autoridad de certificación, el comando se completa y muestra el RequestID:

      Estado pendiente de la solicitud de certificado

    • En el servidor de autoridad de certificación, en el complemento MMC de autoridad de certificación, haz clic en Solicitudes pendientes. Busca el ID de solicitud. Luego, haz clic con el botón derecho en la solicitud y elige Emitir.

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

      Asistente para exportación de certificados de claves privadas

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

  6. Copia el archivo de certificado exportado al servidor FAS.

  7. Importa el certificado de la autoridad de registro en el servidor FAS introduciendo el siguiente cmdlet de PowerShell en el servidor 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-->
    

    La ejecución de este comando da como resultado:

    Importar respuesta de certificado de autorización de FAS

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

    Autorizar servicio

    Nota:

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

  9. Continúa la configuración creando una regla. Para obtener más detalles, consulta Configurar reglas.

Información relacionada

Configuración de la entidad de certificación