Autenticação e Autorização

O padrão oAuth2 é utilizado para autenticação e autorização. Todas as requisições devem possuir um http header “Authorization” que deve conter os dados de autenticação;

Autenticação simples

A autenticação simples segue o padrão Basic Http Auth (https://tools.ietf.org/html/rfc7617), que basicamente é o envio do prefixo “Basic” concatenado com o schema encodado em base 64. O schema é definido por “username:otp”.

Request Ex:

Authorization

Basic <schema encodado em base64>

Autenticação com abertura de sessão

A autenticação com abertura de sessão envolve um parâmetro adicional para especificar se o access token será retornado ou não, no qual será o lifetime da sessão e se a sessão será automaticamente finalizada no fim da transação.

Caso seja enviado a flag “returnAccessToken” com o valor true, na resposta http do serviço será recebido o header “VCSchemaData”, que conterá o access token, o lifetime (da sessão) e o provider (id da nuvem configurado na variável de ambiente urlsMultiCloud).

Quando enviado o parâmetro lifetime, deve ser enviado o tempo da sessão em segundos (respeitando as regras do provedor de serviços de criptografia em uso). Caso não seja enviado, o CESS irá utilizar o lifetime padrão da instância/aplicação.

Caso seja enviado o parâmetro autoRevoke com o valor false, ele irá desativar a revogação automática da sessão no fim da transação (útil para reuso de uma autenticação por um período)

Request Ex:

Authorization

Basic <schema encodado em base64>

VCSchemaCfg

returnAccessToken=true;lifetime=999;autoRevoke=true

Response Ex:

VCSchemaData

accessToken;lifetime;provider

Autenticação com sessão já aberta

Request Ex:

Authorization

Bearer <token de acesso>

Autenticação especial

A autenticação especial deve ocorrer através do Vault Cloud Schema (Somente para provedores crypto pki indicados).

O Schema pode ser definido da seguinte forma:

  1. username:otp

  2. username:otp@ip

  3. username:otp@ip:port

  4. username|accesstoken

  5. username|accesstoken@ip

  6. username|accesstoken@ip:port

  7. provider-username:otp

  8. provider-username:otp@ip

  9. provider-username:otp@ip:port

  10. provider-username|accesstoken

  11. provider-username|accesstoken@ip

  12. provider-username|acesstoken@ip:port

Request Ex:

Authorization

VCSchema <schema encodado em base64>

Revogar sessão

O serviço funciona para assinaturas attached (conteúdo anexado na assinatura) e detached (conteúdo não anexado na assinatura).

POST http://cess.local/revoke

Headers

NameTypeDescription

Content-Type

string

application/json

Request Body

NameTypeDescription

token

string

Token de acesso recebido durante a abertura de sessão

{
    "revoked": true
}

Last updated