Ir para o conteúdo

Conceitos

O Autoriza implementa primariamente um controle de autorização baseado nos perfis e transações de um usuário (RBAC).

Cada aplicação parceira do Autoriza precisa ser um sistema cadastrado no Acesso gov.br. O sistema deve possuir ao menos um perfil de acesso, e pode ter transações associadas. Cada transação deve estar vinculada a, no mínimo, um perfil.

Opcionalmente, um sistema pode definir suas políticas de acesso no Autoriza. Para sistemas que utilizam a feature Tag , podem definir uma política específica relacionada a uma Tag cadastrada para o sistema. Essas políticas são definidas no formato PML, no padrão:

nome dos perfis,nome das transações,identificador do recurso,verbo HTTP

confome os exemplos:

AUDITOR|EQUIPE TECNICA,*,/private/protocolo,GET
*,GESTAO PROTOCOLOS,/private/protocolo,POST

A primeira linha permite que um usuário com o perfil AUDITOR ou EQUIPE TECNICA realize uma requisição GET para o recurso protocolo. A segunda permite que um usuário com acesso a transação GESTAO PROTOCOLO realize uma requisição POST para o recurso protocolo.

Os perfis são concedidos para um usuário através de uma atribuição de perfis.

O controle de acesso é realizado aplicando as:

🔒 políticas de acesso do sistema ou do sistema e tag

uma vez que são recuperados:

🔑 os perfis e transações que o 👩 usuário possui,

para definir se o usuário ✅ pode ou 🚫 não acessar o 📄 recurso da aplicação que está solicitando.

Para sistemas que possuem a configuração da features Tag, caso o parâmetro Tag seja informado, serão considerados os perfis associados ao valor de parametro Tag informado, assim como as avaliações de acesso serão baseadas na política específica da Tag informada.

No processo de avaliação de uma política de acesso é considerada a credencial de acesso do usuário logado no sistema Acesso gov.br.
Para um Perfil concedido ao usuário ou para uma Transação vinculada a um Perfil, pode ser configurado o indicador de
'Obrigatoriedade de uso de Certificado Digital'. Caso este indicador esteja marcado, o Autoriza irá restringir ou permitir o acesso:

1) Caso o usuário tenha logado com Certificado Digital no Acesso gov.br , todos os perfis e transações atribuídos ao usuário no sistema requisitado serão retornadas, independentes de exigirem ou não Certificado Digital.

2) Caso o usuário tenha logado com credencial de acesso diferente de Certificado Digital (ex.: usuário e senha), serão retornadas apenas os perfis e transações atribuídas ao usuário
no sistema que não exigem uso de Certificado Digital.

O Autoriza é uma solução multi-tenancy, atende a diversos clientes e sistemas e, como tal, precisa suprir as diversas necessidades particulares de cada sistema em termos de controle de autorização de acesso. Para isso, ele oferece uma série de configurações opcionais que são selecionadas individualmente para cada sistema, formando um conjunto exclusivo para ele. Essas configurações opcionais são as features e características de usuário.

Glossário

Definição de termos e siglas usados na documentação.

Termo Descrição
JWT JSON Web Tokens Formato baseado em JSON para troca de informações entre aplicações de forma segura.
PML PERM Modeling Language Linguagem específica de domínio capaz de expressar regras em vários modelos de controle de acesso.
RBAC Role Based Access Control Controle de acesso baseado nos papéis/funções de um usuário.
ABAC Attribute-based access control Controle de acesso baseado em atributos do usuário e/ou ambiente.
RSA Rivest-Shamir-Adleman Sistema de criptografia assimétrica usado para transmissão segura de dados.
XACML eXtensible Access Control Markup Language Padrão que define uma linguagem, uma arquitetura e um modelo de processamento para controle de acesso a uma aplicação.
Aplicação Parceira Sistema que utiliza o Autoriza no controle de acesso.
Provider / Adapter Biblioteca do Autoriza embarcada na aplicação parceira para realização da autorização.
Gestor de Acesso Usuário que tem permissão para atribuir perfis, de alguma aplicação parceira, para outros usuários na interface administrativa do Autoriza.
Gestor de Sistema Usuário que tem permissão para criar perfis e transações, para alguma aplicação parceira, na interface administrativa do Autoriza.

Conceitos do Domínio

O diagrama abaixo ilustra o relacionamento entre as entidades básicas do modelo de domínio do Autoriza.

Representação básica do domínio

Conceito Descrição
Usuário Cidadão brasileiro com CPF cadastrado no Acesso gov.br.
Sistema Sistema de governo integrado ao Acesso gov.br.
Perfil Possível função de um usuário na aplicação cliente. Os perfis estão diretamente relacionados às personas da aplicação cliente, ou atores dos casos de uso da aplicação cliente.
Perfil Agregador Especialização de Perfil, que possui perfis associados como filhos.
Transação Possível permissão de um usuário na aplicação cliente. As transações são os elementos que permitem a divisão dos acessos da aplicação por conjunto de funcionalidades, e a posterior distribuição dessas possibilidades de acesso entre os perfis. Pode ser configurada para uma transação se exige login com Certificado Digital no Acesso gov.br.
Política de Acesso Elemento que discrimina quais perfis e/ou transações o usuário precisa possuir para ter acesso a um determinado recurso da aplicação. É expressa em PML.
Atribuição Registra a concessão de um determinado conjunto de perfis a um usuário em um sistema. É recuperando as atribuições de um usuário que o Autoriza determina se ele pode ou não acessar determinado recurso.
Tag Etiqueta de classificação para perfis e políticas de acesso para facilitar a governança dos dados do domínio de autorização da aplicação cliente.

Features

Além do controle de acesso básico implementando o RBAC, o Autoriza oferece uma série de customizações possíveis para uma aplicação parceira. Essas customizações, chamadas de features, são definidas em termos de novas informações que precisam ser fornecidas por um gestor de acesso ao atribuir um novo conjunto de perfis para um usuário.

As novas informações correspondem a novos campos que são agregados ao conjunto de perfis da atribuição, e passam a ser tratados em todos os fluxos do controle de acesso, de uma forma tal que possibilita, à aplicação parceira, a utilização de qualquer uma dessas informações como critério de filtragem para o controle de acesso.

O diagrama abaixo ilustra o relacionamento entre sistema e feature no modelo de domínio do Autoriza.

Representação domínio features

As features disponíveis para uso na configuração das aplicações parceiras são as listadas a seguir:

Feature Descrição Campo correspondente na atribuição Tipo do campo
Certificado Digital Define que um determinado conjunto de perfis só pode ser utilizado por um usuário logado no Acesso gov.br com certificado digital. exigeCertificadoDigital Booleano
Vigência Define que um determinado conjunto de perfis só pode ser utilizado por um usuário logado no Acesso gov.br durante o período definido por data inicial e data final,respeitando o formato AAAA/MM/DD dataInicioVigencia e dataFimVigencia Texto
Horário Define que um determinado conjunto de perfis só pode ser utilizado por um usuário logado no Acesso gov.br durante o intervalo de tempo diário definidos pela hora inicial e final, respeitando o formato HH:MM horaInicio e horaFim Texto
Dias da Semana Define que um determinado conjunto de perfis só pode ser utilizado por um usuário logado no Acesso gov.br em determinados dias da semana. Os dias são respectivamente indicados por uma sequência de sete dígitos numéricos, iniciando pelo Domingo. O valores aceitos são 1 para permissão de acesso e 0 para negação. diasDaSemana Texto
Órgão SIAPE Define que um determinado conjunto de perfis só pode ser utilizado por um usuário logado no Acesso gov.br em um determinado órgão. O código do órgão pode ser utilizado como critério de filtragem das atribuições de perfis do usuário. cdOrgaoSiape Numérico
UORG SIAPE Define que um determinado conjunto de perfis só pode ser utilizado por um usuário logado no Acesso gov.br em uma determinada UORG. O código da Uorg pode ser utilizado como critério de filtragem das atribuições de perfis do usuário. cdUorgSiape Numérico
UPAG SIAPE Define que um determinado conjunto de perfis só pode ser utilizado por um usuário logado no Acesso gov.br em uma determinada UPAG. O código da UPAG pode ser utilizado como critério de filtragem das atribuições de perfis do usuário. cdUpagSiape Numérico
Órgão Siorg Define que um determinado conjunto de perfis só pode ser utilizado por um usuário logado no Acesso gov.br em um determinado órgão de estrutura Siorg. O código do órgão pode ser utilizado como critério de filtragem das atribuições de perfis do usuário. cdOrgaoSiorg Numérico
Unidade Siorg Define que um determinado conjunto de perfis só pode ser utilizado por um usuário logado no Acesso gov.br em uma determinada Unidade Siorg. O código da Unidade pode ser utilizado como critério de filtragem das atribuições de perfis do usuário. cdUnidadeSiorg Numérico
Nível de Acesso Define que um determinado conjunto de perfis só pode ser utilizado por um usuário logado no Acesso gov.br em um determinado nível de acesso. O nome do nível de acesso pode ser utilizado como critério de filtragem das atribuições de perfis do usuário. nivelAcesso Texto
Configurável Permite definir um campo texto arbitrário, que satisfaça a uma expressão regular também customizável, a ser solicitado durante a atribuição de perfis para um usuário. Definido na configuração da feature para o sistema. Texto
Tag Identifica um agrupamento de perfis na aplicação cliente. As tags são os elementos que marcam os perfis para determinado agrupamento ou identificação de conceito no sistema. Define que um determinado conjunto de perfis pode ser submetido a uma política definida para uma determinada tag durante a avaliação de acesso de um usuário logado no Acesso gov.br . - -
Habilitação Permite que uma aplicação cliente repita perfis atribuídos para um mesmo usuário, desde que as atribuições sejam para valores diferentes das demais features da aplicação cliente, conforme configuração realizada na interface administrativa do Autoriza para definir o critério de unicidade a ser utilizado na verificação de duplicidade de atribuição de perfil. - -
Perfil Agregador Permite que uma aplicação cliente crie conjuntos de perfis, através de uma relação pai-filhos (perfil agregador - perfis simples), permitindo que um gestor de sistema adicione (ou remova) perfis de vários usuários num mesmo momento, ao manipular o conjunto de perfis sob um perfil pai atribuído a vários usuários. - -

Exemplo do uso de features

O conjunto de features que é utilizado é particular para cada sistema, permitindo que uma aplicação parceira mais simples (que chamaremos de "Aplicação Simples") utilize apenas o RBAC básico, e uma outra aplicação com um controle de acesso mais complexo (que chamaremos de "Aplicação Complexa") utilize o RBAC, a feature Certificado Digital e ainda uma feature Configurável nomeada Protocolo, que aceita valores de 10 dígitos númericos, por exemplo.

Para a "Aplicação Simples", os perfis e transações que um usuário possui são retornados pelo Autoriza sem campo adicional de informação, permitindo uma aplicação direta do RBAC.

Para a "Aplicação Complexa", os perfis e transações são retornados associados aos valores dos campos correspondentes às features:

exigeCertificadoDigital
protocolo

Então é possível, ainda que não seja necessário, que a aplicação parceira parametrize as funções de controle de acesso do Autoriza para elas só considerarem os conjuntos de perfis atribuídos cujo valor do protocolo é "2368947512", por exemplo. Adicionalmente, o Autoriza não considerará os conjuntos de perfis com valor do exigeCertificadoDigital como "true" caso o usuário não esteja logado com certificado digital de pessoa física no Acesso gov.br.

Para uma outra aplicação, que utilize as configurações para vigência, horário, dias da semana, nível de acesso, órgão SIAPE, uorg SIAPE e upag SIAPE, os perfis e transações são retornados associados aos valores dos campos correspondentes às features:

exigeCertificadoDigital
dataInicioVigencia e dataFimVigencia (vigência)
horaInicio e horaFim (horário)
diasDaSemana
cdOrgaoSiape
cdUorgSiape
cdUpagSiape
nivelAcesso

O Autoriza considerará os perfis cujos valores data, horário, dia da semana, nível de acesso, código de órgão do SIAPE, código de UORG do SIAPE e código de UPAG do SIAPE da realização do login estejam, respectivamente, dentro dos valores configurados para os campos das features correspodentes.

Tags

As tags são etiquetas de classificação para segmentar os perfis e políticas de acesso de um sistema.

O diagrama abaixo ilustra o relacionamento entre sistema, políticas de acesso, perfil e tag no modelo de domínio do Autoriza.

Representação domínio tags

Quando um sistema utiliza a feature Tag, é possível associar etiquetas aos perfis e políticas de acesso da aplicação cliente, de tal modo a permitir que, em um dado momento, durante o processo de autorização de acesso, o tráfego de informação de autorização de acesso entre a aplicação cliente e o Autoriza trata apenas de um subconjunto das informações de autorização cadastradas para a aplicação e o usuário.

O uso das tags permite uma sensível diminuição na quantidade de informação que deve ser trafegada entre as aplicações durante o processo de autorização, conforme figura a seguir.

Acesso com adapter utilizando tags

Habilitação

A feature habilitação influencia o controle da atribuição de perfis realizada pelo Autoriza:

  • 🚫 Caso a aplicação parceira não utilize a feature, um gestor de acesso pode atribuir um perfil para um usuário apenas uma vez.
  • ✅ Caso a aplicação cliente utilize a feature, um gestor de acesso pode atribuir um perfil para um usuário mais de uma vez, seguindo os critérios de unicidade definidos na configuração da aplicação cliente.

Ela também permite que um sistema trate isoladamente uma atribuição de perfis durante o processo de autorização. Ainda que o usuário possua várias atribuições de perfis, a aplicação cliente pode informar que deseja tratar uma atribuição específica durante o processo de autorização, limitando os perfis do usuário que serão utilizados para verificar o acesso.

Acesso com adapter utilizando habilitacao

Perfil Agregador

Os perfis agregadores são perfis especiais, que possuem um conjunto de perfis filhos associados.

O diagrama abaixo ilustra o relacionamento entre sistema, perfil, perfil agregador e transacao no modelo de domínio do Autoriza.

Representação domínio perfil agregador

Quando um sistema utiliza a feature Perfil Agregador, é possível construir conjuntos de perfis, que ficarão sob o perfil agregador, de tal modo a permitir que, em um dado momento, o gestor de sistema adicione ou remova perfis de vários usuários sem ter que manipular individualmente cada atribuição.

Durante o processo de autorização, todos os perfis filhos (e suas respectivas transações) dos perfis agregadores atribuídos ao usuário são também considerados como perfis e transações que o usuário possui.

Características de Usuário

O Autoriza também tem sua modalidade de ABAC, com o controle de acesso baseado em determinadas características de usuário. Essas características fazem parte do modelo de negócio e estão sob a gestão de outros sistemas, dos quais o Autoriza consome a informação.

Uma aplicação parceira que deseja utilizar determinada característica define que perfis devem ser atribuídos ao usuário caso ele possua a característica.

O Autoriza, após perguntar ao sistema "dono" da informação se o usuário possui uma determinada característica, utiliza essa resposta para compor os perfis e transações que o usuário possui.

O diagrama abaixo ilustra o relacionamento entre sistema, característica de usuário e perfil no modelo de domínio do Autoriza.

Representação domínio características

As características disponíveis para uso na configuração das aplicações parceiras são as listadas a seguir:

Característica Descrição Sistema que resolve a característica
Ex-servidor Ex-servidor da administração pública da União API do Servidor do SIGEPE
Servidor Servidor da administração pública da União API do Servidor do SIGEPE
Aposentado Aposentado da administração pública da União API do Servidor do SIGEPE
Pensionista Beneficiário de pensão de um servidor da administração pública da União API do Servidor do SIGEPE
Chefe Servidor com cargo de autoridade (chefia) em algum órgão da administração pública da União API do Servidor do SIGEPE
Substituto Servidor com cargo de autoridade (substituto de chefia) em algum órgão da administração pública da União API do Servidor do SIGEPE

Exemplo do uso de características de usuário

A aplicação "Aplicação exemplo" tem a característica Ex-servidor configurada para garantir o perfil CLIENTE DADOS FINANCEIROS para aquele usuário que a possui.

E possui uma página cujo acesso é restrito apenas a usuários com o perfil CLIENTE DADOS FINANCEIROS, conforme a política de acesso:

CLIENTE DADOS FINANCEIROS,*,/private/rendimentos,*

Então o controle de acesso realizado pelo Autoriza para a aplicação parceira seria similar ao ilustrado no diagrama abaixo.

Exemplo de resolução de características

Apesar do usuário não possuir o perfil CLIENTE DADOS FINANCEIROS através de uma atribuição direta no Autoriza, ele acaba recebendo o perfil pois o SIGEPE responde positivamente quando o Autoriza pergunta se o CPF possui a característica Ex-servidor.

Perfis do Autoriza

O Autoriza trabalha com uma hierárquia de perfis, onde uma vez um sistema configurado no Autoriza, alguns usuários poderão fazer a gestão dos perfis e Atribuição de Perfis aos Usuários finais da Aplicação Parceira.
Quando o gestor do Autoriza realizar o cadastro do sistema, será criado um usuário responsável pela Administração do Cliente. Algumas características da hierárquia de perfis são:
- O Administrador poderá conceder demais acessos, bastando informar o CPF.
- Um usuário pode acumular perfis, o que permitirá ter acesso a mais funcionalidades.
- Um usuário não pode conceder acesso a si próprio.
- Um usuário só concede perfil a um nível de hierárquia que terá acessos mais restritos.
- O Autoriza trabalha com o conceito de Cadastradores, ou seja, são pessoas responsáveis pelo cadastro de outras.
- Todo sistema deverá ter no mínimo um usuário com perfil de Administrador de Sistema que irá manter os perfis do sistema, opcionamente, transações e demais funcionalidades, dependendo das features cadastradas. E terá, possivelmente, alguns Gestores de Acesso que são responsáveis por liberar acesso aos usuários da aplicação parceira.
- Caso o sistema trabalhe com hierárquia de orgãos, onde um Gestor de Acesso só pode conceder acesso a um usuário no orgão ao qual está vinculado, deverão ser cadastrados perfis de Gestores de Acesso Setorial.

Abaixo, são detalhados os perfis do Autoriza:

  • ✅ Cadastrador de Cliente: é o principal usuário do Autoriza, responsável por criar novos Clientes (orgão de Governo como Ministério, Secretaria) e incluir o perfil do Cadastrador de Cliente responsável.
  • ✅ Administrador de Cliente: é um perfil criado pelo Cadastrador de Cliente. O responsável pode cadastrar outros membros de sua equipe na funcionalidade Administrador de Cliente, inclusive criando ou removendo acessos, em período como férias, substituições de chefia, dentre outros cenários. Este perfil terá acesso a Configurar Sistemas novos do cliente que se integrarão ao Autoriza, bem como ter acesso a gerar relatórios de auditoria para os sistemas vinculados ao cliente. Ainda, é responsável por incluir os Cadastradores do Aplicação Parceira.
  • ✅ Cadastrador de Administrador de Sistema: é um perfil criado pelo Administrador de Cliente que será o responsável por manter o usuário ou a equipe de Administrador de Sistema. Esse cadastrado é realizado na funcionalidade 'Cadastradores'.
  • ✅ Cadastrador de Gestor de Acesso: é um perfil criado pelo Administrador de Cliente que será o responsável por manter o usuário ou a equipe de Gestores de Acesso. Esse cadastrado é realizado na funcionalidade 'Cadastradores'.
  • ✅ Cadastrador de Gestor de Acesso: é um perfil criado pelo Administrador de Cliente que será o responsável por manter o usuário ou a equipe de Gestores de Acesso Setorial. Esse cadastrado é realizado na funcionalidade 'Cadastrador de Gestor de Acesso Setorial'.
  • ✅ Administrador de Sistema: é um perfil criado pelo Cadastrador de Administrador de Sistema que será o
    responsável por manter os perfis, transações e demais features como perfil agregador, tag, caracteristicas de perfis. O usuário com este perfil terá acesso a gerar relatórios de auditoria para o sistema que é Administrador. Esse cadastrado é realizado na funcionalidade Administradores de Sistema.
  • ✅ Gestor de Acesso: é um perfil criado pelo Cadastrador de Gestor de Acesso que será o responsável por manter as Atribuições de Perfis de Usuário. Esse cadastrado é realizado na funcionalidades 'Gestores de Acesso'.
  • ✅ Gestor de Acesso Setorial: é um perfil criado pelo Cadastrador de Gestor de Acesso Setorial que será o responsável por manter as Atribuições de Perfis de Usuário de um Órgão, podendo atribuir perfis limitados aos órgãos ao qual está vinculado e apenas os perfis do sistemas aos quais foram concedido acesso. Esse cadastrado é realizado na funcionalidades 'Gestor de Acesso Setorial'.

Quando o usuário gestor do Autoriza se logar na interface web, terá acesso às funcionalidades de acordo com os perfis que o mesmo tem acesso. A imagem abaixo ilustra as funcionalidades (Itens de Menu) por perfil do Autoriza:

Perfis do Autoriza