Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Esta página explica cómo configurar el Servidor de O3 para utilizar un servidor LDAP o Active Directory como soporte para la definición de usuarios y roles, así como manejar la autenticación al sistema.

Se asume que se tienen conocimientos básicos del protocolo LDAP, así como conocimientos de cómo configurar el servidor LDAP o Active Directory que se desea utilizar.

Se presentan algunos ejemplos que deben tomarse simplemente como guía ya que las estructuras de directorios presentadas pueden variar dependiendo del servidor LDAP utilizado.

Este instructivo se aplica a versiones This page describes how to configure the O3 Server to use LDAP or Active Directory as the authentication mechanism.

Basic knowledge of LDAP is required to understand these instructions, as well as basic experience regarding the configuration of the LDAP and Active Directory servers of your choice.

This description includes some examples that serve only as a guide since the strcture of directories may differ depending on the selected LDAP server.

These instructions apply to versions 4.0.400 o posterioreshigher

...

O3 Server security

La seguridad del Servidor de O3 se basa sobre un módulo comúnmente conocido como O3 Server Security is based on a module usually known as RBAC (Role Based Access Control).

Este módulo define un conjunto de repositorios que son los encargados de almacenar los diferentes elementos involucrados en la seguridad del servidor - usuarios, roles, atributos, asociaciones entre ellos, etc.

Es posible elegir diferentes implementaciones de estos repositorios de modo que los datos puedan ser leídos desde diferentes servidores y utilizando tecnologías diferentes. 

O3 incluye una implementación de este módulo para poder conectarse a servidores de directorio tales como LDAP y Active Directory.

Configurando el Servidor de O3

La elección de qué implementación de los repositorios de RBAC usar se realiza en el archivo GServer.properties que puede encontrarse en la carpeta This module defines a set of repositories that store all elements involved in the security mechanisms of the server (users, roles, attributes, relationships between all of them, etc.).

It is possible to choose among different repository implementations thus allowing data to be stored and retrieved from different servers and using various technologies.

O3 includes an implementation that allows RBAC to connect to directory servers such as LDAP and Active Directory.

Configuring the O3 Server

The specific implementation of RBAC repositories is declared in a file called GServer.properties. This file is located in the folder <O3>/jboss/server/default/ideasoft-o3

Este archivo define un conjunto de properties que permiten indicar el repositorio que debe utilizarseThis file defines a set of properties that describe the repository and how to access it.

Code Block
#RBAC Repositories Configuration
#rbac.roleRepository         = com.ideasoft.rbac.repository.impl.jndi.JndiRoleRepository
#rbac.userRepository         = com.ideasoft.rbac.repository.impl.jndi.JndiUserRepository
#rbac.raAssignmentRepository = com.ideasoft.rbac.repository.impl.jndi.JndiRAAssignmentRepository
#rbac.loginService           = com.ideasoft.rbac.repository.impl.jndi.JndiLoginService

La distribución de O3 incluye estas properties comentadas, tal como puede verse por los caracteres "#" al principio de cada línea. Para poder activar el uso de LDAP o Active Directory es necesario quitar esos caracteres del principio de cada línea de modo que queden de la siguiente formaO3's distribution includes all of these properties commented out, as they can be seen in the previous section with all the lines starting with the hash mark (#). In order to activate the use of LDAP or Active Directory, these characters need to be deleted to look like this:

Code Block
#RBAC Repositories Configuration
rbac.roleRepository         = com.ideasoft.rbac.repository.impl.jndi.JndiRoleRepository
rbac.userRepository         = com.ideasoft.rbac.repository.impl.jndi.JndiUserRepository
rbac.raAssignmentRepository = com.ideasoft.rbac.repository.impl.jndi.JndiRAAssignmentRepository
rbac.loginService           = com.ideasoft.rbac.repository.impl.jndi.JndiLoginService

...

(warning) Nota
Para que la validación de usuarios sea exitosa es necesario que éstos tengan definidos el atributo "dn"

Ejemplos de Archivos de Configuración

Ejemplo de Archivo de configuración para Microsoft Active Directory
Code Block
#Microsoft - Active Directoy Configuation file

java.naming.provider.url  = ldap://dataserver:389
userRolesAttributeID      = memberOf
dereferenceRoleAttribute  = cn

#Browse user's  DN (used to bind to the Directory)

#Option 1: User Principal Name (username@domain)
#browseUserDN             = o3user@radiusserver.ideasoft.com
#browseUserPassword.plain = ????????

#Option 2: DN (Distinguished Name)
browseUserDN              = CN=O3User, OU=People, DC=radiusserver, DC=ideasoft, DC=com
browseUserPassword.plain  = ????????

#Roles's Entry definition
roleDefAttributeID        = objectclass
roleDefValueAttributeID   = group
roleNameAttributeID       = cn
roleSearchBaseDN          = ou=Roles, dc=radiusserver, dc=ideasoft, dc=com

#User's Entry definition
userDefAttributeID        = objectclass
userDefValueAttributeID   = user
userNameAttributeID       = sAMAccountName
userSearchBaseDN          = ou=People, dc=radiusserver, dc=ideasoft, dc=com
Ejemplo de Archivo de configuración para SunONE Directory Server
Code Block
#Sun ONE Directory Server Configuation file

java.naming.provider.url  = ldap://dataserver:51685
userRolesAttributeID      = nsrole
dereferenceRoleAttribute  = cn

#Browse user's  DN (used to bind to the Directory)
browseUserDN              = uid=admin, cn=directory administrators, dc=ideasoft
browseUserPassword.plain  = ????????

#Roles's Entry definition
roleDefAttributeID        = objectclass
roleDefValueAttributeID   = ldapsubentry
roleNameAttributeID       = cn
roleSearchBaseDN          = ou=People, dc=ideasoft

#User's Entry definition
userDefAttributeID        = objectclass
userDefValueAttributeID   = person
userNameAttributeID       = uid
userSearchBaseDN          = ou=People, dc=ideasoft