Script LDAP
Crie mapas de transformaçãp personalizados, scripts e regras de negócios para especificar requisitos ao importar dados.
Mapas de transformação personalizados devem incluir scripts de transformação onStart e onAfter.
onStart deve chamar a inclusão de script LDAPUtils e iniciar o registro em log. Por exemplo, o mapa de transformação de importação de usuário LDAP tem um script onStart que usa este código:gs.include ( "LDAPUtils" ) ; var ldapUtils = new LDAPUtils ( ) ;
ldapUtils. setLog (log ) ;onAfter deve chamar a função addMembers. Por exemplo:ldapUtils.addMembers (source , target ) ;Definição de usuários desabilitados do Active Directory como inativos
Use o script a seguir para desativar automaticamente os usuários quando o usuário do AD associado estiver desabilitado.
Antes de Iniciar
Por Que e Quando Desempenhar Esta Tarefa
É possível identificar usuários desabilitados do Active Directory verificando o valor do atributo userAccountControl. Essa regra será executada sempre que o valor userAccountControl mudar e desativar contas de usuário se o Controle de contas de usuário significar uma conta do AD desabilitada.
Use o script a seguir para desativar automaticamente os usuários quando o usuário do AD associado estiver desabilitado.
Procedimento
Atribuição de valores de campo LDAP
É possível usar um script para atribuir um valor a qualquer campo para o qual exista um mapeamento de campo.
Por exemplo, para atribuir um valor ao campo sys_user.company, crie um mapa de campo para o campo da empresa e adicione um script de transformação para:
company = "Don's Sporting Goods";Exclusão de usuários LDAP específicos
Se não puder filtrar completamente a lista de usuários LDAP usando as propriedades de filtro LDAP, é possível excluir usuários com um script de mapa.
Depois de executar a lógica para identificar um usuário que não deve ser importado, defina o campo user_name como uma cadeia de caracteres vazia e esse usuário não será importado.
user_name='';Uma maneira de identificar usuários para serem filtrados é procurar uma cadeia de caracteres no atributo distinguishedName. Por exemplo, este script exclui contas que não estão em uma OU de usuários. Será possível usar este script se houver muitos usuários na OU para incluir na opção LDAP da OU de destino.
//vdn is a variable mapped to distinguishedName
gs.include("LDAPUtils");
var vdn = source.getElement(this.distinguishedName);
if (vdn.indexOf('OU=Users')<0) {
user_name='';
gs.log('LDAP Import Skipping User: ' + vdn);
}Um método mais complexo de filtragem é usar expressões regulares.
//vcn is a variable mapped to cn
//vdn is a variable mapped to distinguishedName
//c is the regular expression string
gs.include("LDAPUtils");
var vdn = source.getElement(this.distinguishedName);
var vcn = source.getElement(this.cn);
var c = /^[a-z][a-z][a-z][0-9][0-9][0-9]$/;
var nvcn = vcn.toLowerCase();
//test to see if the cn is in the form of 3 letters followed by 3 numbers, only import these
if (c.test(nvcn)) {
user_name = nvcn;
} else {
gs.log("LDAP import rejected username: " + vcn + " for DN: " + vdn);
user_name = "";
}