Autenticação no WCF Travellink
:::danger SERVIÇO LEGADO Documentação de referência do serviço legado. Para novas integrações, veja a Autenticação da Web API. :::
1. Headers de Segurança
A validação do desenvolvedor é executada no início do processo de autenticação, inspecionando os headers HTTP:
| Header | Descrição |
|---|---|
developer-token | Token (GUID) do desenvolvedor, fornecido pela Wooba. |
developer-access-code | Código de acesso gerado pelo desenvolvedor com a chave fornecida pela Wooba, em Base64. O procedimento de geração é o mesmo descrito em Autenticação da Web API. |
Credenciais associadas a um desenvolvedor só são aceitas quando o developer-token informado pertence ao mesmo desenvolvedor da credencial. Caso contrário, a chamada retorna erro de acesso não autorizado.
Dependendo da credencial, o IP de origem da chamada também precisa estar liberado pela Wooba.
2. Credenciais do Webservice
No AereoNoSession.svc, cada requisição é independente. Envie Login e Senha da credencial no corpo de todas as chamadas:
{
"Login": "SEU_LOGIN",
"Senha": "SUA_SENHA",
"Localizador": "ABC123"
}
Se o corpo não trouxer Login, e nenhuma sessão válida existir, a resposta vem com SessaoExpirada: true.
O campo opcional ClienteId seleciona o cliente corporativo em nome do qual a chamada é executada.
3. Operações de Autenticação
As operações abaixo existem nos serviços AereoNoSession.svc e Aereo.svc e não são necessárias na Web API V2.
3.1 POST /AereoNoSession.svc/Autenticar
Valida a credencial do webservice e retorna um token.
Requisição (atenção: nesta operação os nomes dos campos são todos em minúsculas, inclusive clienteId):
{
"login": "SEU_LOGIN",
"senha": "SUA_SENHA",
"clienteId": 123
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
login | String | Sim | Login da credencial do webservice. |
senha | String | Sim | Senha da credencial. |
clienteId | Integer | Não | Id do cliente corporativo. |
Resposta: uma string JSON contendo o token, ou o texto do erro de autenticação.
O token é utilizado no campo token das demais requisições. Como o AereoNoSession.svc não mantém sessão entre chamadas, a recomendação é enviar Login e Senha em cada requisição, em vez de depender do token. O token é útil no Aereo.svc, que mantém sessão.
3.2 POST /AereoNoSession.svc/AutenticarComUsuario
Autentica a credencial do webservice e, ao mesmo tempo, o usuário da agência.
{
"Login": "SEU_LOGIN",
"Senha": "SUA_SENHA",
"clienteId": 123,
"AutenticacaoUsuario": {
"Login": "LOGIN_DO_USUARIO",
"Senha": "SENHA_DO_USUARIO"
}
}
Campos de AutenticacaoUsuario: Login, Senha, PontoDeVenda, Identificacao, PushNotificationID, GoogleID, SessaoMobile, HashAcesso.
Resposta (AutenticacaoRS):
| Campo | Tipo | Descrição |
|---|---|---|
Token | String | Token da sessão. |
Erros | Array de String | Erros de autenticação. Vazio ou nulo em caso de sucesso. |
PosicaoCartaoDeSeguranca | String | Posição do cartão de segurança a ser validada, quando aplicável. |
TokenSucesso, TokenSistema, TokenTipo, TokenPosicao, TokenRequerValidacao | Vários | Dados do segundo fator de autenticação. |
A informação de AutenticacaoUsuario com login e senha só é aceita para credenciais habilitadas pela Wooba para esse tipo de acesso (aplicativos). Para as demais credenciais de integração, a chamada é recusada com erro de acesso negado.
3.3 POST /AereoNoSession.svc/ValidarTokenSeguranca
Valida o token do cartão de segurança (segundo fator).
{
"Login": "SEU_LOGIN",
"Senha": "SUA_SENHA",
"TokenDeSeguranca": "VALOR_DO_TOKEN"
}
Resposta: Valido (Boolean), SessaoExpirada (Boolean) e Exception, além de dados de configuração do usuário autenticado.
4. Serviço de Usuário (Usuario.svc)
O serviço Usuario.svc possui sua própria operação POST /Usuario.svc/Autenticar, que recebe Login, Senha, clienteId e AutenticacaoUsuario e devolve o mesmo objeto AutenticacaoRS descrito acima. Consulte a Relação das 51 Operações para as demais operações do serviço.