> 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/social-login-com-o-facebook.md).

# Social Login com o Facebook

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

Inicialmente na guia de configuração do UserAuth, devemos configurar o acesso através do Facebook.

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

## Adicionamos o app ID do Facebook <a href="#adicionamos-o-app-id-do-facebook" id="adicionamos-o-app-id-do-facebook"></a>

Também abaixo na configuração, definimos um Facebook ID, que pode ser obtido no link de developers do Facebook.

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

## Configurando app ID no Facebook <a href="#configurando-app-id-no-facebook" id="configurando-app-id-no-facebook"></a>

Na página dos developers, podemos seguir um modelo de configuração comum, utilizado normalmente na web, não esquecendo de configurar as URLs de política de privacidade e de termos de serviço. Ambas as URLs devem ser validas.

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

E definir a URL do site, essa que deve ser a URL do captive portal.

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

## Criando liberações de acesso para autenticação <a href="#criando-liberacoes-de-acesso-para-autenticacao" id="criando-liberacoes-de-acesso-para-autenticacao"></a>

Em seguida, podemos criar um grupo de pré-autenticação, onde teremos uma política de acesso a esse grupo já pré-definidas, onde será possível efetuar a autenticação sem problemas, basta clicar no botão indicado como na imagem abaixo:

<figure><img src="/files/4IghJ08t1xlDoiZOIGfv" alt=""><figcaption></figcaption></figure>

Podemos também estabelecer um tempo limite para os usuários temporários **(Byspass conn time)**, os quais serão gerados para que possam se autenticar nas redes sociais, junto a política já pré-definida. Ainda será possível ou não, aplicar um grupo após sua autenticação **(Force E2Guardian group)**, com políticas de acessos de sua preferência, ou seja, após esta autenticação bem sucedida, poderemos dizer que este usuários autenticado por redes sociais pertencem a um determinado grupo do webproxy.

Como podemos observar, ao clicar na opção acima, automaticamente é criado um grupo e uma ACL no E2Guardian.

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

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

Assim é liberado automaticamente os endereços necessários para que seja realizado a autenticação pelas redes sociais.

## Testes com autenticação com Facebook <a href="#testes-com-autenticacao-com-facebook" id="testes-com-autenticacao-com-facebook"></a>

Após configurado, podemos tentar efetuar uma conexão na web através de nossa máquina virtual. Podemos perceber que o mesmo já aparece a opção do Facebook acima.

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

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

Quando algum dispositivo tentar realizar a autenticação pelo Facebook ele criará um usuário temporário para que haja conectividade parcial do dispositivo, aplicando as politicas de acesso do grupo criado com botão **“*****Create Social login group and ACL*****”**, liberando apenas o necessário para autenticação.

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

Esse usuário ficará ativo até o fim da autenticação ou o tempo limite configurado na opção **“*****bypass conn limit*****”** se exceder.

Após a autenticação, ele já disponibilizará o acesso através do perfil do Facebook, substituindo o usuário temporário pelo perfil da rede social.

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

Na guia de conexões ativas, podemos verificar que ele já efetua a conexão do usuário, e quando executada a conexão, a ferramenta, pega o nome e sobrenome do usuário no Facebook, e substitui o espaço por ponto, dessa forma, facilita a criação de regras sobre os usuários que estão conectados.

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

Também na ferramenta, possuímos a opção de bloquear todos os sites antes da pessoa se autenticar, mesmo que necessite do Facebook para essa autenticação, pois a ferramenta compreende que a conexão está sendo realizada por fora do próprio captive portal.

Porém algumas vezes, a liberação por login social acaba dando a liberdade de acesso a rede para muitos usuários desconhecidos, e caso a sua organização seja grande, acaba se tornando inviável avaliar todos os Facebooks e adicioná-los a um grupo, visto que, se a pessoa alterar o nome do Facebook, perde a conexão. Dessa forma foi implementada a opção de moderate login social, dentro do UserAuth.

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

Assim, quando efetuada a conexão através do "login social", a solicitação de conexão será encaminhada para uma aba de "login social moderation", onde um funcionário, por exemplo, pode efetuar a liberação a partir da solicitação de conexão, dessa forma, a liberação só é efetuada após alguém liberar.

<figure><img src="/files/22GrQL6gINySxCYCOc4I" alt=""><figcaption></figcaption></figure>

Então vamos testar. Tentando acessar de um site qualquer, já caímos na tela de login pelo Facebook. Ao efetuar a conexão pelo Facebook, ele já efetua a autenticação, e joga para uma tela de aguarde.

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

Na guia do admin, já recebemos a solicitação de liberação. Vamos efetuar o primeiro teste rejeitando a conexão através.

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

Com a conexão rejeitada podemos verificar que o site já efetua o retorno a página inicial, informando que ouve a rejeição a conexão.

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

Dessa forma, ao atualizar a página, ela já nos disponibiliza a conexão novamente. Novamente o social é encaminhado ao moderador, vamos desta vez efetuar a liberação.

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

Assim que liberado, o usuário já passa a acessar a rede normalmente.

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

Assim que conectado, o mesmo já aparece nas conexões ativas.

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

## Banindo usuários por MAC <a href="#banindo-usuarios-por-mac" id="banindo-usuarios-por-mac"></a>

Agora, supondo que você não deseje que haja mais esta solicitação dessa pessoa, depois de várias solicitações negadas, vamos recarregar a nossa conexão e efetuar o banimento da mesma.

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

Assim que adicionado ao banned, o próprio UserAuth reconhece o MAC Address que está tentando efetuar a conexão e adiciona a guia Banned, essa que libera a opção de banir um MAC ou adicionar algumas contas com o **"nome.sobrenome\@redesocial"**. Por enquanto o pacote possui apenas o Facebook, mas assim que ela possuir outras, as mesmas já podem ser adicionadas.

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

Assim que banido, a tela do usuário já recebe essa informação.

## Banindo usuários por nome <a href="#banindo-usuarios-por-nome" id="banindo-usuarios-por-nome"></a>

Vamos efetuar a remoção do MAC address da regra de banimento, e agora bloquear o nosso usuário.

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

Na tela do usuário a opção de acessar com a media social já é disponibilizada, mas quando tentado acessar, o mesmo retorna com o erro, social account banned.

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