ADC

Configurar Single Sign-On

Configurar Single Sign-On (SSO) de NetScaler para autenticar mediante suplantación es más sencillo que configurar SSO para autenticarse por delegación y, por lo tanto, es preferible cuando la configuración lo permite. Crea una cuenta en KCD. Puede usar la contraseña del usuario.

Si no tiene la contraseña del usuario, puede configurar NetScaler SSO para que se autentique por delegación. Aunque es más complejo que configurar el SSO para autenticarse mediante suplantación, el método de delegación proporciona flexibilidad en el sentido de que las credenciales de un usuario pueden no estar disponibles para el dispositivo NetScaler en todas las circunstancias.

Para la suplantación o la delegación, también debe habilitar la autenticación integrada en el servidor de aplicaciones web.

Habilitar la autenticación integrada en el servidor de aplicaciones web

Para configurar NetScaler Kerberos SSO en cada servidor de aplicaciones web que administra el SSO Kerberos, use la interfaz de configuración en ese servidor para configurar el servidor para que requiera autenticación. Seleccione la autenticación Kerberos (negociar) por preferencia, con opción de reserva NTLM para los clientes que no admiten Kerberos.

A continuación se presentan instrucciones para configurar Microsoft Internet Information Server (IIS) para que requiera autenticación. Si el servidor de aplicaciones web utiliza software distinto de IIS, consulte la documentación del software de ese servidor web para obtener instrucciones.

Para configurar Microsoft IIS de modo que utilice la autenticación integrada

  1. Inicie sesión en el servidor IIS y abra el Administrador de Internet Information Services.
  2. Seleccione el sitio web para el que quiere habilitar la autenticación integrada. Para habilitar la autenticación integrada para todos los servidores web de IIS administrados por IISM, configure los valores de autenticación para el sitio web predeterminado. Para habilitar la autenticación integrada para servicios individuales (como Exchange, Exadmin, ExchWeb y Public), configure estos ajustes de autenticación para cada servicio de forma individual.
  3. Abra el cuadro de diálogo Propiedades del sitio web predeterminado o del servicio individual y haga clic en la ficha Seguridad del directorio.
  4. Junto a Autenticación y Control de acceso, seleccione Modificar.
  5. Inhabilite el acceso anónimo.
  6. Habilite la autenticación integrada de Windows (solo). La habilitación de la autenticación de Windows integrada debe establecer automáticamente la negociación de protocolos para que el servidor web negocie, NTLM, que especifica la autenticación Kerberos con respaldo a NTLM para dispositivos que no sean compatibles con Kerberos. Si esta opción no se selecciona automáticamente, establezca manualmente la negociación del protocolo en Negociar, NTLM.

Configurar el SSO mediante suplantación

Puede configurar la cuenta KCD para NetScaler SSO mediante suplantación. En esta configuración, el dispositivo NetScaler obtiene el nombre de usuario y la contraseña del usuario cuando el usuario se autentica en el servidor de autenticación y utiliza esas credenciales para suplantar al usuario y obtener un tíquet de concesión de tíquets (TGT). Si el nombre del usuario está en formato UPN, el dispositivo obtiene el dominio del usuario de UPN. De lo contrario, obtiene el nombre y el dominio del usuario extrayéndolos del dominio SSO utilizado durante la autenticación inicial o del perfil de sesión.

Nota

No puede agregar un nombre de usuario con dominio si el nombre de usuario ya se agregó sin dominio. Si el nombre de usuario con dominio se agrega primero seguido del mismo nombre de usuario sin dominio, el dispositivo NetScaler agrega el nombre de usuario a la lista de usuarios.

Al configurar la cuenta KCD, debe establecer el parámetro realm en el dominio del servicio al que el usuario está accediendo. El mismo dominio también se usa como territorio del usuario si el dominio del usuario no se puede obtener de la autenticación con el dispositivo NetScaler o del perfil de sesión.

Para crear la cuenta KCD para el SSO mediante suplantación de identidad con una contraseña

En el símbolo del sistema, escriba el siguiente comando:


add aaa kcdaccount <accountname> -realmStr <realm>

<!--NeedCopy-->

Para las variables, sustituya los siguientes valores:

  • nombre_cuenta. Nombre de la cuenta de KCD.
  • realm. El dominio asignado al SSO de NetScaler.

Ejemplo

Para agregar una cuenta KCD denominada kcdccount1 y utilizar la ficha keytab denominada kcdvserver.keytab, escriba el siguiente comando:


add aaa kcdAccount kcdaccount1 -keytab kcdvserver.keytab

<!--NeedCopy-->

Para obtener información sobre cómo configurar la suplantación de Kerberos a través de la GUI de NetScaler, consulte el soporte de NetScaler.

Configurar SSO por delegación

Para configurar el SSO por delegación, debe realizar las siguientes tareas:

  • Si configura la delegación por certificado de usuario delegado, instale los certificados de CA coincidentes en el dispositivo NetScaler y agréguelos a la configuración de NetScaler.
  • Cree la cuenta KCD en el dispositivo. El dispositivo utiliza esta cuenta para obtener tickets de servicio para sus aplicaciones protegidas.
  • Configure el servidor de Active Directory.

Nota

Para obtener más información sobre la creación de una cuenta KCD y la configuración en el dispositivo NetScaler, consulte los siguientes temas:

Instalación del certificado de CA cliente en el dispositivo NetScaler

Si configura el SSO de NetScaler con un certificado de cliente, debe copiar el certificado de CA coincidente para el dominio del certificado de cliente (el certificado de CA de cliente) en el dispositivo NetScaler y, a continuación, instalar el certificado de CA. Para copiar el certificado de CA cliente, use el programa de transferencia de archivos de su elección para transferir el certificado y el archivo de clave privada al dispositivo NetScaler y almacenar los archivos en /nsconfig/ssl.

Para instalar el certificado de CA cliente en el dispositivo NetScaler

En el símbolo del sistema, escriba el siguiente comando:


add ssl certKey <certkeyName> -cert <cert> [(-key <key> [-password]) | -fipsKey <fipsKey>][-inform ( DER | PEM )][-expiryMonitor ( ENABLED | DISABLED | UNSET ) [-notificationPeriod <positive_integer>]] [-bundle ( YES | NO )]

<!--NeedCopy-->

Para las variables, sustituya los siguientes valores:

  • certkeyName. Un nombre para el certificado de CA de cliente. Debe comenzar con un carácter alfanumérico o de subrayado (_) ASCII y debe constar de uno a treinta y un caracteres. Los caracteres permitidos incluyen caracteres alfanuméricos ASCII, guiones bajos, hash (#), punto (.), espacio, dos puntos (:), arroba (@), igual (=) y guion (-). No se puede cambiar después de crear el par de claves de certificado. Si el nombre incluye uno o más espacios, escríbalo entre comillas dobles o simples (por ejemplo, “mi certificado” o “mi certificado”).
  • certificado. Nombre de ruta de acceso completo y nombre de archivo del archivo de certificado X509 utilizado para formar el par de claves de certificado. El archivo de certificado debe almacenarse en el dispositivo NetScaler, en el directorio /nsconfig/ssl/.
  • clave. Nombre de ruta de acceso completo y nombre de archivo del archivo que contiene la clave privada del archivo de certificado X509. El archivo de clave debe almacenarse en el dispositivo NetScaler en el directorio /nsconfig/ssl/.
  • contraseña. Si se especifica una clave privada, la frase de contraseña utilizada para cifrar la clave privada. Use esta opción para cargar claves privadas cifradas en formato PEM.
  • fipsKey. Nombre de la clave FIPS que se creó en el módulo de seguridad de hardware (HSM) de un dispositivo FIPS o una clave que se importó en el HSM.

    Nota

    Puede especificar una clave o una fipsKey, pero no ambas.

  • inform. Formato de los archivos de certificado y clave privada, ya sea PEM o DER.
  • passplain. Frase de contraseña utilizada para cifrar la clave privada. Se requiere cuando se agrega una clave privada cifrada en formato PEM.
  • expiryMonitor. Configure el dispositivo NetScaler para que emita una alerta cuando el certificado esté a punto de caducar. Valores posibles: ENABLED, DISABLED, UNSET.
  • notificationPeriod. Si expiryMonitor está HABILITADO, el número de días antes de que caduque el certificado para emitir una alerta.
  • bundle. Analice la cadena de certificados como un único archivo después de vincular el certificado del servidor al certificado del emisor dentro del archivo. Valores posibles: SÍ, NO.

Ejemplo

El siguiente ejemplo agrega el certificado de usuario delegado especificado customer-cert.pem a la configuración de NetScaler junto con la clave customer-key.pem y establece la contraseña, el formato del certificado, el monitor de caducidad y el período de notificación.

Para agregar el certificado de usuario delegado, debe escribir los siguientes comandos:


add ssl certKey customer -cert "/nsconfig/ssl/customer-cert.pem"
-key "/nsconfig/ssl/customer-key.pem" -password "dontUseDefaultPWs!"
-inform PEM -expiryMonitor ENABLED [-notificationPeriod 14]

<!--NeedCopy-->

Creación de la cuenta KCD

Si configura NetScaler SSO por delegación, puede configurar la cuenta KCD para que use el nombre de inicio de sesión y la contraseña del usuario, para que use el nombre de inicio de sesión y el keytab del usuario o para que use el certificado de cliente del usuario. Si configura el SSO con el nombre de usuario y la contraseña, el dispositivo NetScaler utiliza la cuenta de usuario delegado para obtener un vale de concesión de tickets (TGT) y, a continuación, utiliza el TGT para obtener tickets de servicio para los servicios específicos que solicita cada usuario. Si configura el SSO con un archivo keytab, el dispositivo NetScaler utiliza la información de la cuenta de usuario delegada y de la ficha clave. Si configura el SSO con un certificado de usuario delegado, el dispositivo NetScaler usa el certificado de usuario delegado.

Nota:

Para dominios cruzados, el servicePrincipalName del usuario delegado debe tener el formato host/<name>. Si no está en este formato, cambie el servicePrincipalName del usuario delegado <servicePrincipalName> a host/<service-account-samaccountname>. Puede comprobar el atributo de la cuenta de usuario delegada en el controlador de dominio. Un método para cambiar es cambiar el atributo logonName del usuario delegado.

Para crear la cuenta KCD para el SSO por delegación con una contraseña

En el símbolo del sistema, escriba los comandos siguientes:

add aaa kcdAccount <kcdAccount> {-realmStr <string>} {-delegatedUser <string>} {-kcdPassword } [-userRealm <string>]
[-enterpriseRealm <string>] [-serviceSPN <string>]
<!--NeedCopy-->

Para las variables, sustituya los siguientes valores:

  • kcdAccount: Nombre para la cuenta KCD. Se trata de un argumento obligatorio. Longitud máxima: 31
  • realmStr: El territorio de Kerberos. Longitud máxima: 255
  • delegatedUser: El nombre de usuario que puede realizar la delegación restringida de kerberos. El nombre de usuario delegado se deriva del servicePrincipalName de su controlador de dominio. Para dominios cruzados, el servicePrincipalName del usuario delegado debe tener el formato host/<name>. Longitud máxima: 255.
  • kcdPassword: Contraseña para el usuario delegado. Longitud máxima: 31
  • userRealm: Dominio del usuario. Longitud máxima: 255
  • enterpriseRealm: Ámbito empresarial del usuario. Esto solo se da en ciertas implementaciones de KDC en las que KDC espera un nombre de usuario empresarial en lugar de un nombre principal. Longitud máxima: 255
  • serviceSPN: Servicio SPN. Cuando se especifica, se usa para obtener tickets kerberos. Si no se especifica, NetScaler construye el SPN mediante el FQDN del servicio. Longitud máxima: 255

Ejemplo (formato UPN):

Para agregar una cuenta KCD llamada kcdaccount1 a la configuración del dispositivo NetScaler con una contraseña de password1 y un dominio de EXAMPLE.COM, especificando la cuenta de usuario delegada en formato UPN (como root), debe escribir los siguientes comandos:


add aaa kcdaccount kcdaccount1 –delegatedUser root
-kcdPassword password1 -realmStr EXAMPLE.COM

<!--NeedCopy-->

Ejemplo (formato SPN):

Para agregar una cuenta KCD llamada kcdaccount1 a la configuración del dispositivo NetScaler con una contraseña de contraseña1 y un dominio de EXAMPLE.COM, especificando la cuenta de usuario delegada en formato SPN, debe escribir los siguientes comandos:


add aaa kcdAccount kcdaccount1 -realmStr EXAMPLE.COM
-delegatedUser "host/kcdvserver.example.com" -kcdPassword password1

<!--NeedCopy-->

Crear la cuenta KCD para el SSO por delegación con una ficha de teclas

Si va a utilizar un archivo keytab para la autenticación, primero cree el keytab. Puede crear el archivo keytab manualmente iniciando sesión en el servidor de AD y utilizando la utilidad ktpass, o puede usar la utilidad de configuración de NetScaler para crear un script por lotes y, a continuación, ejecutar ese script en el servidor de AD para generar el archivo keytab. A continuación, utilice FTP u otro programa de transferencia de archivos para transferir el archivo keytab al dispositivo NetScaler y colocarlo en el directorio /nsconfig/krb. Por último, configure la cuenta KCD para NetScaler SSO por delegación y proporcione la ruta y el nombre de archivo del archivo keytab al dispositivo NetScaler.

Nota:

Para dominios cruzados, si quiere obtener el archivo Keytab como parte de la cuenta de KCD, utilice el siguiente comando para el nombre de usuario delegado actualizado.

En el controlador de dominio, cree un archivo Keytab actualizado.

ktpass /princ <servicePrincipalName-with-prefix<host/>Of-delegateUser>@<DC REALM in uppercase> /ptype KRB5_NT_PRINCIPAL /mapuser <DC REALM in uppercase>\<sAMAccountName> /pass <delegatedUserPassword> -out filepathfor.keytab

El archivo filepathfor.keytab se puede colocar en el dispositivo NetScaler y se puede usar como parte de la configuración de Keytab en la cuenta KCD de ADC.

Para crear el archivo keytab manualmente

Inicie sesión en la línea de comandos del servidor AD y, en el símbolo del sistema, escriba el siguiente comando:

ktpass princ <SPN> ptype KRB5_NT_PRINCIPAL mapuser <DOMAIN><username> pass <password> -out <File_Path>
<!--NeedCopy-->

Para las variables, sustituya los siguientes valores:

  • SPN. El nombre principal de servicio de la cuenta de servicio de KCD.
  • DOMINIO. El dominio del servidor de Active Directory.
  • nombre de usuario. El nombre de usuario de la cuenta de KSA.
  • contraseña. La contraseña de la cuenta de KSA.
  • ruta. El nombre completo de la ruta de acceso del directorio en el que se almacenará el archivo keytab después de generarlo.
Para usar la utilidad de configuración de NetScaler para crear un script que genere el archivo keytab
  1. Vaya a Seguridad > AAA - Tráfico de aplicaciones.
  2. En el panel de datos, en Delegación restringida de Kerberos, haga clic en Archivo por lotes para generar Keytab.
  3. En el cuadro de diálogo Generar script Keytab KCD (delegación restringida de Kerberos), defina los siguientes parámetros:
    • Nombrede usuario del dominio. El nombre de usuario de la cuenta de KSA.
    • Contraseña de dominio La contraseña de la cuenta de KSA.
    • Director de servicio. El nombre principal del servicio de la KSA.
    • Nombre del archivo de salida. La ruta de acceso completa y el nombre de archivo en los que se guardará el archivo keytab en el servidor de AD.
  4. Desmarque la casilla Crear cuenta de usuario de dominio.
  5. Haga clic en Generar script.
  6. Inicie sesión en el servidor de Active Directory y abra una ventana de línea de comandos.
  7. Copie el script de la ventana Script generado y péguelo directamente en la ventana de línea de comandos del servidor Active Directory. La keytab se genera y almacena en el directorio bajo el nombre de archivo que especificó como Nombre de archivo de salida.
  8. Use la utilidad de transferencia de archivos de su elección para copiar el archivo keytab del servidor de Active Directory al dispositivo NetScaler y colocarlo en el directorio /nsconfig/krb.
Para crear la cuenta de KCD

En el símbolo del sistema, escriba el siguiente comando:

add aaa kcdaccount <accountname> –keytab <keytab>
<!--NeedCopy-->

Ejemplo

Para agregar una cuenta KCD llamada kcdccount1 y usar la keytab llamada kcdvserver.keytab, debe escribir los siguientes comandos:

add aaa kcdaccount kcdaccount1 –keytab kcdvserver.keytab
<!--NeedCopy-->

Para crear la cuenta KCD para el SSO por delegación con un certificado de usuario delegado

En el símbolo del sistema, escriba el siguiente comando:

add aaa kcdaccount <accountname> -realmStr <realm> -delegatedUser <user_nameSPN> -usercert <cert> -cacert <cacert>
<!--NeedCopy-->

Para las variables, sustituya los siguientes valores:

  • nombre_cuenta. Nombre de la cuenta de KCD.
  • realmStr. El dominio de la cuenta KCD, normalmente el dominio para el que está configurado el SSO.
  • delegatedUser. El nombre de usuario delegado, en formato SPN.
  • usercert. La ruta de acceso completa y el nombre del archivo de certificado de usuario delegado en el dispositivo NetScaler. El certificado de usuario delegado debe contener tanto el certificado de cliente como la clave privada, y debe estar en formato PEM. Si utiliza la autenticación con tarjeta inteligente, debe crear una plantilla de certificado de tarjeta inteligente para permitir que los certificados se importen con la clave privada.
  • cacert. La ruta de acceso completa y el nombre del archivo de certificado de CA en el dispositivo NetScaler.

Ejemplo

Para agregar una cuenta KCD denominada kcdccount1 y utilizar la ficha keytab denominada kcdvserver.keytab, escriba el siguiente comando:

add aaa kcdaccount kcdaccount1 -realmStr EXAMPLE.COM
     -delegatedUser "host/kcdvserver.example.com" -usercert /certs/usercert
     -cacert /cacerts/cacert
<!--NeedCopy-->

Configuración del SSO de Active Directory para NetScaler

Cuando configura el SSO por delegación, además de crear la cuenta KCD en el dispositivo NetScaler, también debe crear una cuenta de servicio Kerberos (KSA) coincidente en el servidor de Active Directory LDAP y configurar el servidor para SSO. Para crear el KSA, use el proceso de creación de cuentas en el servidor de Active Directory. Para configurar el SSO en el servidor de Active Directory, abra la ventana de propiedades del KSA. En la ficha Delegación, habilite las siguientes opciones: Confiar en este usuario para la delegación solo a los servicios especificados y Usar cualquier protocolo de autenticación. (La opción solo Kerberos no funciona porque no permite la transición de protocolos ni la delegación restringida). Por último, agregue los servicios que administra NetScaler SSO.

Nota:

Si la ficha Delegación no está visible en el cuadro de diálogo de propiedades de la cuenta de KSA, antes de poder configurar el KSA como se describe, debe usar la herramienta de línea de comandos setspn de Microsoft para configurar el servidor de Active Directory de modo que la ficha esté visible.

Para configurar la delegación de la cuenta de servicio Kerberos

  1. En el cuadro de diálogo de configuración de la cuenta LDAP para la cuenta de servicio Kerberos que creó, haga clic en la ficha Delegación.
  2. Elija Confiar en este usuario para la delegación solo en los servicios especificados.
  3. En Confiar en este usuario para la delegación solo en los servicios especificados, elija Usar cualquier protocolo de autenticación.
  4. En Servicios en los que esta cuenta puede presentar credenciales delegadas, haga clic en Agregar.
  5. En el cuadro de diálogo Agregar servicios, haga clic en Usuarios o Equipos, elija el servidor que aloja los recursos que se asignarán a la cuenta de servicio y, a continuación, haga clic en Aceptar.

    Nota:

    • La delegación restringida no admite los servicios alojados en dominios distintos del dominio asignado a la cuenta, aunque Kerberos pueda tener una relación de confianza con otros dominios.
    • Use el siguiente comando para crear setspn si se crea un usuario en el directorio activo: setspn -A host/kcdvserver.example.com example\kcdtest
  6. De nuevo en el cuadro de diálogo Agregar servicios, en la lista Servicios disponibles, elige los servicios asignados a la cuenta de servicio. NetScaler SSO admite los servicios HTTP y MSSQLSVC.
  7. Haz clic en Aceptar.

Cambios en la configuración para permitir que KCD admita dominios secundarios

Si la cuenta de KCD está configurada con samAccountName para -delegatedUser, KCD no funciona para los usuarios que acceden a los servicios de los dominios secundarios. En este caso, puede modificar la configuración en el dispositivo NetScaler y Active Directory.

  • Cambie el nombre de inicio de sesión de la cuenta de servicio <service-account-samaccountname> (que está configurada como delegateUser en la cuenta de KCD) en AD en formato host/<service-account-samaccountname>.<completeUSERDNSDOMAIN> (por ejemplo, host/svc_act.child.parent.com).

    Puede cambiar la cuenta de servicio manualmente o mediante el comando ktpass. ktpass actualiza automáticamente la cuenta de servicio.

    ktpass /princ host/svc_act.child.parent.com@CHILD.PARENT.COM /ptype KRB5_NT_PRINCIPAL /mapuser CHILD\sv_act /pass serviceaccountpassword -out filepathfor.keytab

  • Modifique delegatedUser en la cuenta de KCD en el dispositivo NetScaler.
  • Modifique el parámetro -delegatedUser en la cuenta de KCD como host/svc_act.child.parent.com.

Puntos a tener en cuenta cuando se utilizan cifrados avanzados para configurar la cuenta KCD

  • Configuración de ejemplo cuando se usa keytab: add kcdaccount lbvs_keytab_aes256 -keytab "/nsconfig/krb/kcd2_aes256.keytab"
  • Use el siguiente comando cuando keytab tenga varios tipos de cifrado. El comando también captura los parámetros de usuario del dominio: add kcdaccount lbvs_keytab_aes256 -keytab "/nsconfig/krb/kcd2_aes256.keytab" –domainUser "HTTP/lbvs.aaa.local”
  • Use los siguientes comandos cuando se usen credenciales de usuario: add kcdaccount kslb2_user -realmStr AAA.LOCAL -delegatedUser lbvs -kcdPassword <password>
  • Asegúrese de que se proporciona la información correcta de domainUser. Puede buscar el nombre de inicio de sesión del usuario en AD.