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:
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 utilizar no está publicando la plantilla deseada, realice el paso Configurar 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 cambiará a otro servidor disponible de la entidad de certificación.
Configurar la entidad de certificación de Microsoft para el acceso por TCP
De forma predeterminada, la entidad de certificación de Microsoft utiliza DCOM para el acceso. Esto puede provocar complicaciones cuando se implemente la seguridad del firewall, por lo que Microsoft puede cambiar a un puerto TCP estático. En la CA de Microsoft, use Inicio>Ejecutar>dcomcnfg.exe para abrir el panel de configuración DCOM, expanda Equipos>Mi equipo>Configuración DCOM para mostrar el nodo CertSrv Request y, a continuación, modifique las propiedades de la aplicación DCOM de la solicitud CertSrv:
Cambie los “puntos finales” para seleccionar un dispositivo de punto final estático y especifique un número de puerto TCP (900 en la imagen de arriba).
Reinicie la entidad de certificación de Microsoft y envíe una solicitud de certificado. Si ejecuta netstat –a –n –b
, debería ver que ahora certsvr escucha en el puerto 900:
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. Cuando un cliente quiere usar DCOM, se conecta al servicio de RPC de DCOM que está presente en el certificado de servidor y solicita acceso a un servidor DCOM determinado. Esta acción abre el puerto 900, y el servidor DCOM indica al servidor de FAS cómo conectarse.
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:
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 generará 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.
Renovar certificados de la entidad de registro
Si utiliza más de un servidor de FAS, puede renovar un certificado de autorización de FAS sin que ello afecte a los usuarios con sesión iniciada.
Nota:
También puede usar la interfaz gráfica de usuario para volver a autorizar FAS:
Lleve a cabo los siguientes pasos:
-
Cree un nuevo certificado de autorización:
New-FasAuthorizationCertificate
-
Escriba el GUID del nuevo certificado de autorización que devuelve:
Get-FasAuthorizationCertificate
-
Coloque el servidor de FAS en el modo de mantenimiento:
Set-FasServer –Address <FAS server> -MaintenanceMode $true
-
Cambie el nuevo certificado de autorización:
Set-FasCertificateDefinition –AuthorizationCertificate <GUID>
-
Desactive el modo de mantenimiento del servidor de FAS:
Set-FasServer –Address <FAS server> -MaintenanceMode $false
-
Elimine el certificado anterior de autorización:
Remove-FasAuthorizationCertificate
Información relacionada
- El artículo Instalación y configuración es la referencia principal para la instalación y la configuración de este servicio.
- Las implementaciones más comunes del Servicio de autenticación federada se resumen en el artículo Arquitecturas de implementación.
- En Configuración avanzada, se presentan otros artículos de “procedimientos”.