Metadati utente user-metadata
Introduzione intro
La funzione User Metadata consente ai programmatori di accedere a diversi tipi di dati specifici dell'utente gestiti da MVPD. I tipi di metadati utente includono codici postali, valutazioni dei genitori, ID utente e altro ancora. I metadati Utente sono un'estensione dei metadati statici precedentemente disponibili (TTL del token di autenticazione, TTL del token di autorizzazione e ID dispositivo).
Punti chiave metadati utente:
- Trasmesso all’applicazione del programmatore durante i flussi di autenticazione e autorizzazione
- I valori vengono salvati nel token
- I valori possono essere normalizzati se diversi MVPD forniscono dati in formati diversi
- Alcuni parametri possono essere crittografati utilizzando la chiave del programmatore (ad esempio il codice postale). Vedere Certificato metadati utente per la crittografia per la generazione del certificato di crittografia
- Valori specifici sono resi disponibili da Adobe tramite una modifica alla configurazione
Ottenimento dei metadati utente obtaining
I metadati utente sono disponibili per i programmatori tramite la funzione AccessEnabler getMetadata()
e tramite l'endpoint /usermetadata
nell'API senza client. Fare riferimento alla documentazione dell'API della piattaforma per informazioni dettagliate sull'utilizzo di getMetadata()
e del relativo callback setMetadataStatus()
(o per gli endpoint e i parametri utilizzati nell'API senza client).
I programmatori ottengono i metadati fornendo una chiave per il tipo di metadati che desiderano ottenere: getMetadata(key)
.
I metadati vengono restituiti come segue: setMetadataStatus(key, encrypted, data)
:
key
encrypted
data
La struttura del parametro dati, i valori variano tra i tipi:
zip
householdID
userID
maxRating
VCHIP: "X",
URL: "http://manage.my/parental" }
userID
userID
sarà diverso da householdID
.channelID
is_hoh
encryptedZip
typeID
primaryOID
typeID
è primario, conterrà il valore di userID
Importante: i metadati utente effettivi disponibili per un programmatore dipendono da ciò che un MVPD rende disponibile. Prima di rendere disponibili nell'ambiente di produzione i metadati sensibili degli utenti (come zipcode), è necessario firmare accordi legali con gli MVPD.
L'hashing in questo caso è stato eseguito per motivi storici
Questo ID potrebbe essere un ID famiglia o un ID account secondario. Generalmente non è specificato, ma è solo l’ID associato all’accesso utilizzato in quel momento (che può essere un account principale o secondario)
L'ID può contenere anche criteri di monitoraggio della concorrenza
Per la maggior parte degli MVPD questo valore è uguale all'ID utente
A volte viene utilizzato come sostituto del Controllo genitori se non sono disponibili valutazioni vere (se l'utente ha effettuato l'accesso con l'account della famiglia che può guardare, altrimenti il contenuto classificato non verrebbe visualizzato)
C'è molta variazione tra i MVPD per quanto riguarda la rappresentazione: ID utente della famiglia, ID responsabile della famiglia, intestazione della bandiera della famiglia, ecc.
ID tipo = Flag che identifica se l'account utente è primario/secondario
OID primario = Identificatore famiglia. Se TypeID è Primary, conterrà il valore di userID
Ha valutazioni MPAA o VCHIP
Si noti che l'autorizzazione di verifica preliminare consente in genere una maggiore flessibilità per questo caso d'uso e deve essere utilizzata in alternativa
La specifica OLCA consente questa impostazione come AttributeStatement nella risposta AuthN
Può essere fornito anche con la risposta AuthZ per aggiornamenti rapidi
Dati sensibili, richiede accordi legali MVPD
Metadati disponibili available_metadata
La tabella seguente illustra lo stato corrente dei metadati dell’utente nell’ecosistema di autenticazione di Adobe Pass:
Contratto
Firmato (solo CAP)
su AuthN
su AuthN/Z
su AuthN/Z
ID su AuthN/Z
userID
zip
maxRating
householdID
channelID
2. Per AuthZ: non esiste una modalità generica, perché l’implementazione dell’autorizzazione è specifica per MVPD
Questo è un supporto generico per Synacor, che probabilmente non include tutti i relativi MVPD.
MVPD
Per tutti gli MVPD, l'ID utente è disponibile senza lavoro aggiuntivo.
L’elenco dei tipi di metadati utente verrà espanso man mano che nuovi tipi saranno disponibili e aggiunti al sistema di autenticazione di Adobe Pass.
Esempi di codice code_samples
Esempio di codice 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);
}
Esempio di codice 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);
}