REST API Cookbook(서버 간) rest-api-cookbook-server-to-server

NOTE
이 페이지의 컨텐츠는 정보용으로만 제공됩니다. 이 API를 사용하려면 Adobe의 현재 라이선스가 필요합니다. 허가되지 않은 사용은 허용되지 않습니다.

개요 overview

이 Cookbook 문서의 목적은 서버 간 아키텍처를 사용하여 Adobe Pass 인증을 구현하기 위한 모범 사례를 자세히 설명하는 것입니다. 프로덕션 환경 및 운영에 대한 기본 요구 사항, 단계별 흐름 구현 및 일반적인 고려 사항을 제공합니다.

조절 메커니즘

Adobe Pass 인증 REST API는 조절 메커니즘.

구성 요소 components

작동하는 서버 간 솔루션에서는 다음 구성 요소가 포함됩니다.

유형
구성 요소
설명
스트리밍 장치
스트리밍 앱
사용자의 스트리밍 장치에 상주하며 인증된 비디오를 재생하는 프로그래머 애플리케이션.
[선택 사항] AuthN 모듈
스트리밍 장치에 사용자 에이전트(즉, 웹 브라우저)가 있는 경우 AuthN 모듈은 MVPD IdP에서 사용자를 인증할 수 있습니다.
[선택 사항] AuthN 장치
Autn 앱
스트리밍 장치에 사용자 에이전트(즉, 웹 브라우저)가 없는 경우 AuthN 애플리케이션은 웹 브라우저를 사용하여 별도의 사용자 장치에서 액세스하는 프로그래머 웹 애플리케이션입니다.
프로그래머 인프라
프로그래머 서비스
인증 및 권한 부여 결정을 얻기 위해 스트리밍 장치와 Adobe Pass 서비스를 연결하는 서비스입니다.
Adobe 인프라
Adobe Pass 서비스
MVPD IdP 및 AuthZ 서비스와 통합되고 인증 및 권한 부여 결정을 제공하는 서비스입니다.
MVPD 인프라
MVPD IdP
사용자의 ID를 확인하기 위해 자격 증명 기반 인증 서비스를 제공하는 MVPD 종단점입니다.
MVPD AuthZ 서비스
사용자의 구독, 자녀 보호 등을 기반으로 권한 부여 결정을 제공하는 MVPD 엔드포인트.

플로우에 사용되는 추가 용어는
용어집.

플로우 flows

DCR(Dynamic Client Registration)

Adobe Pass은 DCR을 사용하여 프로그래머 애플리케이션 또는 서버와 Adobe Pass 서비스 간의 클라이언트 통신을 보호합니다. DCR 플로우는 별도의 종속 및 전제 조건 플로우이며 다음에서 찾을 수 있습니다. 동적 클라이언트 등록.

인증(authN)

인증 흐름은 사용자가 MVPD에 대해 자신을 식별하여 사용자가 유효한 계정을 가지고 있는지 여부를 확인하는 데 사용됩니다.

  1. 사용자가 스트리밍 장치 앱을 시작하고 보호된 콘텐츠에 로그인하거나 보려고 시도합니다.
  2. 스트리밍 장치 앱은 프로그래머 서비스에 요청하여 장치가 이미 인증되었는지 확인합니다.
  3. 프로그래머 서비스는 DCR을 사용하여 앱을 등록합니다.
  4. 프로그래머 서비스는 Adobe Pass 서비스를 호출하여 스트리밍 장치 authN 상태를 확인합니다 checkauthn API.
  5. 다음의 경우에 checkauthn 호출이 사용자 장치가 인증되었다는 상태를 반환하면 앱이 인증 플로우로 진행될 수 있습니다.
  6. 다음의 경우에 checkauthn 호출이 사용자 장치가 인증되지 않음 상태를 반환하면 앱이 사용자 요청이 로그인할 때까지 대기해야 합니다.
  7. 사용자가 직접 로그인(예: 로그인 버튼 선택) 또는 간접 로그인(예: 아직 인증되지 않은 경우 보호된 콘텐츠 선택)을 요청하면 스트리밍 장치 앱은 프로그래머 서비스에 요청하여 사용자 인증을 시작합니다. 프로그래머 서비스는 Adobe Pass 서비스를 호출하여 고유한 등록 코드(regcode)를 요청하고 수신합니다 regcode API.
  8. 프로그래머 서비스는 Adobe Pass 서비스를 호출하여 현재 MVPD 및 특성 목록을 검색합니다 config API. 참고: 이 API는 흐름에서 이전에 호출하여 캐시할 수도 있습니다.
  9. 프로그래머 서비스는 단계 #7에서 요청한 스트리밍 장치 앱과 처리된 MVPD 목록에 regcode를 반환합니다. 참고: 처리된 MVPD 목록 형식은 프로그래머가 지정하며, 특정 MVPD를 명시적으로 허용하거나 차단하도록 필터링할 수 있습니다(허용 또는 차단 목록).
  10. 가 AuthN 장치와 다르거나 필요한 경우(즉, "두 번째 화면") 스트리밍 장치는 사용자 에이전트를 지원하지 않습니다. 사용자가 AuthN 애플리케이션에 액세스할 수 있도록 regcode 및 URI를 표시해야 합니다. 사용자는 AuthN 장치의 사용자 에이전트에 URI를 입력하여 AuthN 애플리케이션을 실행한 다음 해당 애플리케이션에 regcode를 입력합니다. 스트리밍 장치가 AuthN 장치와 동일한 경우 regcode를 프로그래밍 방식으로 AuthN 모듈에 전달할 수 있습니다.
  11. AuthN 모듈은 MVPD 선택기를 디스플레이함으로써 MVPD와의 사용자 인증을 개시한다. 사용자가 MVPD를 선택하면 AuthN 모듈이 호출됩니다 인증 사용자 에이전트를 MVPD IdP로 리디렉션하는 regcode를 사용합니다. 사용자가 MVPD를 인증하면 사용자 에이전트가 Adobe Pass 서비스를 통해 다시 리디렉션되고, 여기서 성공적인 인증은 regcode로 기록되며, AuthN 모듈로 다시 리디렉션됩니다.
  12. 스트리밍 장치가 AuthN 장치와 다른 경우 AuthN 장치는 사용자에게 성공적인 인증 메시지를 표시하고 계속할 단계를 표시해야 합니다(예: "Success! 이제 게임 콘솔로 돌아가서 […]")를 계속할 수 있습니다. 스트리밍 장치가 AuthN 장치와 동일한 경우 스트리밍 장치는 프로그래밍 방식으로 인증 완료를 감지할 수 있습니다.

다음 다이어그램은 인증 플로우를 보여 줍니다.

인증(authZ)

인증 흐름은 사용자가 요청된 콘텐츠에 액세스할 자격이 있는지 여부를 확인하는 데 사용됩니다.

  1. 사용자가 스트리밍 장치 앱에서 보호된 콘텐츠를 보려고 할 때마다 스트리밍 장치 앱은 프로그래머 서비스를 호출하여 콘텐츠를 식별하고 스트림을 시작하는 데 필요한 권한 및 정보를 요청합니다.
  2. 프로그래머 서비스에서 Adobe Pass 호출 authorize 기타 필수 매개 변수와 함께 리소스 ID를 전달하는 API입니다. Adobe 서비스는 리소스 ID를 사용하여 MVPD AuthZ 서비스를 호출하고 승인 결정을 수신하여 프로그래머 서비스에 다시 전달합니다. 이 권한 부여 결정은 구성 가능한 기간 동안 Adobe Pass 서비스에 의해 캐시됩니다. 이후 authorize 프로그래머 서비스에서 Adobe Pass 서비스로의 호출을 수행하면 캐시된 값이 유효한 한 반환됩니다.
  3. 권한이 부여되면 프로그래머 서비스에서 Adobe Pass을 호출해야 합니다 /tokens/media 서명된 미디어 토큰을 반환하는 API입니다. 프로그래머 서비스는 JAR(미디어 토큰 검증기 라이브러리)를 사용하여 미디어 토큰의 유효성을 검사해야 합니다. 유효한 경우 프로그래머 서비스는 #1단계에서 요청한 스트림(예: 스트림 URL)을 시작하는 데 필요한 권한과 를 반환해야 합니다.
  4. 승인이 거부되면 authorize 를 호출하면 프로그래머 서비스에 오류 코드와 설명이 반환됩니다. 프로그래머 서비스는 #1단계의 요청에 오류 코드와 설명(또는 프로그래머 수정 메시지)을 반환해야 합니다.

다음 다이어그램은 인증 플로우를 보여 줍니다.

로그아웃

로그아웃 흐름을 사용하면 사용자가 현재 애플리케이션과 연결된 ID를 제거할 수 있습니다.

  1. 사용자가 로그아웃을 요청하면(즉, 응용 프로그램과 연결된 현재 MVPD 계정을 장치에서 제거), 스트리밍 장치 앱은 프로그래머 서비스를 호출하여 장치를 로그아웃시킵니다.
  2. 프로그래머 서비스는 Adobe Pass을 호출해야 합니다. 로그아웃 API.

다음 다이어그램은 로그아웃 플로우를 보여 줍니다.

[선택 사항] 사전 인증(사전 실행)입니다.

사전 인증을 사용하면 리소스 세트에서 사용자가 액세스할 수 있는 리소스를 신속하게 결정할 수 있습니다. 이 호출의 결과는 일반적으로 개별 사용자에 대한 UI를 사용자 지정하는 데 사용됩니다.

  1. 사용자가 인증되면, 스트리밍 장치는 프로그래머 서비스를 호출하여 사용자가 스트리밍할 자격이 있는 콘텐츠를 요청할 수 있다.

  2. 프로그래머 서비스는 Adobe Pass을 호출해야 합니다. 사전 승인 리소스 ID 목록이 포함된 API. 일반적으로 사용자가 스트리밍할 수 있는 채널을 나타내는 간단한 문자열입니다. 참고: 현재 사전 승인 이 호출은 목록을 5개의 리소스 ID로 제한하도록 구성되어 있습니다. 5개 이상의 리소스가 필요한 경우 사전 승인 호출을 수행하거나 MVPD의 동의를 사용하여 5개 이상의 리소스를 수락하도록 호출을 구성할 수 있습니다. 구현자는 의 비용을 염두에 두어야 합니다. 사전 승인 MVPD 리소스와 프로그래머에 대한 응답 시간 모두를 호출하고 호출 사용을 신중하게 구성하십시오.

  3. 다음 사전 승인 호출은 사용자가 관련 채널에 대한 권한이 있는지 여부를 나타내는 요청의 각 리소스 ID에 대한 TRUE 또는 FALSE 값을 포함하는 JSON 개체로 프로그래머 서비스에 응답합니다. 참고: MVPD가 지정된 리소스 ID에 대한 답변을 제공하지 않으면(예: 네트워크 오류 또는 시간 초과로 인해) 이 값은 기본적으로 FALSE로 설정됩니다.

  4. 프로그래머 서비스에서는 사전 승인 스트리밍 장치에 대한 프로그래머 정의 사용자 지정 응답을 만들려면 응답을 호출하십시오. 일반적으로 해당 권한에 따라 사용자에게 프레젠테이션을 개인화합니다.

다음 다이어그램은 사전 인증 플로우를 보여 줍니다.

[선택 사항] 메타데이터

메타데이터는 MVPD에 의해 공유된 사용자 정보를 검색하는 데 사용될 수 있다.
이러한 예로는 사용자 ID, 우편번호 등이 있습니다.

  1. 사용자가 인증되면 프로그래머 서비스는 Adobe Pass을 호출할 수 있습니다. 사용자 메타데이터 인증된 사용자에 대한 정보를 요청하는 API입니다.

  2. 응답에는 주어진 사용자에 대해 사용할 수 있는 모든 메타데이터가 포함됩니다. 특정 필드는 각 프로그래머/MVPD 통합에 대해 별도로 구성됩니다.

다음 다이어그램은 사전 인증 플로우를 보여 줍니다.

환경 및 기능 요구 사항 environments

프로그래머는 프로덕션 환경과 스테이징 환경을 두 개 이상 만들어야 합니다.

프로덕션

프로덕션 환경은 가용성이 높고 대규모이거나 예기치 않은 급등(예: 라이브 스포츠, 속보)에 맞게 확장되어야 합니다.

Adobe Pass 서비스는 미국 전역에 지리적으로 분산된 여러 데이터 센터에서 실행됩니다. Adobe Pass 서비스에서 최상의 응답 시간(즉, 가장 짧은 지연)을 달성하려면 프로그래머는 지리적으로 분산된 유사한 서비스 인프라도 만들어야 합니다.

프로그래머 서비스는 Adobe이 트래픽을 다시 라우팅해야 하는 경우 DNS 캐시를 최대 30초로 제한해야 합니다. 이 문제는 데이터 센터를 사용할 수 없는 경우 발생할 수 있습니다.

프로그래머는 프로덕션 환경의 공용 IP 범위를 제공해야 합니다. 이러한 IP는 Adobe Pass 인프라의 허용 목록에 입력되어 액세스하고 Adobe의 API 페어 사용 정책에 의해 관리됩니다.

스테이징

스테이징 환경은 최소한일 수 있지만 모든 시스템 구성 요소와 비즈니스 논리를 포함해야 합니다. 프로덕션과 유사하게 작동하고 프로덕션 외부에서 릴리스를 테스트할 수 있도록 해야 합니다. 이상적으로 스테이징 환경은 프로그래머가 사용하기 위해 Adobe Pass 테스트 환경에 연결할 수 있고 필요한 경우 Adobe을 통해 테스트와 문제 해결을 지원할 수 있습니다.

기능 요구 사항

프로그래머 서비스는 플로우를 실행하는 장치에 대한 정확한 장치 식별 정보를 전달해야 한다. 또한 프로그래머 서비스는 연결 소스 포트(장치 정보 필드)와 함께 흐름을 실행할 장치의 IP(x-forwarded-for 헤더에서)를 전달해야 합니다.

**X-Forwarded-For : \<client _ip="">**

여기서 \<client _ip=""> 은(는) 클라이언트 공용 IP 주소입니다



헤더는 **regcode** 및 **authorize** 호출에 추가되어야 합니다

예 :

POST /reggie/v1/{req\_id}/regcode HTTP/1.1

X-Forwarded-For:203.45.101.20



GET /api/v1/authorize HTTP/1.1

X-Forwarded-For:203.45.101.20

프로그래머 서비스는 개별 MVPD 또는 통합 앱에 필요한 데이터 및 형식을 전송해야 합니다(예: 장치 IP, 소스 포트, 장치 정보, MRSS, ECID와 같은 선택적 데이터). .

프로그래머 서비스는 캐싱 시 authN 및 authZ TTL을 준수해야 하며 알림 시 authN 또는 authZ 세션을 무효화해야 합니다.

프로그래머는 Adobe과 공유된 인증서를 유지 관리해야 합니다.

recommendation-more-help
3f5e655c-af63-48cc-9769-2b6803cc5f4b