Análise de Risco
Toda a operação de análise de risco é feito através da API REST disponibilizada pelo Authfy Risk, A operação é dividida em duas etapas, primeiro é realizado um POST enviando informações sobre a transação, dispositivo e usuário, caso seja necessário um duplo fator de autenticação a API irá retornar o código INCREASE, nesse caso se o usuário conseguir responder o desafio do segundo fator de autenticação é então enviado um PUT com o ID da transação reportando este sucesso, a partir dai o dispositivo e seu DNA estará vinculado ao usuário diminuindo o score de risco em transações posteriores.
Avaliação de Risco
Documentação da API: /apidocs/#/risk/post_evaluate__username_
Pré-requisitos:
- Client criado e headers de client-id e access-key informados durante a requisição a API.
- Nome de usuário criado e associado ao Client.
Parâmetros:
- username:
- Obrigatório: Sim
- Tipo: String
- Localização: Path da requisição
- Descrição: O nome do usuário associado ao client que está tentando realizar a transação.
- custom_attributes:
- Obrigatório: Não
- Tipo: JSON
- Localização: Corpo da requisição
- Descrição: Chave-valor dos itens adicionais a avaliação de risco, o mesmo serve para fazer a avaliação de triggers em determinado atributo e para identificar um tipo de transação.
- ip_address:
- Obrigatório: Não
- Tipo: String
- Localização: Corpo da requisição
- Descrição: Endereço IP da requisição
- host:
- Obrigatório: Não
- Tipo: String
- Localização: Corpo da requisição
- Descrição: Hostname presente no header http
- fingerprint:
- Obrigatório: Não
- Tipo: JSON
- Localização: Corpo da requisição
- Descrição: DNA (Fingerprint) do dispositivo utilizado na transação, segue exemplo abaixo:
"fingerprint": { "system":{ "platform":"Android25", "id":"XXXXXX", "version":"7.1.1", "device_name":"j5xnlte", "model":"SM-J510MN", "host":"XXXXX", "id":"XXXXX", "cpu":"armeabi-v7a", "hardware":"qcom", "manufacturer":"samsung", "serial":"XXXXXXX", "radio":"XXXXXXX", "process_name":"com.intellimobile", "system_name":"Android OS", "rooted":false, "tz":"America/Sao_Paulo", "total_disk":"11217", "total_ram":1891, "cpus":4 }, "display":{ "width":"720", "height":"1280" }, "wireless":{ "connected":true, "mac":"XXXXXXXXXX", "ip":"192.168.86.119", "netmask":"255.255.255.0", "gateway":"192.168.86.1", "broadcast":"192.168.86.255", }, "sim":{ "imei":"XXXXXXX", "carrier":"Claro BR", "country_code":"br", "roaming":false, "serial":"XXXXXXXX", } }
- username:
Exemplos:
- Curl:
curl -X POST \ -H 'content-type: application/json' \ -H 'api-key: $API_KEY' \ -H 'access-key: $ACCESS_KEY' \ "https://authfy-risk.example/api/evaluate/$USERNAME" \ -d '{ "ip_address":"10.0.0.1", "custom_attributes": {"ted": 3000, "ted_transaction": 1}, "fingerprint": { "system":{ "platform":"Android25", "version":"7.1.1", "device_name":"j5xnlte", "model":"SM-J510MN", "cpu":"armeabi-v7a", "hardware":"qcom", "manufacturer":"samsung", "process_name":"com.intellimobile", "system_name":"Android OS", "rooted":false, "tz":"America/Sao_Paulo", "total_disk":"11217", "total_ram":1891, "cpus":4 }, "display":{ "width":"720", "height":"1280" }, } }'
- Curl:
Associação de Dispositivo ao Usuário
- Pré-requisitos:
- Client criado e headers de client-id e access-key informados durante a requisição a API.
- Nome de usuário criado e associado ao Client.
- Ter realizado uma avaliação de risco e recuperar o ID da transação na resposta
Parâmetros:
- username:
- Obrigatório: Sim
- Tipo: String
- Localização: Path da requisição
- Descrição: O nome do usuário associado ao client que está tentando realizar a transação.
- transaction_id:
- Obrigatório: Sim
- Tipo: String
- Localização: Corpo da requisição.
- Descrição: O ID da transação realizada previamente
- associate:
- Obrigatório: Sim
- Tipo: Boolean
- Localização: Corpo da requisição.
- Descrição: Caso o duplo fator de autenticação tenha sido feito com sucesso, enviar como true.
- username:
Exemplos:
- Curl:
curl -X PUT \ -H 'content-type: application/json' \ -H 'api-key: $API_KEY' \ -H 'access-key: $ACCESS_KEY' \ "https://authfy-risk.example/api/evaluate/$USERNAME" \ -d '{ "transaction_id": "f9eb8fc1-8e21-445b-a384-653205ff21e9", "associate": true }'
- Curl: