Esfinge API JWT - Segurança Pública do Acre

Objetivo

Disponibilizar um meio único e confiável de autenticação e autorização offline de entes da Segurança Pública do Acre. Sejam Policiais Militares, Civis ou Penais.

Funcionamento

Autenticação
Policial
Outros Servidores
Servidores do Estado
Esfinge
Autorizado: token recebido
Não Autorizado

1º O usuário acessa um sistema autenticado pela esfinge usando o email e senha funcional do Estado
2º A Esfinge se encarrega de verificar se o usuário pertence a algum órgão da Segurança Pública
3º Caso o usuário seja ente da segurança pública, será gerado um token, contento as seguintes informações do usuário:
- Força da Segurança (Polícia Militar, Polícia Civil ou Policia Penal)
- Unidade em que trabalha (Ex.: SEJUSP)
- Função Exercida (Ex.: Agente)
- Permissões (Ex.: Consulta de Indivíduos)

Dados Técnicos

A comunicação com a Esfinge se dá por API REST.

Requisição

POST https://esfinge.pmac.ac.gov.br/auth
Headers: Content-Type: application/json
Body: {
	"username": "usuario.sobrenome",
	"password": "senha"
}

Resposta

{
  "username": "usuario.sobrenome",
  "cpf": "00000000000",
  "name": "NOME SOBRENOME",
  "organ": "PM", // PC,PM,PP
  "position": "SOLDADO",
  "workplace": 23, // Identificado da Unidade
  "roles": ["despachante"], // Lista de Permissões
  "tokenData": { // Dados anexados ao token JWT
    "cpf": "00000000000",
    "o": "PM",
    "u": 23,
    "f": "despachante"
  },
  "token": "eyJhbGciOiJSUzI1NiI..." // TOKEN JWT
}

O token utiliza criptografia militar RS256 de 4096bits, com validação via par de chaves (pública, privada).

Chave Pública


-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwQgwqappGDdEo840rH4B
FNe2l7FbuTv9xo7VsW1hPeY+PKxW17Od4JiCmMfo3ViGP9N20eqxsF9VCQUmvCdS
5f3K9W4i3CMEpQHvo3aaKhJxFPEIVfbqshTXNlnEL6pcEKnlicYwsbS1qc0QILsn
l+2yfg6aO2w3De0LowJ9xig2o2fTgx254YQJjlFK2AxhAItBWnRxDqlcVWON+xTo
F8OxBYEVrOeDvwGsg1kA54EQ6DR5LiqEZcxkp0V3ubulb/p12dKhOVQVjA4S5Nx0
vxh6Ng/QHkZ2WmOJAh2keVib70ATrvDUgnOL6wNuYo1xxU/Kf9WmGHtrUvOYhD93
w1+mJNElRnEHBYuPwsAC6VE0iHDFva0DbP91QUKrMEiAnGZuq/nz1sc7djpmFL3V
rKAOx3wCqPzpkTUuxVJWDl8Zzo5JZcQLmcde0K8Abw0nvF1Cqi7k1q5LISS3Kjfo
1P7MuYljQBI+JiU/r/xru3ri9W8w1jXc/hr9gaodaDWjcXe1d0YmUUG2xuu6MKmN
T4s2T4eMhBl+/uCQNplY0c02gDCogpHnWwkI7Jx+UvsssphjPXMkd1wTJ725lr+b
sWedQZ2pTQtJcbkij7bUYj1SVqGEWFGEL2xEgmbbEjcWu5rpJT6mSX0Y0FG3qZCR
69386EVZnQDwD/Dp2lpmkzUCAwEAAQ==
-----END PUBLIC KEY-----

Em Breve

- Verifcação de senhas fracas
- Notificar o policial caso haja uso indevido seu usuário