SAML v2 の概要

SAML (Security Assertion Markup Language) は標準的な SSO フォーマットです。その XML ベースのフレームワークにより、電子署名された XML ドキュメントを介した情報交換によるシームレスな認証を可能にします。SAML v2 (別名 SAML 2.0) は、2005 年以来、Web ベースのクロスドメイン SSO を可能にする標準プロトコルとなっています。

SAML の詳細

ベーシック SSO

選択した機能に関係なく、ベーシック SSO の設定要件は同じです。ロイヤルティまたはクレジット カードの実装を追加すると、追加情報が必要になります。

設定要件

テンプレートサイトへの SAML SSO アクセスを適切に設定するには以下が必要です。

  • 公開鍵証明書 (署名検証用)
  • 対象者
  • 発行者
  • エンドポイントの詳細
  • 許可リストに追加する IP
  • お客様フロー (isPassive) サポートの詳細

エクスペディアの標準的な SAML SSO 実装では、当社の公開鍵を使用して暗号化し、宛先エンドポイントを作成し、IP 許可リストを複製して妨害攻撃から保護します。

技術的要件 :

  • サイトで使用されている SAML 2.0
  • 秘密鍵は SAML レスポンス全体の署名に使用する必要があり、SAML ペイロードは Base64 でエンコードする必要がある
  • エクスペディアの公開鍵はアサーションの暗号化に使用される
  • SAML v2 標準に従って署名値を入力する
  • SAML レスポンスに宛先と受信者を含める
  • 適切な証明書を取得できるよう、SAML レスポンスに発行者を含める

ペイロードの詳細

顧客が ID プロバイダー (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 を受け付けることができるため、これは必須ではありません。

クレジットカードの安全性と保管

組織のカスタムクレジット カードを使用して購入することを義務付けた場合でも、心配は無用です。クレジットカードは次のように扱われます。

  • 顧客のエクスペディアプロフィールにリンクされた、トークン化された形式でカード情報が保存されます。暗号化されていない状態で保存されることは決してありません。
  • 人間は暗号化されていないカードデータにアクセスできず、安全な IAM ログイン情報を使用しないと復号化できなくなっています。
  • カードがチェックアウトページにプリロードされると、カード番号ではなくカードの説明のみが表示されます。
  • 保存されたカードで予約を完了する場合、顧客はカードのセキュリティコードを入力する必要があります。

設定要件

標準実装の設定要件に加え、クレジットカードが追加されるとエクスペディアでセキュリティをさらに強化する必要があります。そのためには以下が必要です。

  • AuthnRequest パラメーターに使用するエンドポイント
  • 署名検証用の公開鍵

エクスペディアでは自社の秘密鍵を使用して AuthnRequest ペイロードに署名し、公開鍵を共有して貴社側で署名検証を実行してもらいます。

ペイロードの詳細

顧客がサイトにログインすると、標準実装で説明されている属性とともに、署名され暗号化されたアサーションを含むエンコードされた SAML レスポンスペイロードが、セキュアなエクスペディア SSO エンドポイントに送信されます。

Information

注意

ロイヤルティポイントを獲得するようにテンプレートサイトが設定されている場合は、ProgramAccount 情報も含まれます。

ペイロードには次のクレジット カードの詳細も含まれます。

フィールド説明必須/必須ではない
cardNumber請求対象のクレジットカードの番号必須
cardType使用されるカードの種類 (例 : Visa、MasterCard、American Express)必須
expirationDate使用されるクレジットカードの有効期限必須
addressCategoryCode使用されたカードに関連付けられているクレジットカード登録住所の種類 (例:自宅または会社)必須
firstAddressLineクレジットカード登録住所の 1 行目必須
secondAddressLineクレジットカード登録住所の 2 行目必須ではない
thirdAddressLineクレジットカード登録住所の 3 行目必須ではない
cityNameクレジットカード登録住所の市町村必須
provinceNameクレジットカード登録住所の都道府県必須
postalCodeクレジットカード登録住所の郵便番号必須
countryCodeクレジットカード登録住所の国コード必須

AuthnRequest

認証されていないユーザーがテンプレートサイトにアクセスすると、エクスペディアは AuthnRequestRelayState の両方のパラメーターをエンドポイントに送信します。これによりユーザーにログインを要求し、SSO プロセスを開始します。

AuthnRequest 要素には以下が含まれています。

フィールド説明必須/必須ではない
AssertionConsumerServiceURLユーザーがログインした後のエクスペディアテンプレートサイトへの URL必須
DestinationAuthnRequest をポストするエンドポイントの URL必須
Issuerデータの出所 (値 : Expedia-Test または Expedia-Prod)必須
Signatureメインサイトで検証される SSO 署名必須

詳細についてはペイロードサンプルをご参照ください。

このページは役に立ちましたか ?
このコンテンツに改善が必要な点があれば、
サービス向上にご協力いただきありがとうございます。