PHPackages                             rafa-carmo/ldap-connector - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. rafa-carmo/ldap-connector

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

rafa-carmo/ldap-connector
=========================

A simple ldap connector

v1.0.5(1y ago)0300↓100%1MITPHPPHP &gt;=7.4

Since May 19Pushed 1y ago1 watchersCompare

[ Source](https://github.com/rafa-carmo/ldapConnector)[ Packagist](https://packagist.org/packages/rafa-carmo/ldap-connector)[ RSS](/packages/rafa-carmo-ldap-connector/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (6)Dependencies (1)Versions (7)Used By (0)

LDAP Connect
============

[](#ldap-connect)

 [![License](https://camo.githubusercontent.com/d6bc2b26794002c24d023acaab01b6dbb953c57ab9cb80ba5b8aa2f2bd5de99a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c7565)](https://camo.githubusercontent.com/d6bc2b26794002c24d023acaab01b6dbb953c57ab9cb80ba5b8aa2f2bd5de99a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c7565)

Faça bind e busque usuarios de forma simples.

Dependências:
-------------

[](#dependências)

- ⚡ **PHP 7.4**

Como usar?
----------

[](#como-usar)

### Laravel &gt;= 8

[](#laravel--8)

1 - Instale a biblioteca

```
composer require rafa-carmo/ldap-connector
```

2 - Publique os arquivos de configuração:

```
 php artisan vendor:publish --tag=ldap-config --tag=ldap-service
```

3 - Preencha as configuraçãos em seu .env:

```
LDAP_HOST="localhost" # Obrigatório
LDAP_USERNAME="Usuário para buscas" # Opcional
LDAP_PASSWORD="Senha do usuário acima" # Opcional
LDAP_PORT="Porta do Serviço" # Opcional - Padrão: 389
LDAP_TIMEOUT=5 # Opcional - Timeout padrão.

LDAP_BASE_DN="dc=example,dc=com" # Opcional - Dominio Base
LDAP_MAIL_DOMAIN=example.com # Opcional - Dominio para login com email

LDAP_AUTO_CREATE=false # Opcional - Para implementar lógica de criar usuário automático no primeiro acesso
```

4 - Instancie uma classe na sua area de login para fazer sua lógica:

```
# Exemplo ( Este é um exemplo para entender a lógica, aplique de acordo com seu projeto )
    $ldap = new LdapConnectService();
    # bind - Faz a verificação do usuário no servidor LDAP
    # Retorna True ou o erro.
    $bindAttempt = $ldap->bind($request->email, $request->password);

    # Caso tenha sucesso na validação do usuário faz o login
    if($bindAttempt === true) {
        # A função createOrUpdateLogin faz a validação no banco se o usuário ja existe
        # os parametros que devem ser passados são:
        # 1° - Classe de usuarios e autenticação
        # 2° - Caso vá atualizar ou criar o usuario, devem ser passados os dados que serão salvos no banco. (Atenção: A criação somente será efetuada caso  a variável LDAP_AUTO_CREATE esteja true)
        # 3° - Um array com o nome do campo a ser validado no banco
        # caso o login seja efetuado com sucesso irá retornar true, caso não irá retornar a mensagem de erro de usuário não cadastrado.
        $login = $ldap->createOrUpdateLogin(User::class, [], ["username" => $ldap->getUsername($request->email)]);

        # Caso tenha efetuado o login redireciona para a rota home
        if($login === true) {
            return redirect(route('home'));
        }

        # Sobreescreve a mensagem de erro para retornar ao usuário.
        $bindAttempt = $login;
    }

    # retorna a rota anterior com as mensagens de erro
    return redirect()->back()->withErrors([
        "error" => $bindAttempt
    ]);
```

Personalizando o serviço:
-------------------------

[](#personalizando-o-serviço)

Para manipular o funcionamento do serviço basta alterar o arquivo localizado em **App\\Http\\Services\\LdapConnectService.php**

### Funções da classe:

[](#funções-da-classe)

#### Função privada - createConnection:

[](#função-privada---createconnection)

Cria a conexão inicial com o servidor ldap

#### Função privada - sanitize:

[](#função-privada---sanitize)

Limpa a string de busca para evitar LDAP injection

#### Função pública - getUsername:

[](#função-pública---getusername)

Limpa e padroniza o username

#### Função pública - genLoginString:

[](#função-pública---genloginstring)

Função para gerar o login que será feito no servidor LDAP,

Caso seu login deva ser de uma forma diferente favor personalizar esta função no arquivo.

exemplo 1: Caso seja login com email login: `usuario.nome`a função fará o login fazendo a concatenação com o dominio: `usuario.nome@dominio.com`

exemplo 2: Caso seja login com uid. usuário: `usuario.nome`a função fará o login fazendo a concatenação com o base\_dn: `ud=usuario.nome,dc=example,dc=com`

#### Função pública - bind:

[](#função-pública---bind)

Fará o bind com o servidor LDAP para validar o usuário.

Retornos: True para validado / Mensagem de Error.

#### Função pública - findUser:

[](#função-pública---finduser)

Esta função somente irá ser utilizada caso estejam configuradas as variáveis `LDAP_USERNAME` e `LDAP_PASSWORD`

Ela fará a busca de usuários no servidor LDAP.

Recebe 2 parâmetros:

- Login de busca ( caso tenha @ o tipo de busca será mail por padrão )
- Tipo de busca ( caso seja deixado em branco ira buscar por uid )

#### Função pública - createOrUpdateLogin:

[](#função-pública---createorupdatelogin)

Fará a criação ou atualização de um cadastro no banco de dados do sistema.

**Obs:** A criação somente será efetuada caso a variável `LDAP_AUTO_CREATE` seja true.

Parametros da função:

- 1° - Model do usuário.
- 2° - Array com os dados para criação ou atualização do usuário.
- 3° - Array com os dados de busca do usuário.

Retornos da função:

- True - Caso o login seja efetuado com sucess.
- Mensagem de Erro.

Como Contrubuir?
----------------

[](#como-contrubuir)

- Faça um `Fork` do Projeto.
- Clone o projeto no seu repositório
- Crie uma nova branch com a funcionalidade `git branch -b nova-funcionalidade`
- commit a nova funcionalidade `git commit -m "feat: funcionalidade"
- Faça um push no seu fork `git push origin main`
- No seu repositório clique em Contribute e abra uma `pull request`

Obrigado, Qualquer sujestão fique a vontade para criar uma issue.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 96.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~7 days

Total

6

Last Release

686d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d49e0c87b9f704071b5f808365b5be4279b845c070087eab75d7d0b5d3c6d082?d=identicon)[rafa-carmo](/maintainers/rafa-carmo)

---

Top Contributors

[![rafa-carmo](https://avatars.githubusercontent.com/u/12972960?v=4)](https://github.com/rafa-carmo "rafa-carmo (28 commits)")[![PedroFelippeVidinha](https://avatars.githubusercontent.com/u/118021979?v=4)](https://github.com/PedroFelippeVidinha "PedroFelippeVidinha (1 commits)")

### Embed Badge

![Health badge](/badges/rafa-carmo-ldap-connector/health.svg)

```
[![Health](https://phpackages.com/badges/rafa-carmo-ldap-connector/health.svg)](https://phpackages.com/packages/rafa-carmo-ldap-connector)
```

###  Alternatives

[wireui/wireui

TallStack components

1.8k1.3M16](/packages/wireui-wireui)[livewire/volt

An elegantly crafted functional API for Laravel Livewire.

4195.3M84](/packages/livewire-volt)[ramonrietdijk/livewire-tables

Dynamic tables for models with Laravel Livewire

21147.4k](/packages/ramonrietdijk-livewire-tables)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
