使用者中繼資料 user-metadata

NOTE
此頁面上的內容僅供參考。 使用此API需要Adobe的目前授權。 不允許未經授權的使用。

簡介 intro

使用者中繼資料功能可讓程式設計師存取由MVPD維護的不同使用者特定資料型別。 使用者中繼資料型別包括郵遞區號、家長分級、使用者ID等。 使用者 ​中繼資料是先前可用​ 靜態 ​中繼資料的延伸(驗證權杖TTL、授權權杖TTL和裝置ID)。

使用者中繼資料關鍵點:

  • 在驗證和授權流程期間傳遞給程式設計師的應用程式
  • 值會儲存在權杖中
  • 如果不同的MVPD提供不同格式的資料,則可標準化值
  • 部分引數可使用程式設計人員的金鑰(例如郵遞區號)加密,請參閱加密的使用者中繼資料憑證以產生加密憑證
  • 特定值可透過設定變更由Adobe提供

取得使用者中繼資料 obtaining

程式設計師可以透過AccessEnabler getMetadata()函式和Clienless API中的/usermetadata端點使用使用者中繼資料。 請參閱平台API檔案,以取得有關使用getMetadata()及其對應回呼setMetadataStatus()的詳細資料(或無使用者端API中使用的端點與引數)。

程式設計師提供要取得的中繼資料型別的索引鍵,以取得中繼資料: getMetadata(key)

中繼資料傳回如下: setMetadataStatus(key, encrypted, data)

引數
型別
說明
key
字串
指定要求的中繼資料型別
encrypted
布林值
表示「value」是否已加密的布林值標幟。 如果這是「true」,則「value」實際上將會是JSON Web加密的實際值表示法。
data
物件
包含中繼資料表示的JSON物件

資料引數的結構,值會因型別而異:

索引鍵
值型別
範例
說明
zip
JSON陣列
["77754", "12345"]
郵遞區號
householdID
JSON字串
「1o7241p」
家庭識別碼。 如果MVPD不支援附屬帳戶,這將會與userID相同
maxRating
json物件
{ MPAA: "NR",
VCHIP: "X",
URL: "http://manage.my/parental" }
使用者的父母分級上限
userID
JSON字串
「1o7241p」
使用者識別碼。 在MVPD支援附屬帳戶,且使用者不是主要帳戶的情況下,userID將與householdID不同。
channelID
JSON陣列
["channel-1", "channel-2" ]
使用者有權檢視的管道清單
is_hoh
JSON字串
"1"
可識別使用者是否為戶主的旗標
encryptedZip
JSON字串
「」
Comcast會公開加密的郵遞區號
typeID
JSON字串
主要
識別使用者帳戶是否為主要/次要帳戶的旗標
primaryOID
JSON字串
「uuidd1e19ec9-012c-124f-b520-acaf118d16a0」
家庭識別碼。 如果typeID是主要的,將包含userID的值
hba狀態
布林值
"true" "false"
表示是否為特定整合啟用家用驗證的布林值旗標
allowMirroring
布林值
"true" "false"
指出此裝置是否允許熒幕映象
NOTE
注意: ​如果資料引數已加密(如​ zip金鑰 ​的通常情況),則表示的中繼資料金鑰將是JSON字串,而非Array或Object。

重要: ​程式設計師可用的實際使用者中繼資料取決於MVPD所提供的內容。 在生產環境中提供敏感的使用者中繼資料(例如郵遞區號)之前,必須與MVPD簽署法律協定。

名稱
詳細資料
需要加密
註解
使用者ID
由MVPD提供
此值接著會由Adobe進行雜湊處理,並公開於媒體權杖和sendTrackingData()回呼中。

此情況下的雜湊處理是因歷史原因而完成

此ID可能是家庭ID或子帳戶ID。 這通常不會指定,只是與當時使用的登入連結的ID (可以是主要帳戶或子帳戶)
上游使用者ID
由MVPD提供,僅用於並行監視流程
在MVPD和程式設計師網站與應用程式中強制實施並行限制時,會使用此值。

識別碼也可以包含並行監視原則

對於大多數MVPD,這個值等於使用者識別碼
家庭使用者ID
由MVPD提供,主要用於家長監護流程
可讓程式設計師瞭解家庭與子帳戶使用情況的ID。

如果無法取得真實的分級,則它有時會被當做家長監護的替代專案(如果使用者是以他們可以觀看的家庭帳戶登入,否則不會顯示分級內容)

MVPD的呈現方式差異很大 — 家庭使用者ID、戶長ID、戶長旗標等。
戶長
表示目前帳戶是否為戶主的旗標
請參閱上文
型別ID /主要ID
家庭帳戶識別碼
AT&T戶主專用指標。

型別ID =識別使用者帳戶是否為主要/次要帳戶的旗標

主要OID =家庭識別碼。 如果TypeID是Primary,將包含userID的值
最大評分
目前帳戶的最大允許評等
可讓程式設計師篩選掉不適合帳戶的內容。

具有MPAA或VCHIP評等
頻道排列
使用者封裝中可用的管道清單
用於從彙總多個網路的入口網站快速允許/移除各種管道

請注意,預檢授權通常允許此使用案例更靈活,應該改用

OLCA規格允許將此作為AuthN回應中的AttributeStatement
HBA狀態
表示是否已透過HBA進行驗證
郵遞區號
使用者的帳單郵遞區號
用於廣播或體育賽事

也可提供AuthZ回應以快速更新

敏感資料,需要MVPD法律合約
加密的郵遞區號
使用者的帳單郵遞區號(Comcast)
如上所示,但由Comcast加密
語言
使用者語言設定
用於根據使用者的偏好設定顯示訊息
允許映象
指出此裝置是否允許熒幕映象

可用的中繼資料 available_metadata

下表列出Adobe Pass驗證生態系統中使用者中繼資料的目前狀態:

法律​

合約​

已簽署(僅限zip)
使用者ID ​

於AuthN
AuthN/Z ​上的Zipcode​
AuthN/Z ​** 上的​ ​評等​

**​
​** 家庭​**

ID於AuthN/Z
管道ID於AuthN
AuthN的戶長
AuthN ​上的型別ID
AuthN ​上的主要OID
語言
AuthN 的上游UserID
HBA狀態
OnNet
inHome
允許在AuthZ上映象
附註
正式名稱
不適用
userID
zip
maxRating
householdID
channelID
is_hoh
typeID
primaryOID
語言
上游使用者ID
hba狀態
onNet
inHome
allowMirroring
1.對於AuthN — 必須變更OiosamlMetadataParser,以便所有剖析器都啟用這個新屬性
2。 對於AuthZ — 沒有一般方法,因為授權實作是MVPD特定的
需要加密
不適用
敏感
不適用
Adobe識別碼
是(僅限AuthN)
是(僅限AuthN)
是(僅限AuthN)
不需要法律協定,可以啟用。
Synacor
是(僅限AuthN)
是(僅限AuthN)
是(僅限AuthN)
法律協定未涵蓋所有代理的MVPD。
這是對Synacor的一般支援 — 可能不會彙總到他們的所有MVPD。
碟子
是(僅限AuthN)
是(僅限AuthN)
是(僅限AuthN)
與所有Synacor MVPD共用相同的清單,加上upstreamUserID。
Comcast
是(僅限AuthZ)
是(僅限AuthZ)
AT&T
是(僅限AuthN)
是(僅限AuthN)
已簽署法律合約。
Cablevision
是(僅限AuthN)
已簽署法律合約。
HTC
Proxy Massilon
是(僅限AuthN)
是(僅限AuthN)
已簽署法律合約。
Proxy Clearleap
是(僅限AuthN)
是(僅限AuthZ)
已簽署法律合約。
羅傑斯
RCN
是(僅限AuthN)
是(僅限AuthN)
是(僅限AuthN)
憲章
是(僅限AuthN)
是(僅限AuthN)
是(僅限AuthN)
Verizon
是(僅限AuthN)
東連結
是(僅限AuthN)
是(僅限AuthN)
是(僅限AuthN)
Proxy GLDS
是(僅限AuthN)
DTV
是(僅限AuthN)
COX
是(僅限AuthN)
Cogeco
是(僅限AuthN)
是(僅限AuthN)
Videotron
是(僅限AuthN)
*
公開householdID與userID的值相同
頻譜
是(僅限AuthN)
是(僅限AuthN)
是(僅限AuthN)
所有其他​

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 (模擬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);
    }
recommendation-more-help
3f5e655c-af63-48cc-9769-2b6803cc5f4b