Requisitos previos

Para configurar LDAP en el servidor, necesita tres cosas

  1. Configuración de qué servidor LDAP utilizar y qué base y dominio.
  2. Configuración del rol para que el usuario seleccione qué rol tendrá.
  3. Grupos en AD para permitir el acceso al Servidor INNDS

 

Setup / Configurar

En primer lugar, la configuración del servidor LDAP, esto se hace para cada red.

Usted necesitará una función para ayudar a crear la configuración, ejecute este archivo SQL en el servidor. 

CREATE OR REPLACE FUNCTION set_setting_on_network(in_network_id integer, in_name text, in_value text, in_datatype integer)
  RETURNS void AS $$
DECLARE sg_id integer;
DECLARE sc_id integer;
DECLARE s_id integer;
BEGIN

    SELECT setting_group_id FROM network WHERE id = in_network_id INTO sg_id;
    IF sg_id IS NOT NULL THEN
     SELECT id FROM setting_collection WHERE setting_group_id = sg_id INTO sc_id;
     IF sc_id IS NOT NULL THEN
      SELECT id FROM setting WHERE setting_collection_id = sc_id AND name = in_name INTO s_id;
      IF s_id IS NOT NULL THEN
       UPDATE setting SET value = in_value, data_type_id = in_datatype WHERE id = s_id;
      END IF;
     END IF;
    END IF;

    IF sg_id IS NULL THEN
        INSERT INTO setting_group (network_id) 
VALUES (network_id) RETURNING id INTO sg_id;

      UPDATE network SET setting_group_id=sg_id WHERE id=network_id;
    END IF;

    IF sc_id IS NULL THEN
      INSERT INTO setting_collection (schedule_id, setting_group_id) 
  VALUES (NULL, sg_id)  RETURNING id INTO sc_id;
    END IF;

    IF s_id IS NULL THEN
      INSERT INTO setting (setting_collection_id, name, value, data_type_id) VALUES (sc_id, in_name, in_value, in_datatype);
    END IF;

END;
$$
  LANGUAGE plpgsql VOLATILE 
  COST 100;
Undefined

 

El siguiente SQL configurará LDAP para la red, la configuración de abajo es la que hemos estado usando para la prueba aquí, y nuestro dominio se llama TEST, y el FQDN es TEST.INNDS.local. Se espera que los usuarios estén en ese dominio, como se muestra en el parámetro LDAPBase

 

DO $$

DECLARE network_id integer = 1;
DECLARE LDAPServer text = 'ldap://10.1.23.140';
DECLARE LDAPBase text = 'DC=TEST,DC=dise,DC=local';
DECLARE LDAPDomain text = 'TEST';

BEGIN

PERFORM set_setting_on_network(network_id, 'LDAPServer', LDAPServer, 1);
PERFORM set_setting_on_network(network_id, 'LDAPBase', LDAPBase, 1);
PERFORM set_setting_on_network(network_id, 'LDAPDomain', LDAPDomain, 1);

END
$$
;
Undefined

 

A continuación, tenemos que crear los roles que se utilizarán, actualmente sólo se admiten dos roles: usuario y administrador.

Antes de ejecutar el SQL de abajo crea dos grupos en tu red, luego abre la consola y toma el ID de uno de estos grupos y agrégalo donde dice '<user_group_id>' en el sql de abajo. También necesitas introducir el ID de tu red, puedes encontrar tu ID de red comprobando la tabla 'Network' en la base de datos. Añade tu ID de red en el SQL de abajo donde dice '<network_id>'. 

Otra cosa que necesitas hacer antes de ejecutar el SQL de abajo es que necesitas crear dos grupos en tu AD, por ejemplo 'INNDS Server User' y 'INNDS Server Admin', si quieres nombrarlos de otra manera o usar los existentes necesitas cambiar el SQL de abajo en consecuencia.  

Ahora está listo para ejecutar el SQL. 

 

INSERT INTO external_role_translation (id, network_id, external_role, user_role_definition_name, user_group_id) VALUES (1, <network_id>, 'DISE Server User', 'user', <user_group_id>);
INSERT INTO external_role_translation (id, network_id, external_role, user_role_definition_name) VALUES (2, <network_id>, 'DISE Server Admin', 'admin');
Undefined

 

Cuando el servidor está configurado con LDAP esta es la lógica de autenticación del usuario:

  1. El administrador de MultiNetwork (todos los usuarios creados en el panel de control) siempre puede acceder a cualquier red.
  2. Si el LDAP está configurado para la red, el inicio de sesión para la red se realiza siempre con credenciales LDAP. Los usuarios locales creados previamente no pueden iniciar sesión.
  3. El usuario en el AD tiene que ser miembro de cualquiera de los grupos "INNDS" en el AD.
  4. Este usuario se creará como un usuario "externo", y sólo podrá ser autenticado a través de LDAP.
  5. El usuario se comportará ahora como un usuario normal, y los permisos, etc., pueden ser creados normalmente.
  6. Si se ha especificado user_group_id, el usuario se unirá a este grupo. Es posible unirse a varios grupos de usuarios añadiendo el mismo grupo AD de nuevo con otro grupo de usuarios. Tenga en cuenta que los usuarios con el rol de administrador no aplicarán ningún permiso importado del grupo de usuarios.

 

Para eliminar todas las configuraciones de LDAP (de todas las redes) puede utilizar la siguiente consulta SQL:

DELETE FROM setting WHERE name LIKE 'LDAP%'
¿Fue útil la respuesta? 0 Los Usuarios han Encontrado Esto Útil (0 Votos)