Configuración de la autoridad de certificación

Este artículo describe la configuración avanzada de Federated Authentication Service (FAS) para integrarse con servidores de autoridad 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 un conocimiento básico 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 plantilla que hayas elegido en tu regla).

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

Nota:

No tienes que realizar el paso Autorizar este servicio para cada CA, ya que 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 cambiará a otro servidor CA disponible.

Configurar la autoridad de certificación de Microsoft para acceso TCP

De forma predeterminada, la CA de Microsoft usa DCOM para el acceso. Esto puede generar complejidades al implementar la seguridad del firewall, por lo que Microsoft tiene una disposición para cambiar a un puerto TCP estático. En la CA de Microsoft, usa 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, y 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).

Reinicia la autoridad de certificación de Microsoft y envía una solicitud de certificado. Si ejecutas netstat –a –n –b, deberías ver que certsvr ahora está escuchando en el puerto 900:

imagen localizada

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

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 la parte de AD donde buscar usuarios. Puedes omitirlo si deseas 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 generará dos veces: una en el servidor principal y la otra 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’), simplemente cambia la variable $rule en el script.

imagen localizada

Renovar certificados de autoridad de registro

Si se usa más de un servidor FAS, puedes renovar un certificado de autorización de FAS sin afectar a los usuarios que han iniciado sesión.

Nota:

También puedes usar la GUI para volver a autorizar FAS:

imagen localizada

Completa la siguiente secuencia:

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

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

  3. Pon el servidor FAS en modo de mantenimiento: Set-FasServer –Address <FAS server> -MaintenanceMode $true

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

  5. Saca el servidor FAS del modo de mantenimiento: Set-FasServer –Address <FAS server> -MaintenanceMode $false

  6. Elimina el certificado de autorización antiguo: Remove-FasAuthorizationCertificate

Información relacionada

Configuración de la autoridad de certificación