Información general sobre SAML v2
El lenguaje de marcado de aserción de seguridad (SAML) es un formato estándar de SSO. Su marco basado en XML ofrece una autenticación fluida mediante el intercambio de información a través de documentos XML firmados digitalmente. SAML v2 (o SAML 2.0) es, desde 2005, el protocolo estándar para habilitar SSO de dominio cruzado basado en web.
SSO básico
Independientemente de las funciones que hayas seleccionado, los requisitos de configuración del SSO básico son los mismos. Para añadir implementaciones de fidelidad o tarjetas de crédito, se pedirá más información.
Requisitos de configuración
Para configurar correctamente el acceso SSO de SAML a tu sitio web creado a partir de una plantilla, necesitaremos varios datos, como los siguientes:
- Certificados de clave pública (para la verificación de firma)
- Público
- Emisor
- Detalles del punto de conexión
- IP a añadir a la lista de permitidas
- Detalles de la compatibilidad con el flujo de invitados (isPassive)
Las implementaciones estándar de SSO de SAML en Expedia cifrarán con nuestra clave pública, crearán un punto de conexión de destino y duplicarán tu lista de IP permitidas para protegerte de ataques de interrupción.
Requisitos técnicos:
- SAML 2.0 en uso en tu sitio web
- Tu clave privada debe utilizarse para firmar toda la respuesta SAML y la carga de SAML debe estar codificada con Base64
- La clave pública de Expedia se utilizará para cifrar afirmaciones
- Rellenar los valores de la firma según el estándar SAML v2
- Incluir el destino y el destinatario en la respuesta SAML
- Incluir el emisor en la respuesta SAML para que podamos obtener el certificado adecuado
Detalles de carga
Una vez que el cliente haya iniciado sesión a través de tu proveedor de identidad (IdP), enviará una respuesta generada (denominada carga) a tu sitio principal para autenticarse. Si la autenticación tiene éxito, se concederá acceso al cliente. La carga que proporcionamos incluye los siguientes campos. No todos los campos son obligatorios, pero utilizamos algunos de ellos para la experiencia del usuario (por ejemplo, para mostrar el nombre del cliente en un mensaje de bienvenida) y otros como parte de la verificación.
Campo | Descripción | ¿Obligatorio? |
---|---|---|
membershipId | Identificador único de la cuenta del cliente | Sí |
relayState | La URL a la que se redirigirá al cliente una vez finalizada la verificación | Sí |
languageID | Los idiomas en los que se puede ver el sitio web | No |
channelType | Plataformas para las que está optimizado el sitio web (valores: WEB, MÓVIL, TABLET) | No |
firstName | El nombre del cliente | Sí |
middleName | Segundo nombre del cliente | No |
lastName | Apellido del cliente | Sí |
email | Dirección de correo electrónico del cliente | Sí |
Añadir programa de fidelidad
Como parte de tu sitio web creado con plantilla, puedes incluir la posibilidad de que tus clientes ganen puntos de fidelidad en sus compras de viajes. La plantilla también puede permitir a tus clientes utilizar sus puntos de fidelidad acumulados para comprar viajes.
Se aplican los mismos requisitos de configuración que en la implementación estándar.
Detalles de carga
Además de los atributos descritos en la implementación estándar, la funcionalidad para obtener y canjear puntos de fidelidad requiere los siguientes atributos de cuenta (ProgramAccount).
Campo | Descripción | ¿Obligatorio? |
---|---|---|
programId | Identificador de nivel del programa de fidelidad | Sí |
programAccountNumber | El número de cuenta del programa al que está afiliado el cliente (también denominado loyaltyAccountNumber ) | No |
lastFourDigitsOfCreditCard | Los cuatro últimos dígitos de la tarjeta de crédito utilizada en la reserva | No |
accountName | El nombre de la cuenta del programa | No |
loyaltyConversionRatio | Ratio de cómo se convierten los puntos obtenidos en el pago (por ejemplo, 1 EUR = 1 punto) | No |
loyaltyAccountBalance | Saldo actual de puntos de fidelidad obtenidos por el cliente | Sí |
Restringir tarjeta de pago
Podemos configurar tu sitio web para que los clientes deban usar la tarjeta de crédito de tu organización en las reservas. Es opcional, ya que todas las soluciones de plantilla pueden aceptar cualquier tarjeta de crédito o débito de las entidades principales y (en EE. UU.) PayPal.
Almacenamiento y seguridad de tarjetas de crédito
Si decides obligar a utilizar la tarjeta de crédito personalizada de tu organización en las compras, queremos que sea con seguridad. Así es como lo gestionamos.
- La información de la tarjeta se almacena en un formato de token que está vinculado al perfil del cliente en Expedia. Nunca se almacena sin cifrar.
- Ningún ser humano tiene acceso a los datos de tarjetas cifrados, y solo se descifran con las credenciales de IAM seguras.
- Cuando se precarga una tarjeta en la página de pago, solo se muestra la descripción de la tarjeta, pero no el número.
- El cliente debe introducir el CVV de la tarjeta para completar la reserva con la tarjeta almacenada.
Requisitos de configuración
Además de los requisitos de configuración de la implementación estándar, tendremos que añadir una capa adicional de seguridad cuando introduzcas tu tarjeta de crédito. Para ello, necesitaremos:
- Un punto de conexión para utilizar con el parámetro AuthnRequest
- Tu clave pública para la verificación de firma
Utilizaremos la clave privada de Expedia para firmar la carga AuthnRequest y compartiremos nuestra clave pública para que valides la firma.
Detalles de carga
Junto con los atributos descritos en la implementación estándar, cuando un cliente inicie sesión en tu sitio web, enviaremos una carga de respuesta SAML codificada con aserciones firmadas y cifradas al punto de conexión seguro de SSO de Expedia.
La carga también incluirá los siguientes datos de la tarjeta de crédito:
Campo | Descripción | ¿Obligatorio? |
---|---|---|
cardNumber | El número de la tarjeta en la que se debe cobrar | Sí |
cardType | Tipo de tarjeta utilizada (por ejemplo, Visa, MasterCard, American Express) | Sí |
expirationDate | Fecha de caducidad de la tarjeta utilizada | Sí |
addressCategoryCode | El tipo de dirección de facturación asociada a la tarjeta utilizada (por ejemplo, casa u oficina). | Sí |
firstAddressLine | Primera línea de la dirección de facturación | Sí |
secondAddressLine | Segunda línea de la dirección de facturación | No |
thirdAddressLine | Tercera línea de la dirección de facturación | No |
cityName | Ciudad de la dirección de facturación | Sí |
provinceName | Estado o provincia de la dirección de facturación | Sí |
postalCode | Código postal de la dirección de facturación | Sí |
countryCode | País de la dirección de facturación | Sí |
AuthnRequest
Expedia enviará los parámetros AuthnRequest
y RelayState
a tu punto de conexión cuando un usuario no autenticado acceda a tu sitio web creado con plantilla. Así se pedirá al usuario que inicie sesión, lo que empezará el proceso de SSO.
Los elementos de AuthnRequest
incluyen:
Campo | Descripción | ¿Obligatorio? |
---|---|---|
AssertionConsumerServiceURL | URL del sitio web creado con la plantilla de Expedia después de que el usuario se registre | Sí |
Destination | URL de tu punto de conexión al que enviar la AuthnRequest | Sí |
Issuer | El origen de los datos; valores: Expedia-Test o Expedia-Prod | Sí |
Signature | Firma SSO a validar por tu sitio web principal | Sí |
Para obtener más información, consulta nuestro ejemplo de carga.