SAML v2 概述

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

详细了解 SAML

基本 SSO

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

设置要求

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

  • 公钥证书(用于签名验证)
  • 受众
  • 签发者
  • 端点详情
  • 可添加到白名单的 IP
  • 访客流 (isPassive) 支持详情

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

技术要求:

  • 在您的网站上使用 SAML 2.0
  • 您的私钥必须用于为整个 SAML 响应签名,SAML 有效负载应使用 Base64 编码
  • 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 流程。

AuthnRequest 要素包括:

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

如需了解更多详情,请查看有效负载示例

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