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”:

imagen localizada

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:

imagen localizada

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í:

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

imagen localizada

Completa la siguiente secuencia:

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

  2. Anota el 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