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 con los servidores de la entidad de certificación que no admite la consola de administración de FAS. 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 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 entidad de certificación de Microsoft, abra el panel de configuración de DCOM y modifique las propiedades de “CertSrv Request”:

Imagen localizada

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:

Imagen localizada

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
}

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: Esta consulta puede devolver una gran cantidad de usuarios.

El archivo CSV tiene un aspecto similar a:

Imagen localizada

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

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.

Imagen localizada

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:

Imagen localizada

Lleve a cabo los siguientes pasos:

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

  2. Escriba el GUID del nuevo certificado de autorización que devuelve: Get-FasAuthorizationCertificate

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

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

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

  6. Elimine el certificado anterior de autorización: Remove-FasAuthorizationCertificate

Información relacionada