Developer Hub
这是自动生成的译文

SAML v2 概述

安全断言标记语言 (SAML) 是一种标准的单点登录 (SSO) 格式。其基于 XML 的框架可通过数字签名的 XML 文档进行信息交换,从而实现无缝身份验证。自 2005 年起,SAML v2(又称 SAML 2.0)便成为实现基于 web 的跨域 SSO 的标准协议。

>> 了解更多关于 SAML 的信息

授权流程

alt

基本 SSO

无论您选择了哪种功能,基本 SSO 的设置要求都是一样的。添加会员积分或信用卡集成功能将需要额外的信息。

设置要求

要正确设置模板网站的 SAML SSO 访问权限,我们需要以下内容:

  • 公钥证书: 您将使用私钥在您的端授权 SAML 文件,Expedia 将使用公钥进行验证。
  • 受众: 为 SAML 断言颁发的预期服务提供商,在 AudienceRestriction 参数中指定,以确保断言仅被指定的接收者接受。
  • 颁发者: 身份提供商 (IDP) 实体,负责生成 SAML 断言并对其进行数字签名,从而验证用户的已认证身份。
  • 端点详情: 身份验证 (Authn) 端点是身份提供商向其发送身份验证请求的 URL。您需要配置模板站点,以便 Expedia SSO 端点在用户通过身份验证后启动 SSO。
  • 要添加到允许列表中的 IP 地址: 允许在模板站点和 Expedia 之间传输的 IP 地址列表。不在允许列表(无论是您的还是我们的)中的 IP 地址会导致入站和出站 SSO 呼叫的连接问题。
  • 访客流程 (isPassive) 支持详情: 网站是否提供访客体验,或者用户是否始终需要登录才能访问网站内容。

Expedia SAML SSO 的实施标准将使用我们的公钥进行加密,创建目的地端点,并复制您的 IP 白名单,以防范中断攻击。

技术要求:

  • 在您的网站上使用 SAML 2.0
  • 您的私钥必须用于为整个 SAML 响应签名,SAML 有效负载应使用 Base64 编码
  • Expedia 的公钥将用于加密断言,然后使用 Expedia 的私钥进行解密。
  • 根据 SAML v2 标准填充签名值
  • 在 SAML 响应中包含目的地和收件人
  • 在 SAML 响应中包含签发者,以便我们获取适当的证书

有效负载详情

客户通过您的身份提供商 (IdP) 登录后,它会将生成的响应(称为有效负载)发送到您的主站点进行身份验证。如果身份验证成功,客户将获准访问。 我们提供的有效负载包括以下字段。我们并不需要所有这些字段,但我们会使用其中一些字段来实现用户体验(例如,在欢迎信息中显示客户姓名),另一些字段则用于部分验证。

字段说明是否必填?
membershipId客户账户的唯一标识符
relayState验证完成后,客户将被重定向到的 URL
languageID网站可显示的语言
channelType经过优化的网站平台(值:WEB、MOBILE、TABLET)
firstName客户的名字
middleName客户的中间名
lastName客户的姓氏
email客户的邮箱地址

添加会员积分

作为模板网站的一部分,您可以添加让客户在购买旅行产品时赚取积分的功能。您的模板还可以允许客户使用累积的积分兑换旅行产品。

>>了解更多关于积分的信息

设置要求与标准实施的设置要求无异。

有效负载详情

除了标准实施中介绍的属性外,添加会员积分“累积和兑换”功能还需要以下账户 (ProgramAccount) 属性。

字段说明是否必填?
programId会员积分计划的等级标识符
programAccountNumber客户所属计划的帐号(也称为 loyaltyAccountNumber
lastFourDigitsOfCreditCard客户预订所用信用卡的最后 4 位数
accountName计划的帐户名
loyaltyConversionRatio消费金额转换为累积积分的比率(例如 $1 = 1 积分)
loyaltyAccountBalance客户累积会员积分的当前余额

限制付款卡

我们可以设置您的网站,让客户必须使用贵公司的信用卡才能预订。这是可选设置,因为所有模板解决方案都可以接受所有主流信用卡或借记卡以及 PayPal(美国境内)支付。

信用卡安全和存储

如果您选择要求使用贵组织自定义的信用卡预订,我们希望让您感到安心。我们通过以下方式确保安全。

  • 银行卡信息以标记化形式存储,并与客户的 Expedia 个人资料关联。始终采用加密存储。
  • 任何人都无法访问未加密的银行卡数据,只有使用安全的 IAM 凭证才能解密。
  • 当卡被预先加载到结账页面时,只能看到卡的介绍,但看不到卡号。
  • 客户必须输入信用卡安全码才能使用存储卡完成预订。

设置要求

添加信用卡功能意味着除了标准实施的设置要求外,还需要增加额外的一层安全保护。为此,我们需要:

  • 用于 AuthnRequest 参数的端点
  • 用于签名验证的公钥

我们将使用 Expedia 的私钥为 AuthnRequest 有效负载签名,并共用我们的公钥为您的终端提供签名验证。

有效负载详情

当客户在您的网站上登录时,除了标准实施中介绍的属性外,我们将向安全的 Expedia SSO 端点发送带有签名和加密断言的编码 SAML 响应有效负载。

Information

注意

如果您的模板网站还设置了赚取会员积分功能,也应加上 ProgramAccount 信息。

有效负载还将包含以下详细信用卡信息:

字段说明是否必填?
cardNumber要扣款的卡号
cardType使用的卡类型(例如 Visa、万事达卡、美国运通卡)
expirationDate所使用银行卡的有效期
addressCategoryCode与所用银行卡相关联的账单地址类型(如家庭地址或办公室地址)
firstAddressLine账单地址的第一行
secondAddressLine账单地址的第二行
thirdAddressLine账单地址的第三行
cityName账单地址所在城市
provinceName账单地址所在州或省
postalCode账单地址的邮政编码
countryCode账单地址的国家/地区代码

AuthnRequest

当未经身份验证的用户访问您的模板网站时,Expedia 将向您的端点发送 AuthnRequestRelayState 参数。这将提示用户登录,从而启动 SSO 流程。然后,您将把客户重定向到 Expedia 的 SSO 端点,以启动对模板站点的 SSO。

AuthnRequest 要素包括:

字段说明是否必填?
AssertionConsumerServiceURL用户登录后指向 Expedia 模板网站的 URL
Destination将 AuthnRequest 发送到的端点 URL
Issuer数据来源;值:Expedia-Test 或 Expedia-Prod
Signature由主网站验证的 SSO 签名

>> 更多信息,请查看我们的有效载荷示例

Expedia 端点

用户通过身份验证后,您需要将其重定向到{WLTP domain}/sso/saml

该页面有帮助吗?
我们该如何改进这些内容?
感谢您帮助我们改进!