REST API Cookbook(서버 간) rest-api-cookbook-server-to-server
개요 overview
이 Cookbook 문서의 목적은 서버 간 아키텍처를 사용하여 Adobe Pass 인증을 구현하기 위한 모범 사례를 자세히 설명하는 것입니다. 프로덕션 환경 및 운영에 대한 기본 요구 사항, 단계별 흐름 구현 및 일반적인 고려 사항을 제공합니다.
조절 메커니즘
Adobe Pass 인증 REST API는 조절 메커니즘에 의해 제어됩니다.
구성 요소 components
작동하는 서버 간 솔루션에서는 다음 구성 요소가 포함됩니다.
플로우에 사용되는 추가 용어는
용어집.
플로우 flows
DCR(Dynamic Client Registration)
Adobe Pass은 DCR을 사용하여 프로그래머 애플리케이션 또는 서버와 Adobe Pass 서비스 간의 클라이언트 통신을 보호합니다. DCR 플로우는 별도로 구성되며 동적 클라이언트 등록 개요 설명서에 설명되어 있습니다.
인증(authN)
인증 흐름은 사용자가 자신을 식별할 수 있도록 하는 데 사용됩니다
를 MVPD에 추가하여 사용자에게 유효한 계정이 있는지 확인합니다.
- 사용자가 스트리밍 장치 앱을 시작하고 보호된 콘텐츠에 로그인하거나 보려고 시도합니다.
- 스트리밍 장치 앱은 프로그래머 서비스에 요청하여 장치가 이미 인증되었는지 확인합니다.
- 프로그래머 서비스는 DCR을 사용하여 앱을 등록합니다.
- 프로그래머 서비스는 Adobe Pass 서비스 checkauthn API를 호출하여 스트리밍 장치 authN 상태를 확인합니다.
- checkauthn 호출이 사용자 장치가 인증되었다는 상태를 반환하는 경우 앱이 인증 흐름으로 진행할 수 있습니다.
- checkauthn 호출이 사용자 장치가 인증되지 않음 상태를 반환하는 경우 앱이 사용자 요청이 로그인할 때까지 기다려야 합니다.
- 사용자가 직접 로그인(예: 로그인 버튼 선택) 또는 간접 로그인(예: 아직 인증되지 않은 경우 보호된 콘텐츠 선택)을 요청하면 스트리밍 장치 앱은 프로그래머 서비스에 요청하여 사용자 인증을 시작합니다. 프로그래머 서비스는 Adobe Pass 서비스 regcode API를 호출하여 고유한 등록 코드(regcode)를 요청하고 수신합니다.
- 또한 프로그래머 서비스는 Adobe Pass 서비스 config API를 호출하여 현재 MVPD 및 특성 목록을 검색합니다. 참고: 이 API는 흐름에서 이전에 호출하여 캐시할 수도 있습니다.
- 프로그래머 서비스는 단계 #7에서 요청한 스트리밍 장치 앱과 처리된 MVPD 목록에 regcode를 반환합니다. 참고: 처리된 MVPD 목록 형식은 프로그래머가 지정하며, 특정 MVPD를 명시적으로 허용하거나 차단하도록 필터링할 수 있습니다(허용 또는 차단 목록).
- 가 AuthN 장치와 다르거나 필요한 경우(즉, "두 번째 화면") 스트리밍 장치는 사용자 에이전트를 지원하지 않습니다. 사용자가 AuthN 애플리케이션에 액세스할 수 있도록 regcode 및 URI를 표시해야 합니다. 사용자는 AuthN 장치의 사용자 에이전트에 URI를 입력하여 AuthN 애플리케이션을 실행한 다음 해당 애플리케이션에 regcode를 입력합니다. 스트리밍 장치가 AuthN 장치와 동일한 경우 regcode를 프로그래밍 방식으로 AuthN 모듈에 전달할 수 있습니다.
- AuthN 모듈은 MVPD 선택기를 디스플레이함으로써 MVPD와의 사용자 인증을 개시한다. 사용자가 MVPD를 선택하면 AuthN 모듈이 regcode로 인증 을 호출하여 사용자 에이전트를 MVPD IdP로 리디렉션합니다. 사용자가 MVPD를 인증하면 사용자 에이전트가 Adobe Pass 서비스를 통해 다시 리디렉션되고, 여기서 성공적인 인증은 regcode로 기록되며, AuthN 모듈로 다시 리디렉션됩니다.
- 스트리밍 장치가 AuthN 장치와 다른 경우 AuthN 장치는 사용자에게 성공적인 인증 메시지를 표시하고 계속할 단계를 표시해야 합니다(예: "Success! 이제 게임 콘솔로 돌아가서 […]")를 계속할 수 있습니다. 스트리밍 장치가 AuthN 장치와 동일한 경우 스트리밍 장치는 프로그래밍 방식으로 인증 완료를 감지할 수 있습니다.
다음 다이어그램은 인증 플로우를 보여 줍니다.
인증(authZ)
인증 흐름은 사용자가 요청된 콘텐츠에 액세스할 자격이 있는지 여부를 확인하는 데 사용됩니다.
- 사용자가 스트리밍 장치 앱에서 보호된 콘텐츠를 보려고 할 때마다 스트리밍 장치 앱은 프로그래머 서비스를 호출하여 콘텐츠를 식별하고 스트림을 시작하는 데 필요한 권한 및 정보를 요청합니다.
- 프로그래머 서비스는 다른 필수 매개 변수와 함께 리소스 ID를 전달하는 Adobe Pass authorize API를 호출합니다. Adobe 서비스는 리소스 ID를 사용하여 MVPD AuthZ 서비스를 호출하고 승인 결정을 수신하여 프로그래머 서비스에 다시 전달합니다. 이 권한 부여 결정은 구성 가능한 기간 동안 Adobe Pass 서비스에 의해 캐시됩니다. 프로그래머 서비스에서 Adobe Pass 서비스로의 후속 authorize 호출 시 캐시된 값이 유효한 경우 반환됩니다.
- 인증이 부여되면 프로그래머 서비스는 Adobe Pass /tokens/media API를 호출하여 서명된 미디어 토큰을 반환해야 합니다. 프로그래머 서비스는 JAR(미디어 토큰 검증기 라이브러리)를 사용하여 미디어 토큰의 유효성을 검사해야 합니다. 유효한 경우 프로그래머 서비스는 #1단계에서 요청한 스트림(예: 스트림 URL)을 시작하는 데 필요한 권한과 를 반환해야 합니다.
- 승인이 거부되면 authorize 호출은 프로그래머 서비스에 오류 코드와 설명을 반환합니다. 프로그래머 서비스는 #1단계의 요청에 오류 코드와 설명(또는 프로그래머 수정 메시지)을 반환해야 합니다.
다음 다이어그램은 인증 플로우를 보여 줍니다.
로그아웃
로그아웃 흐름을 사용하면 현재 ID를 제거할 수 있습니다
을(를) 애플리케이션과 연결합니다.
- 사용자가 로그아웃을 요청하면(즉, 응용 프로그램과 연결된 현재 MVPD 계정을 장치에서 제거), 스트리밍 장치 앱은 프로그래머 서비스를 호출하여 장치를 로그아웃시킵니다.
- 프로그래머 서비스는 Adobe Pass logout API를 호출해야 합니다.
다음 다이어그램은 로그아웃 플로우를 보여 줍니다.
[선택 사항] 사전 인증(사전 실행)입니다.
사전 인증을 사용하면 리소스 세트에서 사용자가 액세스할 수 있는 리소스를 신속하게 결정할 수 있습니다. 이 호출의 결과는 일반적으로 개별 사용자에 대한 UI를 사용자 지정하는 데 사용됩니다.
-
사용자가 인증되면, 스트리밍 장치는 프로그래머 서비스를 호출하여 사용자가 스트리밍할 자격이 있는 콘텐츠를 요청할 수 있다.
-
프로그래머 서비스는 일반적으로 사용자가 스트리밍할 수 있는 채널을 나타내는 간단한 문자열인 리소스 ID 목록으로 Adobe Pass 사전 승인 API를 호출해야 합니다. 참고: 현재 사전 승인 호출이 목록을 5개의 리소스 ID로 제한하도록 구성되었습니다. 5개 이상의 리소스가 필요한 경우 여러 사전 승인 호출을 수행하거나 MVPD의 동의를 받아 5개 이상의 리소스를 수락하도록 호출을 구성할 수 있습니다. 구현자는 사전 승인 MVPD 리소스에 대한 비용과 프로그래머에 대한 응답 시간을 모두 호출하고 호출 사용을 신중하게 구성해야 합니다.
-
사전 승인 호출은 사용자가 연결된 채널에 대한 권한이 있는지 여부를 나타내는 요청의 각 리소스 ID에 대한 TRUE 또는 FALSE 값이 포함된 JSON 개체로 프로그래머 서비스에 응답합니다. 참고: MVPD가 지정된 리소스 ID에 대한 답변을 제공하지 않으면(예: 네트워크 오류 또는 시간 초과) 이 값은 기본적으로 FALSE로 설정됩니다.
-
프로그래머 서비스는 사전 승인 호출 응답을 사용하여 스트리밍 장치에 대한 프로그래머 정의 사용자 지정 응답을 만들고 일반적으로 사용 권한에 따라 사용자에게 프레젠테이션을 개인화해야 합니다.
다음 다이어그램은 사전 인증 플로우를 보여 줍니다.
[선택 사항] 메타데이터
메타데이터는 MVPD에 의해 공유된 사용자 정보를 검색하는 데 사용될 수 있다.
이러한 예로는 사용자 ID, 우편번호 등이 있습니다.
-
사용자가 인증되면 프로그래머 서비스는 Adobe Pass usermetadata API를 호출하여 인증된 사용자에 대한 정보를 요청할 수 있습니다.
-
응답에는 주어진 사용자에 대해 사용할 수 있는 모든 메타데이터가 포함됩니다. 특정 필드는 각 프로그래머/MVPD 통합에 대해 별도로 구성됩니다.
다음 다이어그램은 사전 인증 플로우를 보여 줍니다.
환경 및 기능 요구 사항 environments
프로그래머는 프로덕션 환경과 스테이징 환경을 두 개 이상 만들어야 합니다.
프로덕션
프로덕션 환경은 가용성이 높고 큰 스파이크나 예기치 않은 스파이크(예: 라이브 스포츠, 브레이킹)에 맞게 적절히 조정되어야 합니다
news).
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과 공유된 인증서를 유지 관리해야 합니다.