> For the complete documentation index, see [llms.txt](https://docs.userauth.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.userauth.com.br/configurando-o-seu-userauth/escolha-as-suas-autenticacoes/opcoes-de-autenticacoes-avancadas/autenticacao-em-banco-de-dados-corporativos-atraves-de-url-webservice.md).

# Autenticação em banco de dados corporativos atraves de URL/webservice

## Selecionando metodo de autenticação <a href="#selecionando-metodo-de-autenticacao" id="selecionando-metodo-de-autenticacao"></a>

Inicialmente efetua-se a alteração do método de autenticação do captive portal na guia do UserAuth, adicionando a autenticação externa através de URL.

<figure><img src="/files/zVk3nLZxvZQyr225IcFT" alt=""><figcaption></figcaption></figure>

## Adicionando URL para consulta <a href="#adicionando-url-para-consulta" id="adicionando-url-para-consulta"></a>

Também nessa mesma guia, adiciona-se o local da URL externa e o método de envio da senha a essa URL, podendo ser texto puro, ou qualquer hash que comunique com o PHP do server. Inicialmente vamos fazer o teste com texto puro.

<figure><img src="/files/9g9KyeeunEh4VtKsrgIx" alt=""><figcaption></figcaption></figure>

## Criando codigo PHP para consulta de usuários <a href="#criando-codigo-php-para-consulta-de-usuarios" id="criando-codigo-php-para-consulta-de-usuarios"></a>

No nosso primeiro acesso estamos colocando um portal muito simples em php, com apenas alguns dados de usuários crus mesmo, diretamente na ferramenta, sem conexão ao banco de dados.

<figure><img src="/files/8uNcWZnKoXG64E57i7A6" alt=""><figcaption></figcaption></figure>

## Testando codigo PHP como base de consulta <a href="#testando-codigo-php-como-base-de-consulta" id="testando-codigo-php-como-base-de-consulta"></a>

Ao atualizarmos nossa máquina virtual, ele já solicita o novo usuário e senha. Vamos testar com a maria.andrade que se encontra no array do nosso PHP.

<figure><img src="/files/ZlDSFHH2X4eMcH76bZrs" alt=""><figcaption></figcaption></figure>

O nosso teste autenticou.

<figure><img src="/files/mGXLDNyKb5K02cZrLpPh" alt=""><figcaption></figcaption></figure>

Autenticado, já podemos avaliar nas conexões ativas que a usuária "maria.andrade" já está conectada.

<figure><img src="/files/QJZWHuUn7l8mI4zqCByr" alt=""><figcaption></figcaption></figure>

Vamos desconectar essa conta e fazer mais um teste com outra conta.

<figure><img src="/files/DCRlUiTsV8KGtxstJZQf" alt=""><figcaption></figcaption></figure>

Testamos agora com o usuário **joao.silva**.

<figure><img src="/files/UhGDx7hwCjQZV5RSLywT" alt=""><figcaption></figcaption></figure>

O mesmo autenticou perfeitamente também.

<figure><img src="/files/Odjh4BF1Fm73995Zsae2" alt=""><figcaption></figcaption></figure>

Nas sessões ativas, podemos verificar que o joao.silva também já está conectado.

<figure><img src="/files/WON79vBfjld7eE3yusjS" alt=""><figcaption></figcaption></figure>

## Integrando banco de dados externo com usuários <a href="#integrando-banco-de-dados-externo-com-usuarios" id="integrando-banco-de-dados-externo-com-usuarios"></a>

Agora vamos efetuar a autenticação em um php integrado a um banco de dados **mysql** Inicialmente vou alterar o local da minha página php, e colocar a senha como MD5, formato que ficou na comunicação com o banco.

<figure><img src="/files/hPo5oPRXIsfZoCrTbgTL" alt=""><figcaption></figcaption></figure>

## Criando banco de dados <a href="#criando-banco-de-dados" id="criando-banco-de-dados"></a>

Nesse mysql criamos um banco simples, com uma tabela de usuários, e a senha em md5.

<figure><img src="/files/J9A9fwPAuvaVQozU5vV8" alt=""><figcaption></figcaption></figure>

## Código PHP para integração <a href="#codigo-php-para-integracao" id="codigo-php-para-integracao"></a>

Para o código .php da página, utilizamos o exemplo pronto no site do próprio php. Efetuando somente os ajustes de conexão necessários.

<figure><img src="/files/a790fRNhE8g4YXiaSDfK" alt=""><figcaption></figcaption></figure>

No nosso caso, estamos utilizando o banco no próprio servidor apache, então configuramos como uma conexão local, que seleciona o banco “hotel”, e fazendo a query com o usuário e senha da tabela cp, retornando somente um ok, para caso ele valide corretamente, e erro para caso não valide.

<figure><img src="/files/ZC7UB4cht7TH0qfr9TvB" alt=""><figcaption></figcaption></figure>

## Testando autenticação com banco de dados externo

Efetuamos o teste com o usuário salvo no nosso banco.

<figure><img src="/files/lI9R4m58cF69ZfboaAbs" alt=""><figcaption></figcaption></figure>

Ele autenticou.

<figure><img src="/files/mkjTfOEx35UVOQYZwfU5" alt=""><figcaption></figcaption></figure>

A sessão já está ativa, com essa conexão completa, o funcionamento de todas as outras funções continua exatamente da mesma forma, como a configuração de grupo pelo e2guardian, ou a criação de regras de acesso pelo firewall.

<figure><img src="/files/ANl6uGLJKeafWIzR8nnw" alt=""><figcaption></figcaption></figure>

Podemos efetuar, por exemplo, a adição do usuário em um grupo especifico, já criado e configurado com alguns limites de acesso.

<figure><img src="/files/Wc40zwfS9AtYFxjRyWCL" alt=""><figcaption></figcaption></figure>

Dessa forma, forçando a reinicialização da conexão, podemos avaliar nos logs que o usuário já efetua a conexão dentro do grupo “suporte”, ao qual o adicionamos.

<figure><img src="/files/pJU0qySx6EoCpLH1oghs" alt=""><figcaption></figcaption></figure>
