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 que no son compatibles con la consola de administración de FAS. Las instrucciones utilizan 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 la autoridad de certificación de Microsoft para el acceso TCP
Por defecto, la autoridad de certificación de Microsoft utiliza DCOM para el acceso. Esto puede generar complejidades al implementar la seguridad del firewall, por lo que Microsoft ofrece una opción para cambiar a un puerto TCP estático. En la autoridad de certificación de Microsoft, abre el panel de configuración de DCOM y edita las propiedades de la aplicación DCOM “CertSrv Request”:

Cambia los “Endpoints” 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:

No es necesario configurar el servidor FAS (ni ninguna otra máquina que utilice la autoridad de certificación), porque DCOM tiene una etapa de negociación que utiliza el puerto RPC. Cuando un cliente necesita usar DCOM, se conecta al servicio DCOM RPC en el servidor de certificados y solicita acceso a un servidor DCOM particular. Esto activa la apertura del puerto 900, y el servidor DCOM indica al servidor FAS cómo conectarse.
Pregenerar certificados de usuario
El tiempo de inicio de sesión para los usuarios mejorará significativamente cuando los certificados de usuario se pregeneren 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 el 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 ‘enabled’.
El argumento SearchBase restringe la parte del AD donde buscar usuarios. Puedes omitirlo si quieres incluir a todos los usuarios del AD. Nota: Esta consulta podría devolver un gran número de usuarios.
El CSV se ve algo así:

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 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.

Renovar certificados de autoridad de registro
Si hay más de un servidor FAS en uso, 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:
Completa la siguiente secuencia:
-
Crea un nuevo certificado de autorización:
New-FasAuthorizationCertificate -
Anota el GUID del nuevo certificado de autorización, tal como lo devuelve:
Get-FasAuthorizationCertificate -
Pon el servidor FAS en modo de mantenimiento:
Set-FasServer –Address <FAS server> -MaintenanceMode $true -
Intercambia el nuevo certificado de autorización:
Set-FasCertificateDefinition –AuthorizationCertificate <GUID> -
Saca el servidor FAS del modo de mantenimiento:
Set-FasServer –Address <FAS server> -MaintenanceMode $false -
Elimina el certificado de autorización antiguo:
Remove-FasAuthorizationCertificate
Información relacionada
- El artículo Instalar y configurar es la referencia principal para la instalación y configuración de FAS.
- Las implementaciones comunes de Federated Authentication Service se resumen en el artículo Arquitecturas de implementación.
- Otros artículos “cómo hacer” se presentan en el artículo Configuración avanzada.
