Visão geral do SAML v2
O Security Assertion Markup Language (SAML) é um formato de SSO padrão. A sua estrutura com base em XML permite uma autenticação otimizada com troca de informações por meio de documentos XML assinados de modo digital. O SAML v2, ou SAML 2.0, é o protocolo padrão para habilitar o SSO entre domínios com base na web desde 2005.
Fluxos de autorização

SSO básico
Sejam quais forem as opções de recursos selecionadas, os requisitos de configuração do SSO básico são os mesmos. Adicionar implementações de cartão de crédito ou programa de fidelidade exige mais informações.
Requisitos de configuração
Para configurar o acesso de SSO do SAML ao seu modelo de site, alguns elementos são necessários, incluindo:
- Certificados de chave pública: Você autorizará o arquivo SAML com a chave privada do seu lado e a Expedia verificará com a chave pública.
- Público-alvo: O provedor de serviços pretendido para o qual a declaração SAML é emitida, especificado no parâmetro
AudienceRestrictionpara garantir que a declaração seja aceita apenas pelo destinatário designado. - Emissor: A entidade provedora de identidade (IDP) que gera e assina digitalmente a declaração SAML, verificando assim a identidade autenticada do usuário.
- Detalhes do endpoint: O endpoint de autenticação (Authn) é o URL do provedor de identidade para o qual as solicitações de autenticação são enviadas. Você precisará configurar seu site modelo para que o endpoint de SSO da Expedia inicie o SSO assim que o usuário for autenticado.
- IPs a adicionar à lista de permissões: Uma lista de IPs que terão permissão para trafegar entre o site do modelo e a Expedia. Endereços IP que não estejam nas listas de permissão (sejam suas ou nossas) causarão problemas de conectividade tanto para chamadas SSO de entrada quanto de saída.
- Detalhes de suporte do fluxo de visitantes (isPassive): Indica se o site terá uma experiência de visitante ou se o usuário sempre precisará fazer login para acessar o conteúdo do site.
Uma implementação padrão de SSO do SAML na Expedia faz a criptografia usando a nossa chave pública, cria um ponto de extremidade de destino e duplica a sua lista de IPs permitidos para proteção contra ataques de interrupção.
Requisitos técnicos:
- SAML 2.0 em uso no seu site
- A sua chave privada deve ser usada para assinar toda a resposta do SAML e o conteúdo do SAML deve ser codificado em Base64
- A chave pública da Expedia será usada para criptografar as declarações, que serão então descriptografadas usando a chave privada da Expedia.
- Preencha os valores de assinatura de acordo com o padrão do SAML v2
- Inclua o destino e o destinatário na sua resposta do SAML
- Inclua o emissor na resposta do SAML para que possamos buscar o certificado apropriado
Detalhes de conteúdo
Assim que um cliente fizer login por meio do seu provedor de identidade (IdP), ele enviará uma resposta gerada, chamada payload, para o seu site principal para autenticação. Se a autenticação é bem-sucedida, o cliente recebe acesso. O conteúdo que fornecemos inclui os seguintes campos. Não exigimos todos esses campos, mas usamos alguns deles na experiência do usuário (por exemplo, para exibir o nome do cliente em uma mensagem de boas-vindas) e outros como parte da verificação.
| Campo | Descrição | Obrigatório? |
|---|---|---|
membershipId | Identificador único da conta do cliente. | Sim |
relayState | URL para o qual o cliente será redirecionado assim que a verificação for concluída. | Sim |
languageID | Os idiomas em que o site vai poder ser visualizado. | — |
channelType | Plataformas para as quais o site é otimizado (valores: WEB, MOBILE, TABLET). | — |
firstName | Nome do cliente. | Sim |
middleName | Nome do meio do cliente. | — |
lastName | Sobrenome do cliente. | — |
email | Endereço de e-mail do cliente. | — |
Inclusão de programas de fidelidade
Como parte do seu site modelo, você pode incluir a possibilidade de os clientes ganharem pontos de fidelidade em suas compras de viagens. Seu modelo também pode permitir que os clientes usem seus pontos de fidelidade acumulados para comprar viagens.
Os mesmos requisitos de configuração da implementação padrão se aplicam.
Detalhes de conteúdo
Além dos atributos descritos na implementação padrão, a funcionalidade de ganho e uso de recompensas de fidelidade requer os seguintes atributos de conta (ProgramAccount).
| Campo | Descrição | Obrigatório? |
|---|---|---|
programId | Identificador do programa de fidelidade. | Sim |
programAccountNumber | O número da conta do programa ao qual o cliente é afiliado, também chamado de loyaltyAccountNumber. | — |
lastFourDigitsOfCreditCard | Últimos quatro dígitos do cartão de crédito que o cliente usou na reserva. | — |
accountName | Nome da conta do programa. | — |
loyaltyConversionRatio | Proporção usada para converter o pagamento em pontos ganhos, por exemplo, R$ 1 = 1 ponto. | — |
loyaltyAccountBalance | Saldo atual dos pontos de fidelidade ganhos pelo cliente. | Sim |
Restrição do cartão de pagamento
Podemos configurar seu site para que o cliente precise usar o cartão de crédito da sua organização para efetuar a reserva. Isso é opcional, pois todas as soluções de modelo podem aceitar todos os principais cartões de crédito ou débito (e, nos EUA, PayPal).
Segurança e armazenamento do cartão de crédito
Se você optar por exigir a compra usando o cartão de crédito personalizado da sua organização, queremos que sinta segurança. Lidamos com isso das seguintes maneiras:
- As informações do cartão são armazenadas em um formato tokenizado que é vinculado ao perfil do cliente na Expedia. O armazenamento nunca é feito sem criptografia.
- Nenhum ser humano tem acesso aos dados não criptografados do cartão, e a descriptografia só acontece com credenciais seguras do IAM.
- Quando um cartão é pré-carregado na página de pagamento, somente a descrição do cartão fica visível, não o número.
- O cliente deve inserir o código de segurança do cartão para concluir a reserva com o cartão armazenado.
Requisitos de configuração
Além dos requisitos de configuração da implementação padrão, adicionar o cartão de crédito significa que mais uma camada de segurança será necessária. Para isso, vamos precisar de:
- Um ponto de extremidade a ser usado para o parâmetro AuthnRequest
- A sua chave pública para verificação de assinatura
Vamos usar a chave privada da Expedia para assinar o conteúdo do AuthnRequest e compartilhar a nossa chave pública para fazer a validação de assinatura no seu lado.
Detalhes de conteúdo
Junto com os atributos descritos na implementação padrão, quando um cliente faz login no seu site, enviamos um conteúdo de resposta do SAML codificado com asserções assinadas e criptografadas para o ponto de extremidade seguro de SSO da Expedia.
O conteúdo também vai conter os seguintes dados do cartão de crédito:
| Campo | Descrição | Obrigatório? |
|---|---|---|
cardNumber | O número do cartão a ser cobrado. | Sim |
cardType | Tipo de cartão usado (por exemplo, Visa, MasterCard, American Express). | Sim |
expirationDate | Data de validade do cartão usado. | Sim |
addressCategoryCode | O tipo de endereço de cobrança associado ao cartão usado (por exemplo, residencial ou comercial). | Sim |
firstAddressLine | Primeira linha do endereço de cobrança. | Sim |
secondAddressLine | Segunda linha do endereço de cobrança. | — |
thirdAddressLine | Terceira linha do endereço de cobrança. | — |
cityName | Cidade do endereço de cobrança. | Sim |
provinceName | Estado ou província do endereço de cobrança. | Sim |
postalCode | Código postal do endereço de cobrança. | Sim |
countryCode | Código do país do endereço de cobrança. | Sim |
AuthnRequest
A Expedia envia os parâmetros AuthnRequest e RelayState para o seu ponto de extremidade quando um usuário não autenticado acessa o seu modelo de site. Isso solicita que o usuário faça login, o que inicia o processo de SSO. Em seguida, você redirecionará o cliente para o endpoint de SSO da Expedia para iniciar o SSO no site do modelo.
Os elementos AuthnRequest incluem:
| Campo | Descrição | Obrigatório? |
|---|---|---|
AssertionConsumerServiceURL | URL para o modelo de site da Expedia após o usuário fazer login. | Sim |
Destination | URL do seu ponto de extremidade para publicar o AuthnRequest. | Sim |
Issuer | A origem dos dados. Valores: Expedia-Test ou Expedia-Prod. | Sim |
Signature | Assinatura de SSO a ser validada pelo seu site principal. | Sim |
Para mais informações, confira o nosso exemplo de conteúdo.
Pontos de extremidade da Expedia
Depois que o usuário for autenticado, você precisará redirecioná-lo para {WLTP domain}/sso/saml.