...
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 |
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. |
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. |
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. |
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 |
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.
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 |
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.
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 |