# Redirect

## Integração com FaceSign via SSO e Webview

Este documento descreve o processo de integração com a plataforma **FaceSign** utilizando Single Sign-On (SSO) juntamente com uma página web intermediária. O fluxo inclui redirecionamento, autenticação facial biométrica, criptografia e validação dos dados do usuário.

***

### 1. Crie um Website para Receber o Redirecionamento

Desenvolva uma página web que será responsável por receber o callback do processo de autenticação realizado na plataforma FaceSign. Essa URL será configurada posteriormente no Portal Adm da FaceSign.

Exemplo:

```
https://seusite.com.br/callback
```

***

### 2. Aponte o WebView para Abrir a URL Parametrizada

Abra o seguinte link dentro do WebView da sua aplicação. A URL será disponibilizada pelo Portal Adm da FaceSign, mas deverá conter o parâmetro `clientUserId` preenchido com o CPF do usuário.

Exemplo:

```
https://dev-app.facesign.in/sso/3330bb2d-127e-0000-ada0-f7d99b44d659?clientUserId=123456
```

> 🔐 **Importante:** Utilize sempre HTTPS para garantir a segurança do processo.

***

### 3. Construa o Processo de Captura do CPF

Antes de abrir o WebView, construa um processo na sua aplicação para coletar o CPF do usuário. Este CPF será utilizado como valor do parâmetro `clientUserId` na URL acima.

Exemplo de coleta:

```html
<label for="cpf">CPF:</label>
<input type="text" id="cpf" name="cpf" placeholder="Digite seu CPF">
<button onclick="abrirFaceSign()">Autenticar</button>

<script>
function abrirFaceSign() {
    let cpf = document.getElementById("cpf").value;
    window.location.href = "https://dev-app.facesign.in/sso/3330bb2d-127e-0000-ada0-f7d99b44d659?clientUserId=" + cpf;
}
</script>
```

***

### 4. Envio do CPF por Parâmetro na URL

Envie o CPF coletado como parâmetro na URL para garantir maior segurança no processo de identificação do usuário.

#### Exemplo:

```
https://dev-app.facesign.in/sso/3330bb2d-127e-0000-ada0-f7d99b44d659?clientUserId=12345678901
```

> 🧠 *clientUserId*: Campo esperado pela FaceSign para identificar o usuário na sua base.

***

### 5. Autenticação por Biometria Facial 3D

Após o acesso à URL, o usuário será direcionado ao app da FaceSign (ou ambiente web próprio), onde realizará a autenticação biométrica facial 3D.

***

### 6. Configure a Página de Callback no FaceSign

Acesse o Portal Administrativo da FaceSign e edite as configurações do cliente.

1. Navegue até a **página de edição do cliente**.
2. Acesse a aba **Funcionalidades**.
3. Localize o botão “**Habilitar SSO**” e clique para ativar a funcionalidade.
4.

```
<figure><img src="https://2933983217-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZHOws1GppZYJspgX4wu1%2Fuploads%2FjQa9tH0UEm021Lc3epVL%2Fhabilitar%20SSO.png?alt=media&#x26;token=e851aadd-d3a1-443b-9e2a-23fffecf6692" alt=""><figcaption></figcaption></figure>
```

***

### 7. Selecione a Opção Redirect

Na tela de SSO, selecione a opção **Redirect** para ter acesso ao campo de configuração do endpoint.

<figure><img src="https://2933983217-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZHOws1GppZYJspgX4wu1%2Fuploads%2FtHnkpMSshC2Unn0FIAMq%2FSelecione_Redirect.png?alt=media&#x26;token=81004215-618d-49e2-8771-af67af05a989" alt=""><figcaption></figcaption></figure>

***

### 8. Informe a URL do Website Criado

No campo **“URL para callback redirect”**, informe a URL do website criado anteriormente:

<figure><img src="https://2933983217-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZHOws1GppZYJspgX4wu1%2Fuploads%2F9wXZYeZB87sI4KYU6KEO%2Furl_redirect.png?alt=media&#x26;token=20979cd0-0623-490d-bb04-7fe6fde71f21" alt=""><figcaption></figcaption></figure>

***

### 9. Configure o Website para Receber os Dados do Redirect

Após a conclusão do processo de autenticação, a FaceSign fará um redirecionamento para a URL configurada, enviando dois parâmetros:

```json
{
  "chave": "",
  "user": "ch78YMRvs1yebIU4EwZFK8GqOBujbhcIju4Mu9DLgRQsXyt4Qber9gFqe4Is+Db5UsBlmT0pKkLXe9S+0aLYrUcA4f8Bgj26fgVlKuw+bDGJsBHxuvD5DN0COwVplDz+mKwOdNGvQyjWpZlebmrOrMTeavnNUMha2RUFza1Pyd7DmljbSrpuXaY5zRirP14aCI3Vg7hgt19xvYW2BNjn6ok3CFXw7rXYQqBpln2DhSoDrTYOxTIetFAnYcs1gC5DNCuxjdyOGaxbA1lScsy8eDBATVtc0MOYQ/+S4tj/bLo5it0ACzUSwKcKD6oZPAEKIlzfchA+Yqml4bSMjQF6riGw1P/0/+m2VUjkyTxLeSSQ67Atm0h1YTW4ctKCzl5kOOq6YBRUsY3pr2l4xn3G+zfI/XcwK/8ZSNHkFdQO4="
}
```

> Você deve capturar esses valores e prosseguir com a etapa de validação.

***

### 10. Faça uma Chamada para a API de Descriptografia

Utilize a API abaixo para validar os dados recebidos:

#### Endpoint:

```
POST /api/SingleSignOn/Validate
```

#### Headers:

```http
Content-Type: application/json
```

#### Body:

```json
{
  "key": "<valor_do_parâmetro_chave>",
  "data": "<valor_do_parâmetro_user>"
}
```

> 💡 Substitua `<valor_do_parâmetro_chave>` e `<valor_do_parâmetro_user>` pelos valores recebidos na URL de callback.

***

### 11. Receba os Dados Descriptografados

Você receberá uma resposta contendo os dados do usuário autenticado. Um exemplo é:

```json
{
  "clientId": "30af224e-9ac6-40eb-89f9-b2a7d2081a59",
  "status": "Ativo",
  "cpf": "24748342820",
  "name": "Leandro Gujev Firmino",
  "face": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFB...",
  "coordinates": "latitude: -20.4238977, longitude: -49.9681062",
  "ipAdrress": "192.168.2.116",
  "transactionID": "68290cd6-4517-4d71-6730-08dd51a42f40"
}
```

***

### 12. Valide e Autentique o Usuário na Sua Aplicação

Com os dados recebidos:

1. Confirme se o status retornado é `"Ativo"`.
2. Verifique se o CPF corresponde ao usuário esperado.
3. Valide os campos adicionais conforme necessário (ex: localização, IP, face).
4. Libere ou negue o acesso com base nos dados recebidos.

> ⚠️ **Recomendação de Segurança**: Armazene apenas os dados essenciais do usuário e siga as normas de proteção de dados (ex.: LGPD).

***

### Considerações Finais

Ao seguir este guia, você conseguirá integrar com segurança o processo de autenticação biométrica facial com sua aplicação, aumentando significativamente a confiabilidade das transações e acessos dos usuários.

### Suporte e Contato

Para suporte técnico ou dúvidas, utilize o Portal Admin FaceSign ou entre em contato com nossa equipe através dos canais oficiais.

***
