Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

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
Si lo único que se desea es validar los usuarios contra LDAP o Note
If only users are to be validated against LDAP or Active Directory, teniendo los roles definidos en la base de datos de O3, sólo deberá descomentarse las líneas que especifican el with roles defined in the default database, only the lines identified as rbac.loginService y and rbac.userRepository. Si no se habilita el rbac.userRepository todos los usuarios deberán existir tanto en LDAP como en la base de datos de O3.

Además de habilitar el uso de implementaciones alternativas de los repositorios de RBAC, es necesario configurar una serie de parámetros que cada mecanismo (LDAP o Active Directory) requieren para su correcto funcionamiento.

...

need to be uncommented. If the rbac.userRepository is not specified, all users will have to be stored both in the default database and the LDAP server.

Apart from enabling the use if these alternative implementations for the RBAC repositories, it is necesary to configure a set of parameters required specifically for LDAP or Active Directory.

These specifics are indicated in a separate file located in the folder <O3>/jboss/server/default/ideasoft-o3/config/rbacEl nombre del archivo de configuración a utilizar se indica también en el GServer.properties que puede encontrarse en la carpeta <O3>/jboss/server/default/ideasoft-o3 mediante la siguiente

The name of this file is indicated in the GServer.properties file using the property:

Code Block
jndi.cfg.filename = JndiConfiguration-SunONE.properties

La distribución de O3 incluye dos archivos de ejemplo O3's distribution includes two sample files called JndiConfiguration-MS.properties y and JndiConfiguration-SunONE.properties para for Microsoft Active Directory y and SunONE Directory Server respectivamente. Al final de este documento se pueden ver estos ejemplos.

Estos archivos definen los siguientes parámetros:

...

Parámetro

...

respectively. These examples are shown below as a reference.

These files are structured as follows:

Parameter

Description

java.naming.provider.url

Indica la ruta al servidor donde se encuentran los repositorios. Esta ruta es de la forma Indicates the URL to the server where the repositories are stored.
This URL has the form ldap://<host>:<port>

java.naming.factory.initial

Indica el nombre de la clase java que implementa el Contexto Inicial. Este es un parámetro del sistema que no debe cambiarse a menos que se indique lo contrario. El valor por defecto de esta property es Indicates the name of the Java Class that implements the Initial Context. This system parameter should not be modified unless indicated otherwise.
The default value for this property is "com.sun.jndi.ldap.LdapCtxFactory"

java.naming.security.authentication Indica el

mecanismo de autenticación. Este es un parámetro del sistema que no debe cambiarse a menos que se indique lo contrario. El valor por defecto de esta property es Indicates the authentication method used. This system parameter should not be modified unless indicated otherwise.
The default value for this property is "simple"

browseUserDN

Distinguished Name del usuario que utiliza el sistema para obtener las listas de usuarios User's Distinguished Name that is used by the server to retrieve the list of users, roles, etc.

browseUserPassword.plain

Contraseña del usuario indicado en el parámetro browseUserDN. El valor de esta property se ingresa como texto plano y una vez que el servidor se reinicia ésta es cambiada por la property browseUserPassword cuyo valor será encriptado en forma automática por el servidor

roleDefAttributeID

Nombre del atributo que deben tener las entradas en el directorio que representan roles

roleDefValueAttributeID

Valor que debe tener el atributo roleDefAttributeID para ser considerado un rol

roleNameAttributeID

Atributo que se va a utilizar para recuperar el nombre del rol

roleSearchBaseDN

DN a partir del cual se buscarán los roles

userDefAttributeID

Nombre del atributo que deben tener las entradas en el directorio que representan usuarios

userDefValueAttributeID

Valor que debe tener el atributo userDefAttributeID para ser considerado un usuario

userNameAttributeID

Atributo que se va a utilizar para recuperar el nombre del usuario

userSearchBaseDN

DN a partir del cual se buscarán los usuarios

userRolesAttributeID

Nombre del atributo multivaluado que contiene la lista de los roles que tiene asignado el usuario

(warning) Nota
Para el caso en que la lista de roles indicada por la property userRolesAttributeID sea una lista de DN (Distinguished Name) en lugar de los nombres de los roles directamente, es necesario especificar el atributo dereferenceRoleAttribute, el cual indica el atributo a partir del cual se va a obtener el nombre del rol. En este caso, el valor de dereferenceRoleAttribute y el de roleNameAttributeID deben coincidir para que funcione correctamente la asignación de roles a usuarios.

(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

...

Password of the user indicated in the browseUserDN property. The value of this property should be typed as plain text. As soon as the server is restarted and the file read, it will automatically be replaced with the browseUserPassword property with the encrypted version of the password

roleDefAttributeID

Indicates the name of the attribute that entries must include to be considered roles

roleDefValueAttributeID

Indicates the value of the attribute that entries must have to be considered roles

roleNameAttributeID

Attribute used as the role's name

roleSearchBaseDN

DN that indicates the search sub tree for roles

userDefAttributeID

Indicates the name of the attribute that entries must include to be considered users

userDefValueAttributeID

Indicates the value of the attribute that entries must have to be considered users

userNameAttributeID

Attribute used as the user's name

userSearchBaseDN

DN that indicates the search sub tree for users

userRolesAttributeID

Name of the multi-valuued attribute that contains the list of roles assigned to a user

(warning) Note
If the list of roles indicated by the userRolesAttributeID attribute is a list of DNs (Distinguished Names) instead of the roles names directly, it is necesary to specify the dereferenceRoleAttribute attribute, which indicates the attribute that contains the name of the role.

In this case the value of the dereferenceRoleAttribute and roleNameAttributeID attributes must be the same for user-role assignment to work correctly.

(warning) Note
Entries representing Users need to specify the "dn" for authentication to be successful

Sample Configuration Files

Sample Configuration File for 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

...

Sample Configuration File for 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
Sample Configuration File for Apache DS
Code Block

java.naming.provider.url    = ldap://localhost:10389
userRolesAttributeID        = memberOf

#Browse user's  DN (used to bind to the Directory)
browseUserDN                = uid=admin,ou=users,o=ideasoft,dc=ideasoft,dc=com
browseUserPassword.plain    = ????????

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

#User's Entry definition
userDefAttributeID          = objectClass
userDefValueAttributeID     = person
uderNameAttributeIs         = uid
userSearchBaseDN            = ou=users,o=ideasoft,dc=ideasoft,dc=com