Tabela de conteúdos

WEB-Service para Gestão de Credencial de Acesso

Informações Gerais

Serviço

Nome: Web Service para gestão de credencial de acesso aos serviços
Nome na interface: WSCredencial
Início da operação: 31/05/2017
Endereço do WSDL - Testes https://testews.siop.gov.br/services/credencial/WSCredencial?wsdl
Endereço do WSDL - Produção https://webservice.siop.gov.br/services/credencial/WSCredencial?wsdl

Objetivo

Fornecer uma interface que possibilite a interoperabilidade entre os sistemas governamentais e o SIOP para recuperação de acesso e, quando aplicável, troca de senha da credencial utilizada pelos web services.

Além das operações SOAP do WSCredencial, usuários de web service já migrados para o novo modelo de autenticação utilizam a interface GraphQL do módulo de login para obtenção de token, que deve ser enviado no cabeçalho Authorization das chamadas aos demais web services.

Como Identificar Seu Fluxo

Antes de implementar ou consumir o serviço, identifique em qual situação sua credencial se encontra.

Siga o fluxo MD5 se:

Siga o fluxo Argon2Id + Token se:

Importante: após a migração para Argon2Id + token, a credencial deixa de utilizar autenticação por hash MD5 no XML.

Fluxo 1 - Usuário de Web Service Ainda em MD5

Neste fluxo, a autenticação continua sendo feita da forma tradicional, com envio da estrutura CredencialDTO no corpo XML da requisição SOAP.

Cadastro e uso inicial

1. O administrador do SIOP cadastra a credencial no sistema. 2. O SIOP cria a credencial com marcação para exigir troca de senha. 3. O SIOP envia uma senha provisória para o e-mail cadastrado. 4. O cliente cria sua senha definitiva por meio da operação WSCredencial.trocarSenha(CredencialDTO credencial, String novaSenha). 5. Depois disso, a credencial continua sendo usada nas requisições SOAP com hash MD5 no campo senha.

Regras da operação trocarSenha

Na operação trocarSenha:

Exemplo de requisição:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:ser="http://servicoweb.siop.sof.planejamento.gov.br/">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:trocarSenha>
         <credencial>
            <senha>[hash md5 da senha atual]</senha>
            <usuario>[login credencial]</usuario>
         </credencial>
         <novaSenha>[nova senha em texto puro]</novaSenha>
      </ser:trocarSenha>
   </soapenv:Body>
</soapenv:Envelope>

Regras da operação gerarNovaSenha

Na operação gerarNovaSenha:

Exemplo de requisição:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:ser="http://servicoweb.siop.sof.planejamento.gov.br/">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:gerarNovaSenha>
         <credencial>
            <email>[e-mail da credencial]</email>
            <usuario>[login da credencial]</usuario>
         </credencial>
      </ser:gerarNovaSenha>
   </soapenv:Body>
</soapenv:Envelope>

Como autenticar nos demais web services neste fluxo

Enquanto a credencial estiver neste fluxo, a autenticação aos demais web services continua sendo feita com envio de CredencialDTO no XML da operação, contendo:

Fluxo 2 - Usuário de Web Service Migrado para Argon2Id + Token

Neste fluxo, a autenticação deixa de ser feita por hash MD5 no XML e passa a usar token obtido na interface GraphQL do módulo de login.

Como funciona

1. O cliente autentica com login e senha em texto puro na interface GraphQL do módulo de login. 2. O sistema retorna tokenSiop e refreshToken. 3. O cliente passa a enviar o token no cabeçalho Authorization das chamadas aos demais web services. 4. A credencial deixa de usar autenticação por hash MD5 no XML.

Endpoint para obtenção do token

Testes: https://testews.siop.gov.br/modulo/login/api

Produção: https://www1.siop.planejamento.gov.br/modulo/login/api

Mutation GraphQL para autenticação

{
  "query": "mutation { autenticarUsuarioSenha(login: \"SEU_LOGIN\", senha: \"SUA_SENHA_EM_TEXTO_PLANO\") { tokenSiop, refreshToken } }"
}

Exemplo de resposta:

{
  "data": {
    "autenticarUsuarioSenha": {
      "tokenSiop": "eyJhbGciOi...",
      "refreshToken": "eyJhbGciOi..."
    }
  }
}

Como autenticar nos demais web services neste fluxo

As chamadas aos demais web services devem enviar o token no cabeçalho Authorization:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header>
      <Authorization>Bearer [tokenSiop]</Authorization>
   </soapenv:Header>
   <soapenv:Body>
      <!-- XML normal da operação -->
   </soapenv:Body>
</soapenv:Envelope>

Recuperação de acesso neste fluxo

Para usuários já migrados:

Observações importantes

Operações SOAP

2.1 Trocar Senha

Operação para troca de senha da credencial de acesso.

Nome da operação na interface do serviço: trocarSenha

Parâmetro(s) de entrada:

Parâmetro Tipo (tamanho) Observações
credencial CredencialDTO Credencial do usuário
novaSenha String Nova senha em texto puro, conforme regras vigentes de segurança

Tipo de Retorno: RetornoDTO

Observação: esta operação é aplicável ao fluxo de usuários que ainda utilizam autenticação por MD5. Para usuários já migrados para Argon2Id + token, a redefinição de senha ocorre por URL token enviada por e-mail.

Exemplo:

Requisição:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://servicoweb.siop.sof.planejamento.gov.br/">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:trocarSenha>
         <credencial>
            <senha>[hash md5 da senha]</senha>
            <usuario>[login credencial]</usuario>
         </credencial>
         <novaSenha>[nova senha em texto puro]</novaSenha>
      </ser:trocarSenha>
   </soapenv:Body>
</soapenv:Envelope>

2.2 Gerar Nova Senha

Operação de obtenção de novo acesso por e-mail.

Nome da operação na interface do serviço: gerarNovaSenha

Parâmetro(s) de entrada:

Parâmetro Tipo (tamanho) Observações
credencial CredencialDTO Para essa operação é necessário preencher apenas os atributos email e usuario.

Tipo de Retorno: RetornoCaptacaoDetalheBaseExternaDTO

Observação: o comportamento desta operação depende do fluxo da credencial:

Exemplo:

Requisição:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://servicoweb.siop.sof.planejamento.gov.br/">
   <soapenv:Header/>
   <soapenv:Body>
      <ser:gerarNovaSenha>
         <credencial>
            <email>[e-mail da credencial]</email>
            <usuario>[login da credencial]</usuario>
         </credencial>
      </ser:gerarNovaSenha>
   </soapenv:Body>
</soapenv:Envelope>

Estruturas de Entrada/Saída e Retorno

As informações que trafegam pelo serviço são organizadas em estruturas de dados que atuam como entrada e retorno das operações.

CredencialDTO

Esta estrutura é composta pelas informações necessárias para que a aplicação cliente se identifique junto ao serviço quando estiver utilizando o fluxo de autenticação por credencial no XML. A credencial utilizada nos web services do SIOP é específica para esse fim e não é válida para acessar a aplicação web.

Atributo Tipo(tamanho) Aceita Nulo? Observações
usuario Texto Não Login do usuário no SIOP
senha Texto Não Hash MD5 da senha do usuário no SIOP. Campo aplicável ao fluxo de autenticação por MD5
perfil Inteiro Sim Perfil com o qual o usuário deseja realizar determinada operação, quando aplicável

Observação: para usuários já migrados para Argon2Id + token, a autenticação dos demais web services não é feita pelo campo senha do CredencialDTO, mas pelo envio do token no cabeçalho Authorization.

RetornoDTO

Atributo Tipo(tamanho) Observações
sucesso boolean Indica se a requisição foi processada com sucesso
mensagensErro List<String> Contém a lista de mensagens de erro nos casos em que sucesso retornar valor igual a false