Pular para o conteúdo principal

Referência de Backend e API

📚 Referência de Backend e API

Referência da chamada de backend do XE, do gkas_config que você envia à página e da função de init do coletor.

🔒 O gkas_solution é um token opaco. Seu conteúdo e formato são intencionalmente não documentados. O seu backend o repassa inalterado ao checkaccessxe; você nunca lê, monta ou interpreta esse token.


Frontend: gkas_init(...)

Fornecido pelo script hospedado do GuardianKey (gkas-setup-latest.js). Liga‑se ao formulário de login e monta o gkas_solution no submit.

gkas_init(gkas_config, formElement, nomeDoCampoUsuario, debug = false)
ParâmetroTipoDescrição
gkas_configobjectO { url, salt, once, time } que o seu backend gerou para este carregamento.
formElementHTMLFormElementO formulário de login a ser ligado.
nomeDoCampoUsuariostringNome do input de usuário — vinculado à tentativa.
debugbooleanOpcional. Mostra um painel de diagnóstico. Padrão false.

No submit, o coletor injeta um campo oculto gkas_solution no formulário, de modo que o POST que o seu backend recebe já o inclui automaticamente.


gkas_config (página → coletor)

Montado por carregamento pelo seu backend e embutido na página. Os mesmos campos que o backend depois passa ao checkaccessxe.

CampoTipoDescrição
urlstringOrigem + caminho da página/endpoint. Parte do challenge vinculado.
saltstringUm salt por implantação.
oncestringNonce de uso único — gere por carregamento, guarde na sessão, valide no POST.
timestringTimestamp Unix (como string) da geração.
{
"url": "https://app.exemplo.com/login.php",
"salt": "demo_salt",
"once": "9f1c…",
"time": "1754428303"
}

Backend: checkaccessxe(...)

Da guardiankey.class.php de referência. Envia o evento de backend e o gkas_solution do frontend ao GuardianKey, retornando uma decisão em JSON.

function checkaccessxe(
$username,
$useremail = "",
$url, $salt, $once, $time,
$gk_solution, // o gkas_solution opaco do POST, inalterado
$attempt = "0" // "0" = senha correta, "1" = falhou
)
ParâmetroDescrição
$usernameO identificador do usuário, do formulário de login.
$useremailEmail opcional; "" se não usado.
$url, $salt, $once, $timeOs mesmos valores do gkas_config desta tentativa.
$gk_solutionO gkas_solution recebido no POST — repasse inalterado.
$attempt"0" se a senha estava correta, "1" caso contrário.

Internamente ele faz POST para …/v3/gkas/{authgroupid}/checkaccessxe com o header X-Api-Key, empacotando um backend_data (evento) e um frontend_data ( gkas_solution, url, salt, once, time ). Nenhuma mudança na classe de referência é necessária — ela repassa o token como está.

GKconfig (credenciais)

Construa o cliente com as suas credenciais GuardianKey. Elas ficam apenas no backend — nunca na página.

$GKconfig = [
'agentid' => 'sdk',
'key' => 'BASE64_KEY',
'iv' => 'BASE64_IV',
'service' => 'SeuNomeDeServico',
'orgid' => 'YOUR_ORG_ID',
'authgroupid' => 'YOUR_AUTHGROUP_ID',
'api_key' => '', // derivado abaixo
'reverse' => 'True',
];
// api_key = sha256(key + iv)
$GKconfig['api_key'] = hash('sha256', $GKconfig['key'] . $GKconfig['iv']);

Resposta

checkaccessxe retorna uma string JSON com o mesmo modelo do Auth Security clássico. O campo decisivo é response:

{
"response": "ACCEPT",
"risk": 5.047,
"risk_context": 5.0,
"risk_intel": 0.05,
"country": "Brazil",
"client_os": "Linux",
"client_ua": "Chrome",
"eventId": "3e1c389c1ae49efc…",
"message": "Origin not found in the threat DB."
}
responseAção
ACCEPTPermitir o acesso.
NOTIFYPermitir, opcionalmente com verificação extra / notificação ao usuário.
BLOCKNegar o acesso, mesmo que a senha esteja correta.

⚠️ Sempre valide o response antes de conceder acesso. No BLOCK, retorne uma mensagem genérica ("usuário ou senha inválidos") para evitar vazamento de informação.


Veja também