| 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 |
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.
Antes de implementar ou consumir o serviço, identifique em qual situação sua credencial se encontra.
Siga o fluxo MD5 se:
gerarNovaSenha envia uma senha provisória em texto pleno para o e-mail cadastrado;trocarSenha ainda é utilizada no seu processo.Siga o fluxo Argon2Id + Token se:
Authorization: Bearer [token] ;
Importante: após a migração para Argon2Id + token, a credencial deixa de utilizar autenticação por hash MD5 no XML.
Neste fluxo, a autenticação continua sendo feita da forma tradicional, com envio da estrutura CredencialDTO no corpo XML da requisição SOAP.
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.
Na operação trocarSenha:
credencial.usuario deve conter o login cadastrado para a credencial;credencial.senha deve conter o hash MD5 da senha atual;novaSenha deve conter a nova senha em texto puro;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>
Na operação gerarNovaSenha:
email e usuario da credencial;trocarSenha para definir a senha desejada.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>
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:
usuario: login da credencial;senha: hash MD5 da senha da credencial.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.
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.
Testes: https://testews.siop.gov.br/modulo/login/api
Produção: https://www1.siop.planejamento.gov.br/modulo/login/api
{
"query": "mutation { autenticarUsuarioSenha(login: \"SEU_LOGIN\", senha: \"SUA_SENHA_EM_TEXTO_PLANO\") { tokenSiop, refreshToken } }"
}
Exemplo de resposta:
{
"data": {
"autenticarUsuarioSenha": {
"tokenSiop": "eyJhbGciOi...",
"refreshToken": "eyJhbGciOi..."
}
}
}
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>
Para usuários já migrados:
gerarNovaSenha continua existindo;trocarSenha deixa de ser o fluxo aplicável para a credencial já migrada.trocarSenha antes da primeira autenticação GraphQL;Argon2Id + token, a credencial não deve mais usar hash MD5 no XML;tokenSiop possui validade temporária;refreshToken para renovação do acesso.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>
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:
Argon2Id + token, o sistema envia URL token para definição de nova senha.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>
As informações que trafegam pelo serviço são organizadas em estruturas de dados que atuam como entrada e retorno das operações.
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.
| 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 |