Exemplo de Python LDAP

Exemplo de Python LDAP

LDAP é um protocolo de acesso ao diretório leve. É um protocolo da Internet que funciona no TCP/IP e é usado para acessar/buscar as informações dos diretórios. Todos os diretórios não são preferíveis; Geralmente é usado para acessar os diretórios que estão ativos.

Recursos/características do LDAP

Sabe -se que o LDAP é um modelo funcional; É simples e único devido à sua capacidade de evitar a duplicação de dados para manter o conteúdo seguro e coerente. Algumas das principais características do LDAP são as seguintes.

  • Sabe-se que o LDAP é um protocolo de implementação de código aberto e pode ser baixado gratuitamente na Internet.
  • Tem um recurso importante que lida com a segurança dos dados. Como suporta a segurança da camada de transporte (TLS), os dados sensíveis podem ser facilmente protegidos dos snatchers.
  • O LDAP também é benéfico para apoiar os sistemas de banco de dados. Como ele armazena diretórios e permite ao usuário escolher o banco de dados de acordo com as informações do servidor.

LDAP tem muitas funções sobre os serviços que ele fornece. Vamos destacar alguns deles aqui.

Para autenticação do cliente

Como o LDAP é facilmente acessível e forma muitas operações para se conectar/desconectar de/para um servidor LDAP, ele causa os direitos sobre o acesso e protege as informações privadas. Ele autentica os clientes que passam na solicitação de conectividade para que apenas o usuário autêntico e válido possa ser conectado. Para o processo de autenticação, uma sessão de cliente é criada e terminada usando as funções. Como Bind/Unbind, abandone.

Para a consulta de informação

Inclui funções de comparação e pesquisa que são usadas para buscar as informações do diretório. Nesta situação, um servidor desempenha uma função importante, pois executa muitas ações seguindo as funções como pesquisa, compare a entrada.

Modificação dos dados

A modificação dos dados compreende adição, exclusão e modificação dos dados armazenados no diretório especificado. As principais funções incluem.

1. Adicione uma entrada.

2. Exclua a entrada de dados.

3. Modificação dos dados.

Esta modificação está em ambas as extremidades. Por exemplo, o cliente estabelece uma sessão com o servidor usando o nome do host e o número da porta no lado do cliente. Para fins de segurança, o usuário usa os IDs e as senhas para a autenticação. Enquanto no lado do servidor, o servidor é capaz de ler, atualizar e pesquisar os dados.

Interação LDAP entre o cliente e o servidor

É semelhante a qualquer uma das interações cliente-servidor simples. Nesse caso, o cliente usa as funções do protocolo contra o servidor. Os pontos abaixo explicam essa interação brevemente.

  1. Um cliente envia uma solicitação de protocolo para o servidor.
  2. O servidor executa operações diferentes no diretório, como pesquisa etc.
  3. A resposta do servidor é enviada de volta ao cliente.

Vários software podem criar facilmente uma conexão e criar um servidor LDAP. Mas todos eles exigem diretórios. Se o usuário não estiver disposto a instalar o servidor de diretório no sistema, mas quiser usar o LDAP, o usuário pode usar o Four11, Bigfoot, etc. A criação do cliente LDAP é simples, pois há SDK em muitos outros idiomas como C ++, Java, etc. Para ser um cliente LDAP, o usuário precisa executar algumas tarefas.

  • Para sua linguagem de programação, vá buscar um SDK.
  • Use a função do SDK para a criação de LDAP.
  • Após essas etapas, agora realize operações no LDAP.

Criação do usuário LDAP

Agora, criaremos um usuário LDAP usando o script na linguagem Python. Um arquivo CSV é usado. Após a criação, o script pode ser ainda mais modificado de acordo com os requisitos, como adicionar uma biblioteca de cliques que cria usuários individuais.

Etapa 1: Instale os requisitos

O primeiro passo é instalar os pré -requisitos para a criação de usuários. Isso envolve a instalação de "Python-LDAP".

# Pip install python-LDAP

Etapa 2: Usando o Python, forma uma conexão com o LDAP

Esta etapa é construir uma conexão com o LDAP. Em primeiro lugar, importar módulos LDAP, SYS e LDAP_ADMIN_DN da Biblioteca Python. Em seguida, definiremos uma função que carrega o host e a senha como um argumento de uma função.

A função principal é escrita dentro do corpo da parte 'Tente' do manuseio excepcional. Isso eliminará a ocorrência de qualquer grande problema e, se ocorrer algum erro minuto, uma solicitação de exceção será lançada, que é resolvida pelo método Catch (). Isso não é descrito aqui.

Voltando para o código, a conexão é construída usando a linha abaixo da escrita.

# Ldap_conn = ldap.Initialize (LDAP_HOST) Importar LDAP
Importar sistemas
importar ldap_admin_dn
def Try_ldap_bind (ldap_host, admin_pass):
tentar:
ldap_conn = ldap.inicializar (ldap_host)
Exceto LDAP.SERVIDOR CAIU:
Imprimir ("Não posso entrar em contato com o servidor LDAP")
saída (4)
tentar:
ldap_conn.Simple_bind_s (ldap_admin_dn, admin_pass)
Exceto (LDAP.CREDENCIAIS INVÁLIDAS):
impressão ("Esta senha está incorreta!")
sys.saída (3)
print ("AuthEntização bem -sucedida")

Se a senha ou o nome do host não estiver correto, uma mensagem será exibida de que a senha não está correta. Caso contrário, mostra uma mensagem de que a autenticação é bem -sucedida no caso de credenciais corretas.

Etapa 3: Carregamento de arquivos CSV

Depois de importar o módulo CSV, faremos uma matriz vazia. Para abrir o arquivo CSV já criado, aqui o comando de função aberto () é usado. O arquivo é aberto usando um objeto. Esse objeto e ambos os arquivos são passados ​​como parâmetros da função aberta (). Cada linha no código é considerada linha por linha através da função do leitor.

#vusers_reader = csv.leitor (usuários_csv_file)

Todos os valores são inseridos na matriz usando um loop for. Cada palavra é colocada em cada índice de uma matriz. Por exemplo, a primeira palavra é o nome de usuário; é colocado nos índices zero dessa matriz. Um processo semelhante é usado para todos os índices. Essas palavras estão presentes na variável 'usuário'. Agora, eles são anexados à matriz 'Usuários_to_import' através da função de apêndice.

# usuários_to_import.Anexar (usuário)

É assim que os dados presentes no arquivo CSV são carregados agora.

importar CSV
usuários_to_import = []
com open ('arquivo.CSV ',' RB ') como usuários_csv_file:
usuários_reader = csv.leitor (usuários_csv_file)
para linha em usuários_reader:
usuário =
'Nome de usuário': Linha [0],
'Senha': Linha [1],
'FirstName': Row [2],
'LastName': Row [3],
'Grupo': Linha [4],
'Shell': Linha [5],
'Hosts': Row [6],

usuários_to_import.Anexar (usuário)

Etapa 4: Criação do usuário no servidor LDAP

No arquivo CSV, criaremos um usuário usando uma função. O primeiro passo lida com a definição de uma função chamada 'create_user'. Por exemplo, o caso do grupo que temos:

# Gid = find_gid (user ['group']) def create_user (usuário, admin_pass):
dn = 'uid =' + usuário ['nome de usuário'] + ',' + ldap_base_dn
FullName = User ['FirstName'] + User ['LastName']
home_dir = home_base + '/' + usuário ['nome de usuário']
gid = find_gid (usuário ['grupo']))
lastchange = int (matemática.piso (time () / 86400))

É preciso o nome de usuário e a senha do administrador. Dentro do corpo da função, cada campo do formulário de criação do usuário é preenchido com a informação que recebe. Esta informação é armazenada nas variáveis. Essas variáveis ​​são usadas ao atribuir os valores na matriz. No final, usamos a função de anexo para vincular os valores. Aqui é usada uma estatura se é usada. Isso verificará o comprimento da matriz de 'usuário' através do Len ().

# if (len (usuário ['hosts']))):
# entrada.anexar (('host', usuário ['hosts'])) entrada = []
entrada.ampliar([
('ObjectClass', ["Pessoa", "Organizacional",
"INETORGPERSON", "PosixAccount", "Top", "ShadowAccount", "HostObject"]), ('uid', usuário ['nome de usuário'])),
('CN', nome completo),
('nome da oferta', usuário ['primeiro nome']),
('SN', usuário ['LastName']),
('Mail', usuário ['email']),
('uidNumber', str (usuário ['uid']))),
('GidNumber', STR (GID)),
('Loginshell', usuário ['shell']),
('Homedirectory', home_dir),
('Shadowmax', "99999"),
('ShadowWarning', "7"),
('ShadowllastChange', str (lastchange)), ('userpassword', usuário ['senha'])
]))
if (len (usuário ['hosts'])):
entrada.anexar (('host', usuário ['hosts'])))

O mesmo processo de declaração de matriz é usado aqui. Cada índice da matriz contém o valor do conteúdo presente no arquivo CSV. Desta vez, cada número de índice também recebe o nome da variável que usamos na função acima.

Agora movendo -se em direção à última fase da criação de usuários, aqui vamos construir uma conexão quando o usuário for criado atribuindo cada valor da matriz. Novamente use um corpo de tentativa para ignorar erros. No final, usaremos a função desbotada para fechar a conexão.

# ldap_conn.não.inicializar (ldap_host)
ldap_conn.Simple_bind_s (ldap_admin_dn, admin_pass)
tentar:
ldap_conn.add_s (dn, entrada)
finalmente:
ldap_conn.despind_s ()

Conclusão

'Python LDAP Exemplo' visa fornecer os recursos, funções e função de criação de usuários do protocolo LDAP. Explicamos brevemente os aspectos importantes deste protocolo, destacando a interação entre servidor e cliente. Esperamos que este tutorial seja benéfico para o usuário em relação à implementação LDAP na linguagem Python.