Tokens de API
Autentique e autorize as APIs da plataforma de viagens do Expedia Group
Autorização e autenticação, às vezes abreviadas como AuthN e AuthZ, são funções diferentes que ajudam a proteger o acesso às suas APIs e aos seus dados.
- A autenticação estabelece a identidade de um cliente da API, garantindo que é o seu cliente.
- A autorização garante que um cliente tenha permissão para fazer uma determinada solicitação de API.
Sobre os tokens
O OAuth2.0 é um protocolo padrão da indústria que usa tokens (strings alfanuméricas) para estabelecer prova de autenticação e autorização. Um token inclui:
- Identidade do cliente de API que está fazendo a solicitação.
- Permissões concedidas ao cliente, ou seja, a lista de escopos que você atribuiu a ele.
- Hora em que o token foi criado e por quanto tempo pode ser usado. Os tokens emitidos pela plataforma de viagens do Expedia Group são opacos, ou seja, não podem ser decodificados nem descriptografados.
Autenticação: adquirir um token
Um cliente de API deve adquirir um token antes de fazer uma solicitação de API. É nesse momento que a autenticação é realizada. Os tokens são fornecidos por meio de um ponto de extremidade de API especial que usa HTTP Basic Auth. Você deve fornecer as credenciais de API, ou seja, o ID e o segredo do cliente, como o nome de usuário e a senha.
Autorização: fornecer um token com cada solicitação de API
Um único token pode ser usado para autorizar várias solicitações de API durante a sua duração. Todos os tokens têm vida útil de 30 minutos, e seu software cliente deve adquirir um novo token antes que o atual expire.
As solicitações de API sem um token válido vão apresentar falha com um código de erro HTTP 403 (não autorizado). Esse erro ocorre quando o token:
- estiver ausente na solicitação
- não for emitido pela API do token
- estiver expirado
- não tiver os escopos obrigatórios
API do token
Use esta API para adquirir um token no seu software cliente:
curl --location --request POST 'https://api.expediagroup.com/identity/oauth2/v3/token' \
--header 'Authorization: Basic <key>:<secret>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials'