itribDOCS

Autenticação com a API

 

A autenticação com a API itribDOCS pode ser realizada de duas maneiras:

 

 

Toda requisição solicitada à API terá a seguinte estruturação:

 

{
"autenticacao": 
    {
        "tokenJWT": "",;
        "cnpj": "",
        "token": ""
    },
"parametros":
    {
        ...
    }
}

O grupo autenticação autenticacao é responsável pelos dados de quem está efetuando a requisição ao serviço, sendo necessário a informação: tokenJWT ou cnpj e token.

Desta forma, é possível realizar a comunicação com a API de uma forma mais segura, utilizando um tokenJWT ou uma maneira mais simples, informando os dados do requisitente cnpj e token.

Você decide qual se aplica melhor no seu dia a dia!

 


Token JWT

 

Para gerar o Token JWT é necessário:

 

No grupo de Claim "Reinvidicações" deverá ser utilizado:

    "iat" : "{DATA DE CRIAÇÃO}"
    "cnpj" : "{CNPJ DA EMPRESA}"
    "exp" : "{DATA DE EXPIRAÇÃO DO TOKEN}"

* DATA DE CRIAÇÃO e DATA DE EXPIRAÇÃO DO TOKEN no formato Numeric Date
* CNPJ no formato numérico, sem máscaras e com 14 dígitos.

A chave de segurança será o Token individual da empresa. Ela é única e servirá para gerar a assinatura do conteúdo do tokenJWT.

E por último a expiração do token, será uma data definida pelo próprio consumidor da API, da maneira que achar mais utilizável em sua aplicação.

 

 

Uma estrutura exemplo para geração do Token JWT:

 


HEADER: 
{
    "alg": "HS512",
    "typ": "JWT"
}
PAYLOAD:
{
    "iat": "1601471278",
    "cnpj": "12345678912345",
    "exp": "1601474878"
}

 

 

Exemplo de geração do Token JWT em C#

 

    
    var Lobj_SSK = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(TOKEN_DA_EMPRESA));
    var Lobj_Chave = new SigningCredentials(Lobj_SSK, SecurityAlgorithms.HmacSha512);

    List Lcol_Claims = new List()
    {
        new Claim(JwtRegisteredClaimNames.Iat, Convert.ToInt32(
                                                Math.Truncate(
                                                    DateTime.Now.ToUniversalTime().Subtract(
                                                        new DateTime(1970, 1, 1, 0, 0, 0,DateTimeKind.Utc)
                                                    ).TotalSeconds)
                                                ).ToString()),
        new Claim("cnpj",CNPJ_DA_EMPRESA)
    };


    var secToken = new JwtSecurityToken(
        signingCredentials: Lobj_Chave,
        claims: Lcol_Claims,
        //Expira em uma hora
        expires: DateTime.UtcNow.AddSeconds(60 * 60));

    var Lobj_JWTH = new JwtSecurityTokenHandler();
    string Lstr_TokenJWT = Lobj_JWTH.WriteToken(secToken);

 

Ainda com dúvidas sobre o Token JWT?

 

No site https://jwt.io podem ser obtidas mais informações, pode-se efetuar testes nos tokens e existem bibliotecas prontas para uso em diversas linguagens de programação.

Caso ainda assim persistam dúvidas, entrem em contato com nossa equipe.