SAML v2 개요

SAML(Security Assertion Markup Language)은 표준 SSO 형식입니다. XML 기반 프레임워크는 디지털 서명된 XML 문서를 통해 정보를 교환하여 원활한 인증이 가능하도록 지원합니다. SAML v2(또는 SAML 2.0)는 2005년부터 웹 기반 도메인 간 SSO를 지원하는 표준 프로토콜입니다.

SAML에 대해 자세히 알아보기

기본 SSO

선택한 기능에 관계없이 기본 SSO의 설정 요구 사항은 동일합니다. 로열티 또는 신용카드 구현을 추가하려면 추가 정보가 필요합니다.

설정 요구 사항

템플릿 사이트에 대한 SAML SSO 액세스를 올바르게 설정하려면 다음과 같이 몇 가지 사항이 필요합니다.

  • 공개 키 인증서(서명 인증을 위해)
  • 대상
  • 발행자
  • 엔드포인트 세부 정보
  • 허용 목록에 추가할 IP
  • 고객 흐름(isPassive) 지원 세부 정보

Expedia의 표준 SAML SSO 구현은 공개 키를 사용하여 암호화하고, 대상 엔드포인트를 생성하고, IP 허용 목록을 복제하여 방해 공격으로부터 보호합니다.

기술 요구 사항:

  • 사이트에서 SAML 2.0을 사용해야 합니다.
  • 개인 키는 전체 SAML 응답에 서명하는 데 사용되어야 하며 SAML 페이로드는 Base64로 인코딩되어야 합니다.
  • Expedia의 공개 키는 어설션을 암호화하는 데 사용됩니다.
  • SAML v2 표준에 따라 서명 값을 채웁니다.
  • SAML 응답에 목적지와 수신자를 포함합니다.
  • 적절한 인증서를 가져올 수 있도록 SAML 응답에 발행자를 포함합니다.

페이로드 세부 정보

고객이 IdP(ID 공급자)를 통해 로그인하면 생성된 응답(페이로드라고 함)이 인증을 위해 기본 사이트로 전송됩니다. 인증에 성공하면 고객에게 액세스 권한이 부여됩니다. 제공하는 페이로드에는 다음 필드가 포함됩니다. 이러한 필드가 모두 필요한 것은 아니지만 일부 필드는 사용자 경험(예: 환영 메시지에 고객의 이름 표시)에 사용하고 다른 필드는 인증의 일부로 사용합니다.

필드설명필수 여부
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 자격 증명을 사용해서만 수행됩니다.
  • 카드가 결제 페이지에 미리 로드되어 있는 경우 카드 번호가 아닌 카드 설명만 표시됩니다.
  • 고객은 저장된 카드로 예약을 완료하려면 카드의 CVC를 입력해야 합니다.

설정 요구 사항

표준 구현의 설정 요구 사항 외에도 신용카드를 추가하면 보안 계층을 추가해야 합니다. 이를 위해 다음이 필요합니다.

  • AuthnRequest 매개변수에 사용할 엔드포인트
  • 서명 인증을 위한 공개 키

Expedia의 개인 키를 사용하여 AuthnRequest 페이로드에 서명하고 공개 키를 공유하여 파트너사에서 서명 검증을 수행합니다.

페이로드 세부 정보

표준 구현에 설명된 속성과 함께 고객이 사이트에 로그인하면 서명 및 암호화된 어설션을 포함한 인코딩된 SAML 응답 페이로드를 안전한 Expedia SSO 엔드포인트로 전송합니다.

Information

참고

템플릿 사이트가 로열티 포인트를 적립하도록 설정된 경우 ProgramAccount 정보도 포함됩니다.

페이로드에는 다음과 같은 신용카드 정보도 포함됩니다.

필드설명필수 여부
cardNumber청구할 카드 번호
cardType사용한 카드 유형(예: Visa, MasterCard, American Express)
expirationDate사용한 카드의 만료 날짜
addressCategoryCode사용된 카드와 연결된 청구 주소 유형(예: 집 또는 사무실)
firstAddressLine청구 주소의 첫 번째 줄
secondAddressLine청구 주소의 두 번째 줄아니요
thirdAddressLine청구 주소의 세 번째 줄아니요
cityName청구 주소의 도시
provinceName청구 주소의 주/도
postalCode청구 주소의 우편 번호
countryCode청구 주소의 국가 코드

AuthnRequest

인증되지 않은 사용자가 템플릿 사이트에 액세스하면 Expedia는 AuthnRequestRelayState 매개변수를 모두 엔드포인트로 전송합니다. 그러면 사용자에게 로그인하라는 메시지가 표시되고 SSO 프로세스가 시작됩니다.

AuthnRequest 요소는 다음과 같습니다.

필드설명필수 여부
AssertionConsumerServiceURL사용자가 로그인한 후 Expedia 템플릿 사이트의 URL
DestinationAuthnRequest를 게시할 엔드포인트의 URL
Issuer데이터의 출처. 값: Expedia-Test 또는 Expedia-Prod
Signature기본 사이트에서 검증할 SSO 서명

자세한 내용은 페이로드 예를 참조해 주세요.

이 페이지가 도움이 되었나요?
이 콘텐츠를 어떻게 개선하면 좋을까요?
더 나은 만드는 데 도움을 주셔서 감사합니다!