사용자 메타데이터 user-metadata
소개 intro
사용자 메타데이터 기능을 사용하면 프로그래머가 MVPD에서 유지 관리되는 다양한 유형의 사용자별 데이터에 액세스할 수 있습니다. 사용자 메타데이터 유형에는 우편 번호, 보호자 등급, 사용자 ID 등이 포함됩니다. 사용자 메타데이터는 이전에 사용할 수 있었던 확장입니다. 정적 메타데이터(인증 토큰 TTL, 인증 토큰 TTL 및 장치 ID).
사용자 메타데이터 핵심 사항:
- 인증 및 권한 부여 흐름 중에 프로그래머의 애플리케이션으로 전달됨
- 값이 토큰에 저장됩니다.
- 상이한 MVPD들이 상이한 포맷들로 데이터를 제공하는 경우 값들은 정규화될 수 있다
- 일부 매개 변수는 프로그래머 키(예: zip 코드)를 사용하여 암호화할 수 있습니다
- 특정 값은 구성 변경을 통해 Adobe에서 사용할 수 있습니다
사용자 메타데이터 가져오기 obtaining
프로그래머는 AccessEnabler를 통해 사용자 메타데이터를 사용할 수 있습니다. getMetadata()
함수 및 를 통해 /usermetadata
clientless API의 종단점입니다. 사용에 대한 자세한 내용은 플랫폼 API 설명서 를 참조하십시오 getMetadata()
및 해당 콜백 setMetadataStatus()
(또는 클라이언트 없는 API에 사용되는 끝점 및 매개 변수의 경우).
프로그래머는 가져오려는 메타데이터 유형에 대한 키를 제공하여 메타데이터를 가져옵니다. getMetadata(key)
.
메타데이터는 다음과 같이 반환됩니다. setMetadataStatus(key, encrypted, data)
:
key
encrypted
data
데이터 매개 변수의 구조입니다. 값은 유형에 따라 다릅니다.
zip
householdID
userID
maxRating
VCHIP: "X",
URL: "http://manage.my/parental" }
userID
userID
이(가) 다음과 다름 householdID
.channelID
is_hoh
encryptedZip
typeID
primaryOID
typeID
은(는) 기본이며 다음 값을 포함합니다. userID
중요 사항: 프로그래머가 사용할 수 있는 실제 사용자 메타데이터는 MVPD가 사용할 수 있도록 하는 내용에 따라 다릅니다. 프로덕션 환경에서 중요한 사용자 메타데이터(예: zip 코드)를 사용하려면 먼저 MVPD와 법적 계약을 체결해야 합니다.
이 사건의 해싱은 역사적인 이유로 이루어졌다
이 ID는 세대 ID 또는 하위 계정 ID일 수 있습니다. 이는 일반적으로 지정되지 않으며, 당시 사용된 로그인에 연결된 ID일 뿐입니다(기본 계정 또는 하위 계정일 수 있음)
ID에는 동시성 모니터링 정책도 포함될 수 있습니다
대부분의 MVPD에서 이 값은 사용자 ID와 같습니다
실제 등급을 사용할 수 없는 경우 자녀 보호 대용품으로 사용되는 경우가 있습니다(사용자가 시청할 수 있는 가족 계정으로 로그인한 경우). 그렇지 않으면 등급이 매겨진 컨텐츠가 표시되지 않음)
MVPD에는 이를 나타내는 방법에 대한 많은 변형이 있습니다. - 가구 사용자 ID, 가구주 ID, 가구주 플래그 등.
유형 ID = 사용자 계정이 기본/보조 계정인지 식별하는 플래그입니다.
기본 OID = 가정용 식별자. TypeID가 기본이면 에는 userID 값이 포함됩니다.
MPAA 또는 VCHIP 등급 있음
Preflight 권한 부여는 일반적으로 이 사용 사례에 더 많은 유연성을 허용하므로 대신 사용해야 합니다
OLCA 사양은 AuthN 응답에서 이것을 속성 문으로 허용합니다
빠른 업데이트를 위한 AuthZ 응답도 제공 가능
중요한 데이터, MVPD 법적 동의 필요
사용 가능한 메타데이터 available_metadata
다음 표는 Adobe Pass 인증 에코 시스템에서 사용자 메타데이터의 현재 상태를 보여 줍니다.
계약
서명됨(zip만 해당)
인증 시
인증/Z에서
인증/Z에서
AuthN/Z의 ID
userID
zip
maxRating
householdID
channelID
2. AuthZ의 경우 권한 부여 구현이 MVPD와 관련되므로 일반적인 방법이 없습니다.
이는 Synacor에 대한 일반 지원이며 일부 MVPD로 롤업되지는 않을 수 있습니다.
MVPD
모든 MVPD의 경우 추가 작업 없이 사용자 ID를 사용할 수 있습니다.
새로운 유형을 사용할 수 있고 Adobe Pass 인증 시스템에 추가되면 사용자 메타데이터 유형 목록이 확장됩니다.
코드 샘플 code_samples
코드 샘플 1 code_sample1
// Assuming a reference to the AccessEnabler has been previously obtained and stored in the "ae" variable
ae.setRequestor("SITE");
ae.checkAuthentication();
function setAuthenticationStatus(status, reason) {
if(status ==1) {
// User is authenticated, request metadata
ae.getMetadata("zip");
ae.getMetadata("maxRating");
} else {
...
}
}
// Implement the setMetadataStatus() callback
function setMetadataStatus(key, encrypted, data) {
if(encrypted) {
// The metadata value is encrypted
// Needs to be decrypted by the programmer
data = decrypt(data);
}
alert(key + "=" + data);
}
코드 샘플 2 (Mock getMetadata) code_sample2
// Assuming a reference to the AccessEnabler has been
// previously obtained and stored in the "ae" variable
// Mock the getMetadata() method
var aeMock = {
getMetadata: function(key) {
var data = null;
// Set mock data based on the received key,
// according to the format in the spec
switch(key) {
case 'zip':
data = [ "1235", "23456" ];
break;
case 'maxRating':
data = { "MPAA": "PG-13", "VCHIP": "TV-14" };
break;
default:
break;
}
// Call the metadata status just like AccessEnabler does
setMetadataStatus(key, false, data);
}
}
ae.setRequestor("SITE");
ae.checkAuthentication();
function setAuthenticationStatus(status, reason) {
if (status == 1) {
// User is authenticated, request metadata using mock object
aeMock.getMetadata("zip");
aeMock.getMetadata("maxRating");
} else {
...
}
}
// Implement the setMetadataStatus() callback
function setMetadataStatus(key, encrypted, data) {
if (encrypted) {
// The metadata value is encrypted, so it
// needs to be decrypted by the programmer
data = decrypt(data);
}
alert(key + "=" + data);
}