Uso de LDAP o Active Directory para autenticación

Spectrum Technology Platform se puede configurar para usar un servidor LDAP o Active Directory para la autenticación. Cuando un usuario inicia sesión en Spectrum Technology Platform, sus credenciales se verifican mediante LDAP o AD. Luego el sistema verifica si hay un usuario de Spectrum Technology Platform con el mismo nombre. Si lo hay, se inicia la sesión del usuario. De lo contrario, se crea una cuenta de usuario Spectrum Technology Platform automáticamente para el usuario y se le otorga la función de usuario.

El siguiente diagrama ilustra el proceso:



Antes de configurar Spectrum Technology Platform para usar un servicio de directorio para autenticación, confirme que su servicio de directorio cumpla con estos requisitos:

  • Para LDAP, el servidor del directorio debe cumplir con LDAP Version 3.
  • No hay requisitos específicos para el servidor Active Directory.
Nota: Recomendamos que se ponga en contacto con la Pitney BowesAsistencia técnica o Servicios profesionales para que lo guíen por este proceso.
Nota: Al configurar Spectrum mediante LDAP o STS o SSO_STS, si la propiedad es, de manera predeterminada, spectrum.security.account.createNonExisting=true, los usuarios de Active Directory se crean automáticamente en Spectrum Technology Platform después de su primera sesión de Spectrum. Si desactiva la propiedad spectrum.security.account.createNonExisting=false, los usuarios de LDAP/Active Directory no podrán autenticarse en Spectrum Technology Platform hasta que el administrador cree manualmente los usuarios.
  1. Si existen usuarios configurados en Management Console y desea utilizarlos después de activar la autenticación LDAP o Active Directory, cree los mismos usuarios en su sistema LDAP o Active Directory. Debe usar el mismo nombre de usuario que en Spectrum Technology Platform.
    Nota: No es necesario crear el usuario "admin" en LDAP o Active Directory, ya que este usuario seguirá utilizando Spectrum Technology Platform para la autenticación después de que active LDAP o Active Directory.
  2. Detenga el servidor de Spectrum Technology Platform.
  3. Activación de la autenticación LDAP o Active Directory:
    1. Abra este archivo de configuración en un editor de texto:

      server\app\conf\spectrum-container.properties

    2. Defina la propiedad spectrum.security.authentication.basic.authenticator en LDAP:
      spectrum.security.authentication.basic.authenticator=LDAP

      Se usa la configuración LDAP para activar Active Directory y LDAP.

    3. Guarde y cierre el archivo.
  4. Configuración de las propiedades de conexión:
    1. Abra este archivo de configuración en un editor de texto:

      server\app\conf\spring\security\spectrum-config-ldap.properties

    2. Modifique estas propiedades.
      spectrum.ldap.url
      La URL, incluido el puerto, del servidor de LDAP o Active Directory. Por ejemplo:
      spectrum.ldap.url=ldap://ldapserver.example.com:389/
      spectrum.ldap.dn.format
      El formato que se usará para buscar la cuenta de usuario en LDAP o Active Directory. Use la variable %s para el nombre de usuario. Por ejemplo:

      LDAP:

      spectrum.ldap.dn.format=uid=%s,ou=users,dc=example,dc=com

      Active Directory:

      spectrum.ldap.dn.format=%s@example.com
      spectrum.ldap.dn.base
      El nombre distintivo (dn) para buscar cuentas de usuario en LDAP o Active Directory. Por ejemplo:

      LDAP:

      spectrum.ldap.dn.base=ou=users,dc=example,dc=com

      Active Directory:

      spectrum.ldap.dn.base=cn=Users,dc=example,dc=com
      spectrum.ldap.search.filter
      Un filtro de búsqueda para usar cuando se busquen atributos como funciones. El filtro de búsqueda puede contener estas variables:
      • {user} es el nombre del usuario que inicia sesión en Spectrum Technology Platform
      • {dn} es el nombre distintivo que se especifica en spectrum.ldap.dn.base.
      Por ejemplo:

      LDAP:

      spectrum.ldap.search.filter=uid={user}

      Active Directory:

      spectrum.ldap.search.filter=userPrincipalName={dn}
      spectrum.ldap.attribute.roles
      Opcional. Especifica el atributo de LDAP o Active Directory que contiene el nombre de las funciones de Spectrum Technology Platform para el usuario. El nombre del rol que especifique en el atributo de LDAP o Active Directory debe coincidir con el nombre de la función que se definió en Spectrum Technology Platform.

      Por ejemplo, para aplicar las funciones definidas en el atributo spectrumroles, deberá especificar:

      spectrum.ldap.attribute.roles=spectrumroles

      Si este atributo contiene una función llamada diseñador, entonces esta sería la función que se le otorgaría al usuario.

      Solo puede especificar un atributo, el cual puede contener varias funciones. Para especificar múltiples funciones en un atributo, separe cada una con una coma. También puede especificar un atributo con múltiples valores; cada instancia del atributo contiene una función diferente. Solo las funciones especificadas en este atributo se usan en Spectrum Technology Platform. Ningún otro atributo de LDAP o Active Directory tendrá un impacto en las funciones de Spectrum Technology Platform.

      Si el usuario tiene funciones asignadas en Spectrum Technology Platform, los permisos del usuario corresponden a la unión de las funciones de LDAP o Active Directory con las funciones de Spectrum Technology Platform.

      Nota: Cuando un usuario inicia sesión por primera vez y no tiene una cuenta de usuario de Spectrum Technology Platform, se crea una automáticamente y se le otorga la función de usuario. Los permisos efectivos del usuario corresponden a la unión de los permisos de la función de usuario y las funciones especificadas en los atributos que se indican en la propiedad spectrum.ldap.attribute.roles.
      Nota: Si ve las funciones del usuario en Management Console, no verá las funciones que la propiedad spectrum.ldap.attribute.roles asignó al usuario.
      spectrum.ldap.pool.min
      El tamaño mínimo del grupo de conexiones para las conexiones al servidor de LDAP o Active Directory.
      spectrum.ldap.pool.max
      La cantidad máxima de conexiones simultáneas al servidor de LDAP o Active Directory.
      spectrum.ldap.timeout.connect
      Especifica cuánto se debe esperar para establecer una conexión al servidor de LDAP o Active Directory, en milisegundos. El valor predeterminado es 1000 milisegundos.
      spectrum.ldap.timeout.response
      Especifica cuánto se debe esperar por una respuesta del servidor de LDAP o Active Directory después de que se establece la conexión, en milisegundos. El valor predeterminado es 5000 milisegundos.
      spectrum.ldap.retry.count
      El número de veces que el servidor Spectrum Technology Platform intentará conectarse al servidor de LDAP o Active Directory si no se puede conectar en el primer intento. Establezca el valor en 0 si desea permitir solo un intento de conexión.
      Consejo: Si deja los servidores de LDAP o Active Directory en un clúster, es recomendable que establezca el valor en 1 o más para permitir que el equilibrador de carga de LDAP o Active Directory redirija la solicitud de conexión a otro servidor en caso de que el primer servidor no esté disponible.
      spectrum.ldap.retry.wait
      El número de milisegundos de espera entre los intentos de conexión.
      spectrum.ldap.retry.backoff
      El factor de multiplicación que se usa para aumentar el tiempo de espera después de cada reintento interrumpido.

      Por ejemplo:

      spectrum.ldap.timeout.connect=1000
      ...
      spectrum.ldap.retry.count=5
      spectrum.ldap.retry.wait=500
      spectrum.ldap.backoff=2

      En este ejemplo, el tiempo de espera del primer intento de conexión es 1000 milisegundos y el tiempo de espera de cada uno de los cinco intentos posteriores aumenta por un factor de dos, lo que origina los siguientes tiempos de espera:

      Reintento 1: 500 milisegundos
      Reintento 2: 1,000 milisegundos
      Reintento 3: 2,000 milisegundos
      Reintento 4: 4,000 milisegundos
      Reintento 5: 8000 milisegundos

    3. Del mismo modo, modifique estas URL en el valor de los elementos indicados para los servicios:
  5. Si utiliza el módulo Location Intelligence y tiene pensado asignar funciones (como se describe en Asignar valores de atributo LDAP a funciones), se necesita una configuración manual adicional del archivo de configuración de Jackrabbit (ubicado en SpectrumFolder\server\modules\spatial\jackrabbit\workspaces\default\workspace.xml) para que Spectrum Spatial esté al tanto de cualquier asignación dinámica de funciones de LDAP o Active Directory. Agregue el parámetro checkRoles como se muestra a continuación:
     <!-- 
      Spectrum ACL provider.
     -->
     <WorkspaceSecurity>
      <AccessControlProvider class="com.mapinfo.repository.jackrabbit.acl
       .AccessControlProviderImpl">
       <param name="checkRoles" value="true"/>
      </AccessControlProvider>
     </WorkspaceSecurity>
    
  6. Inicie el servidor de Spectrum Technology Platform.

Si está ejecutando Spectrum Technology Platform en un clúster, debe modificar el archivo spectrum-container.properties y el archivo spectrum-config-ldap.properties en cada servidor del clúster. Detenga el servidor antes de modificar el archivo y luego inicie el servidor después de que haya terminado los cambios. Si asignó un valor de atributo LDAP a una función, esta asignación se replicará en todos los nodos del clúster, por lo que no necesita repetir el procedimiento de asignación en la consola JMX.