Información general sobre el SSO de OAuth 2.0

OAuth 2.0 es un estándar de autorización que permite a las aplicaciones obtener acceso limitado a cuentas de usuario en un servicio HTTP. Funciona delegando la autenticación del usuario al servicio que aloja la cuenta de usuario y autorizando a las aplicaciones de terceros para que accedan a la cuenta de usuario. OAuth 2.0 proporciona flujos de autorización en aplicaciones web y de escritorio, y en dispositivos móviles.

Más información sobre OAuth 2.0

SSO básico

Independientemente de las funciones que hayas seleccionado, el SSO básico requiere algunos datos específicos y, en particular, una clave pública. Para añadir implementaciones de fidelidad o tarjetas de crédito, se pedirá más información.

Información de configuración

Para configurar correctamente el acceso SSO de OAuth 2.0 a tu sitio web creado a partir de una plantilla, necesitaremos datos como los siguientes:

  • API (autorizar, token, userProfile)
  • ID de cliente
  • Secreto del cliente
  • ResponseMode
  • isNounceEnabled
  • customerDetailsAPIKey (si está disponible)

Las implementaciones estándar de SSO de OAuth 2.0 en Expedia se cifran utilizando nuestra clave pública, crean un punto de conexión posterior a la autorización, habilitan la notificación y establecen parámetros de alcance. También incluimos información del usuario.

Autorización

El punto de conexión GET /authorize se utiliza para la autenticación y la autorización. Devuelve una concesión de autorización al cliente.

CampoDescripciónTipo de datosEjemplo de valor¿Obligatorio?
client_idIdentifica al cliente. Debe coincidir con el valor prerregistrado en tu proveedor de identidad (IDP). Se obtiene durante el registro manual del cliente o mediante la API de registro dinámico de clientes.Cadena 
nonceSe utiliza para mitigar los ataques de repetición. Este valor se devuelve en el token ID.Cadena 
promptEl tipo de interacción necesaria para validar.CadenaValores válidos:
ninguno
consentimiento
No
redirect_uriLugar de devolución de llamada donde se debe enviar el código de autorización o los tokens. Debe coincidir con el valor prerregistrado en tu IDP durante el registro del cliente.Cadena 
response_typeValor code (IDP).Cadena 
response_modeCómo debe devolverse la respuesta de autorización.CadenaValor válido:
consulta
No
scopeIdentificador de acceso, utilizado para obtener los detalles del perfil. Necesario para las solicitudes de autenticación.CadenaOpenID, perfil y correo electrónico
stateEl estado de la interacción. Este valor se devuelve en el token y permite al usuario hacer clic, autenticarse y volver a la página que le interesaba originalmente. El valor puede contener caracteres alfanuméricos, comas, puntos, guiones bajos y guiones.Cadena 

Parámetros de respuesta

ParámetroDescripciónTipo de datos¿Obligatorio?
codeCódigo de autorización que identifica al cliente. Debe coincidir con el valor prerregistrado en tu IDP. Se obtiene durante el registro manual del cliente o a través de la API de registro dinámico de clientes.Cadena
stateEl estado de la interacción. Este valor se devuelve en el token y permite al usuario hacer clic, autenticarse y volver a la página que le interesaba originalmente. El valor puede contener caracteres alfanuméricos, comas, puntos, guiones bajos y guiones.Cadena

Tokens

El punto de conexión POST /token se utiliza para verificar la identidad del usuario presentando una concesión de autorización.

Parámetros de solicitud

ParámetroDescripciónTipo de datosEjemplo de valor¿Obligatorio?
grant_typeEl mecanismo que utiliza tu IDP para autorizar la creación de los tokens.Cadenaauthorization_code
redirect_uriEspecifica la ubicación de la llamada de retorno donde se ha enviado la autorización. Este valor debe coincidir con el redirect_uri utilizado para generar el authorization_code original.Cadena 
codeCódigo de identificación del cliente recibido en la respuesta a la llamada /authorize.Cadena 

Encabezados de solicitud

ParámetroDescripciónTipo de datosEjemplo de valor¿Obligatorio?
acceptDebe ser "application/json"Cadenaapplication/json
authorizationCodifica el ID y el secreto del cliente con Base64. Utiliza la información codificada en el encabezado de autorización HTTP.CadenaBasic<ID y secreto del cliente cifrados con Base64>
Content-TypeDebe ser "application/x-www-form-urlencoded"Cadenaapplication/x-www-form-urlencoded

Propiedades de respuesta

CampoDescripciónTipo de datos
access_tokenUn token de accesoCadena
token_typeEl público del tokenCadena
expires_inEl tiempo de caducidad del token de acceso en segundosEntero
scopeLos ámbitos contenidos en el token de accesoCadena
id_tokenUn identificador que se devuelve si se concede el ámbito OpenIDCadena

Identificador

ID_token es un token web JSON (JWT) que incluye fragmentos de información de autenticación llamados reclamaciones. Las soluciones de plantilla de Expedia utilizan las reclamaciones header, payload y signature.

Reclamaciones de encabezado

CampoDescripciónTipo de datos¿Obligatorio?
algIdentifica el algoritmo utilizado de firma digital (siempre RS256)CadenaNo
kidID de la clave: identifica la clave pública utilizada para verificar el token de identificación; la clave pública correspondiente se puede encontrar a través del conjunto de claves web JSON (JWKS)Cadena

Reclamaciones de carga

CampoDescripciónTipo de datos¿Obligatorio?
amrMatriz JSON de cadenas que son identificadores para los métodos de autenticaciónMatrizNo
audIdentifica el público al que va dirigido este token de identificación (uno de los ID de cliente OAuth 2.0 de tu aplicación)Cadena
auth_timeLa hora a la que se ha verificado el usuario final, representada en tiempo Unix (segundos)EnteroNo
expLa hora a la que caduca el ID de token, representada en tiempo Unix (segundos)Entero
iatLa hora a la que se ha emitido el ID de token, representada en tiempo Unix (segundos)EnteroNo
idpUn indicador del proveedor de identidadCadena
issLa URL del servidor de autorización que ha emitido este token de identificaciónCadenaNo
jtiUn identificador único para este ID de token con fines de depuración y revocaciónCadena
subUn identificador único para el sujeto de la llamada de autorización (el usuario)CadenaNo
verLa versión semántica del ID de tokenEntero

Reclamaciones de firma

Validación de la firma: la firma se validará con la clave adecuada para ese client_id y algoritmo.

Añadir programa de fidelidad

Como parte de tu sitio web creado a partir de una plantilla, puedes incluir la posibilidad de que tus clientes ganen puntos de fidelidad en sus compras de viajes. Si quieres, 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, así como muchos de los valores. Aquí solo se incluyen los que son diferentes.

Además de la información estándar del usuario, la configuración del programa de fidelidad incluirá los siguientes valores.

programAccount

CampoDescripción¿Obligatorio?
programIdIdentificador del programa de fidelidad al que está afiliado el cliente o el nombre del nivel asociado al programa de fidelidad
loyaltyAccountNumberEl número de la cuenta de fidelidad del cliente; solo debería rellenarse si se requiere un identificador secundario (que no sea el membershipId único) para operaciones de fidelidadNo
lastFourDigitsOfCreditCardLos cuatro últimos dígitos de la tarjeta de crédito utilizada en la reservaNo
accountNameNombre del programa (si no coincide con el nombre del nivel)No
loyaltyConversionRatioRatio de cómo se convierten los puntos obtenidos en el pago (por ejemplo, 1 EUR = 1 punto)No
loyaltyAccountBalanceSaldo actual de puntos de fidelidad obtenidos por el cliente
valueSaldo de fidelidad; anidado bajo loyaltyAccountBalance
currencyLa moneda de recompensa que se utiliza en el programa de fidelidad, como CAD, USD, PUNTOS, MILLAS; anidado bajo loyaltyAccountBalance
¿Te ha resultado útil esta página?
¿Cómo podemos mejorar este contenido?
�Gracias por ayudarnos a mejorar!