Las propiedades personalizadas se utilizan para configurar los valores avanzados que proporcionan funciones adicionales en el repositorio federado.
La propiedad personalizada preFetchData se añade para dar soporte a la captación previa el almacenamiento en la memoria caché de atributos para un tipo de entidad de usuario o grupo para el repositorio LDAP. Con esta propiedad, puede definir la lista de atributos que desea captar previamente y almacenar en la memoria caché de forma permanente para un determinado tipo de entidad de usuario o grupo.
Información | Valor |
---|---|
Tipo de datos | String |
Valores válidos | Una serie que contenga pares de nombres de tipo de entidad y su conjunto de atributos. |
EntityType1:attribute1,attribute2;EntityType2:attribute1,attribute2
Si el formato o el valor que ha especificado para los atributos no es correcto, puede ver una excepción similar a los ejemplos siguientes:
com.ibm.websphere.wim.exception.WIMConfigurationException:
CWWIM1043E: El formato del valor de la propiedad 'preFetchData' no es válido. Especifique un valor válido, por ejemplo, "PersonAccount:sn,mail;Group:cn,description".
com.ibm.websphere.wim.exception.WIMConfigurationException:
CWWIM5068E: El tipo de entidad 'abc' no es válido.
donde abc es el nombre del tipo de entidad no válido que se ha proporcionado en la configuración de la propiedad preFetchData. El mensaje aparece con el nombre del tipo de entidad configurado. com.ibm.websphere.wim.exception.WIMConfigurationException:
CWWIM4516E La propiedad 'uid1' no está definida para el tipo de entidad 'Group'.
donde uid1 es el nombre de propiedad no válido del tipo de entidad de grupo que se ha proporcionado en la configuración de la propiedad preFetchData. El mensaje aparece con los nombres de propiedad y tipo de entidad que se han configurado. $AdminTask setIdMgrCustomProperty {-id <nombre_repositorio_ldap> -name <nombre_propiedad> -value <valor>}
Por ejemplo: $AdminTask setIdMgrCustomProperty {-id LDAP1 -name
preFetchData -value “PersonAccount:sn,cn,givenName,displayName,preferredLanguage;Group:cn,description”}<config:repositories xsi:type="config:LdapRepositoryType" adapterClassName="com.ibm.ws.wim.adapter.ldap.LdapAdapter"
id="LDAP1" isExtIdUnique="true" supportAsyncMode="false" supportExternalName="false"
supportPaging="false" supportSorting="false" supportTransactions="false" certificateFilter=""
certificateMapMode="exactdn" ldapServerType="IDS" translateRDN="false">
<config:baseEntries name="o=ldap" nameInRepository="o=ldap"/>
<config:loginProperties>uid</config:loginProperties>
<config:CustomProperties name="preFetchData" value="PersonAccount:sn,cn,givenName,displayName,preferredLanguage;Group:cn,description"/>
<config:ldapServerConfiguration primaryServerQueryTimeInterval="15" returnToPrimaryServer="true"
sslConfiguration="">
<config:ldapServers authentication="simple" bindDN="cn=root" bindPassword="{xor}LTAwK25tbA=="
connectionPool="false" connectTimeout="0" derefAliases="always" referal="ignore"
sslEnabled="false">
<config:connections host="localhost" port="389"/>
</config:ldapServers>
</config:ldapServerConfiguration>
</config:repositories>
Cuando se ejecuta una operación por primera vez para user1, el atributo sn también se recupera y se almacena en la memoria caché junto con la propiedad de inicio de sesión del usuario, aunque no haya ninguna solicitud explícita de sn como parte de la consulta. Para los grupos que contienen user1 como miembro, el atributo cn se almacena en la memoria caché. Para las llamadas posteriores, los datos que se van a recuperar se buscan primero en la memoria caché y sólo si no se encuentran, se realiza una llamada JNDI para el atributo necesario.
Cuando se realiza una búsqueda del grupo g1, el repositorio federado recupera y almacena en la memoria caché el grupo cn según la configuración especificada. Si una llamada posterior busca los atributos cn y description, se capta cn en la memoria caché y se realiza una llamada JNDI explícita para captar el grupo description.
Puede utilizar esta propiedad para buscar un servidor LDAP disponible en el tiempo de ejecución que esté definido en el archivo de configuración DNS para el repositorio LDAP con un determinado nombre de dominio.
Información | Valor |
---|---|
Tipo de datos | String |
Valores válidos | El nombre del dominio para el que se definen registros de servidor LDAP en el archivo de configuración DNS. |
Aparte de las configuraciones de servidores primarios, también puede configurar servidores de migración tras error en la configuración del repositorio LDAP federado. El repositorio federado cambia al servidor de migración tras error si el servidor primario queda inactivo. Si hay muchos servidores LDAP con los usuarios y los grupos que se han definido para ellos, será difícil especificar todos los nombres de servidor LDAP en la configuración del repositorio LDAP federado. La configuración será más difícil y puede tardar más si hay muchos nodos configurados en WebSphere Application Server y cada nodo está configurado con varios LDAP. Cuando hay muchos servidores LDAP, utilice la propiedad domainNameForAutomaticDiscoveryOfLDAPServers para buscar dinámicamente los nombres de servidor LDAP en el tiempo de ejecución, independientemente de qué servidor LDAP esté configurado en el repositorio LDAP.
ldap._tcp.ibm.com 86400 IN SRV 0 0 389 bigbox.ibm.com
ldap._tcp.ibm.com 86400 IN SRV 10 20 1389 smallbox1.ibm.com
Si se ha establecido la propiedad domainNameForAutomaticDiscoveryOfLDAPServers, el repositorio federado busca los servidores LDAP en el archivo de configuración DNS y realiza las llamadas JNDI posteriores a ese servidor específico. Puede establecer la propiedad domainNameForAutomaticDiscoveryOfLDAPServers utilizando el mandato setIdMgrCustomProperty: $AdminTask setIdMgrCustomProperty {-id <nombre_repositorio_ldap> -name <nombre_propiedad> -value <valor>}
$AdminTask setIdMgrCustomProperty {-id LDAP1 -name domainNameForAutomaticDiscoveryOfLDAPServers -value “dc=ibm,dc=com”}
<config:repositories xsi:type="config:LdapRepositoryType" adapterClassName="com.ibm.ws.wim.adapter.ldap.LdapAdapter"
id="LDAP1" isExtIdUnique="true" supportAsyncMode="false" supportExternalName="false"
supportPaging="false" supportSorting="false" supportTransactions="false" certificateFilter=""
certificateMapMode="exactdn" ldapServerType="IDS" translateRDN="false">
<config:baseEntries name="o=ldap" nameInRepository="o=ldap"/>
<config:loginProperties>uid</config:loginProperties>
<config:CustomProperties name="domainNameForAutomaticDiscoveryOfLDAPServers" value="dc=ibm,dc=com"/>
<config:ldapServerConfiguration primaryServerQueryTimeInterval="15" returnToPrimaryServer="true"
sslConfiguration="">
<config:ldapServers authentication="simple" bindDN="cn=root" bindPassword="{xor}LTAwK25tbA=="
connectionPool="false" connectTimeout="0" derefAliases="always" referal="ignore"
sslEnabled="false">
<config:connections host="localhost" port="389"/>
</config:ldapServers>
</config:ldapServerConfiguration>
</config:repositories>
La propiedad domainNameForAutomaticDiscoveryOfLDAPServers altera temporalmente la configuración del servidor LDAP establecida en el repositorio LDAP, y recupera el nombre del servidor LDAP y el número de puerto del archivo de configuración DNS. Se genera el siguiente URL de repositorio LDAP federado y se utiliza para buscar los registros de servidor LDAP: ldap:///dc=ibm,dc=com.
Cuando JNDI recibe el URL como el nombre de dominio, el servidor LDAP se recupera del archivo de configuración DNS. Si uno de los servidores LDAP queda inactivo, JNDI inicia otro servidor LDAP definido en el archivo de configuración DNS para ese dominio.
Información | Valor |
---|---|
Tipo de datos | Boolean |
Valor predeterminado | Verdadero |
Información | Valor |
---|---|
Tipo de datos | Integer |
Valor predeterminado | 5 |
Información | Valor |
---|---|
Tipo de datos | Milisegundos |
Valor predeterminado | 1000 |