> 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2F3yDx3KSa4qR5QdZbrfLG%2Fimage.png?alt=media&amp;token=da613f24-a73b-44e2-af50-2f6face546da" 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FstKYD4ieIoPQWCgMEZTQ%2Fimage.png?alt=media&amp;token=caea312b-1e3a-4eff-b7c4-1c064ff541e2" 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FSiVjU03D5FwHReUU4hCa%2Fimage.png?alt=media&amp;token=7f046eb8-ff0c-4749-80ed-2b472b63069f" 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FkZWOno02AYNc3j6u1JBt%2Fimage.png?alt=media&amp;token=1f00442f-c208-4d77-be7d-202a41abba5d" alt=""><figcaption></figcaption></figure>

O nosso teste autenticou.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2F5bdaOib0TcE1jSkwq82H%2Fimage.png?alt=media&amp;token=9165b546-9bcc-4881-8c9f-9bfe50723fb3" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FvF35ggpy0N4izKweo78B%2Fimage.png?alt=media&amp;token=53a406d7-20c8-49ea-b1b4-c4429f91ad27" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FLElS0JQMtOvIsj70kQoV%2Fimage.png?alt=media&amp;token=2aa94562-5e5f-459c-82fc-19f7bdc5e72c" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2F7U4DmUhWGEkU7DOgcFOa%2Fimage.png?alt=media&amp;token=ec08346e-26b0-4b9e-980a-c6b9e91438d9" alt=""><figcaption></figcaption></figure>

O mesmo autenticou perfeitamente também.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FilgKobwy51s2LSJjNwaC%2Fimage.png?alt=media&amp;token=52e1ae77-6585-4c3a-8815-41e40948967c" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2F6rV0jjEXtmfqsos2xalp%2Fimage.png?alt=media&amp;token=e32744c9-d659-4329-b295-2d80ce55829e" 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FQfRTl74nv7cHrETRuNv1%2Fimage.png?alt=media&amp;token=4bd66e42-d6f8-4f3f-9278-96db6a90f5bc" 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2F6SVat2SmKc12dyMMJwJ0%2Fimage.png?alt=media&amp;token=46a55fda-78f2-4884-b751-4b9a1147a6b8" 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FQLFu4yinhTJhoH3kL40s%2Fimage.png?alt=media&amp;token=06c9ce84-5089-467e-91b0-ebdc72ea65cf" 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FoItVRRc98LVjEW3pT0Pv%2Fimage.png?alt=media&amp;token=c8cf8f6c-3b9c-4161-8378-fe8768fe0f53" 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FGpnsBaadNB8B4ODtv5BJ%2Fimage.png?alt=media&amp;token=949296d9-06ba-4445-aaea-bb333afc305d" alt=""><figcaption></figcaption></figure>

Ele autenticou.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FYuZ2Zta3Rc1h6KJfnnQx%2Fimage.png?alt=media&amp;token=ecb51a7f-cf9d-48d7-adcc-a8e98b3b3f67" 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2Fyjopj9KyKCvYQ4I8OiLV%2Fimage.png?alt=media&amp;token=23ab2592-33f8-4ed9-a508-b56e34992612" 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FSqVyyZwQEtUb72Vcwcse%2Fimage.png?alt=media&amp;token=1db1dd91-5532-4992-b90f-777d590a2ac2" 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="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2Fw4xxRgeT5BqXIbwaa5jb%2Fimage.png?alt=media&amp;token=8c5db4ce-3326-4bc3-842e-4a8be97f7529" alt=""><figcaption></figcaption></figure>
