# 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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.userauth.com.br/configurando-o-seu-userauth/escolha-as-suas-autenticacoes/opcoes-de-autenticacoes-avancadas/social-login-com-o-facebook.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
