Autenticação e Segurança

Configure a autenticação e a segurança para a integração da API REST no Service Definition Framework.

Tipos de autenticação suportados

Tabela 1. Resumo dos tipos de autenticação
Tipo Configuração Caso de uso
Nenhum Por meio do menu suspenso da interface do usuário APIs públicas - requer importação de certificado
OAuth 2.0 Por meio do menu suspenso da interface do usuário Fluxo de credenciais do cliente com atualização automática de tokens
JWT Apenas por meio de cabeçalhos personalizados Autenticação baseada em token
Autenticação básica Apenas por meio de cabeçalhos personalizados Autenticação de nome do usuário/senha

Sem autenticação

Use isso para chamar APIs públicas ou APIs que não exijam cabeçalhos de autenticação.

Importante : É necessário importar o certificado da API externa para o keystore do OMS antes de realizar chamadas.

Configuração : Selecione “Nenhuma” no menu suspenso Tipo de autenticação.

OAuth 2.0 autenticação - credenciais do cliente

Use isso para APIs corporativas que suportem o fluxo de credenciais de cliente OAuth 2.0.

Campos de configuração

  • ID do cliente : OAuth identificador do cliente - permite ${property} a resolução
  • Segredo do cliente : segredo do cliente OAuth - suporta ${property} resolução
  • URL do token : OAuth token endpoint - suporta ${property} resolução
    • Se não for especificado, o valor padrão é /oauth2/token

Exemplo de XML

<Authentication Type="OAuth">
  <OAuth>
    <ClientId>${oauth.client.id}</ClientId>
    <ClientSecret>${oauth.client.secret}</ClientSecret>
    <TokenUrl>${oauth.token.url}</TokenUrl>
  </OAuth>
</Authentication>

Exemplo de imóvel

oauth.client.id=my-client-id
oauth.client.secret=my-client-secret
oauth.token.url=https://auth.example.com/oauth2/token
Observação: a atualização do token é feita automaticamente pelo sistema.

Autenticação JWT por meio de cabeçalhos personalizados

Use isso para APIs que exigem tokens JWT de portador.

Importante: O JWT não está disponível no menu suspenso da interface do usuário. Configure usando cabeçalhos personalizados.

Opções de configuração

Opção 1 - Token estático :

<Headers>
  <Header Name="Authorization" Value="Bearer eyJhbGc..."/>
</Headers>

Opção 2 - Token da propriedade :

<Headers>
  <Header Name="Authorization" Value="Bearer ${my.jwt.token}"/>
</Headers>

Arquivo de propriedade:

my.jwt.token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Opção 3 - Propagar a partir da solicitação recebida :

<Headers>
  <Header Name="Authorization" Value="#{h:authorization}"/>
</Headers>

Autenticação básica por meio de cabeçalhos personalizados

Use isso para APIs que exigem autenticação por nome de usuário e senha.

Importante: a autenticação básica não está disponível no menu suspenso da interface do usuário. Configure usando cabeçalhos personalizados.

Configuração

Opção 1 - Credenciais estáticas :

<Headers>
  <Header Name="Authorization" Value="Basic YWRtaW46cGFzc3dvcmQ="/>
</Headers>

Opção 2 - Credenciais da propriedade :

<Headers>
  <Header Name="Authorization" Value="Basic ${my.basic.auth}"/>
</Headers>

Arquivo de propriedade:

# Base64 encode "username:password" first
my.basic.auth=YWRtaW46cGFzc3dvcmQ=

Melhores práticas de segurança

  • Sempre use HTTPS para chamadas de API externas
  • Armazene as credenciais em arquivos de propriedades; nunca as insira diretamente no código
  • Use OAuth 2.0 quando disponível — atualização automática do token
  • Certificados de importação para autenticação "Nenhuma"
  • Renove os tokens e as credenciais regularmente