Métadonnées utilisateur user-metadata
Introduction intro
La fonction Métadonnées utilisateur permet aux programmeurs d’accéder à différents types de données spécifiques à l’utilisateur gérées par les MVPD. Les types de métadonnées utilisateur incluent des codes postaux, des évaluations parentales, des ID utilisateur, etc. Les métadonnées User sont une extension des métadonnées static disponibles précédemment (jeton d’authentification TTL, jeton d’autorisation TTL et ID d’appareil).
Points clés des métadonnées utilisateur :
- Transmis à l’application du programmeur pendant les flux d’authentification et d’autorisation
- Les valeurs sont enregistrées dans le jeton
- Les valeurs peuvent être normalisées si différents MVPD fournissent des données dans différents formats.
- Certains paramètres peuvent être chiffrés à l’aide de la clé du programmeur (par exemple, le code postal). Voir Certificat de métadonnées utilisateur pour le chiffrement pour la génération du certificat de chiffrement.
- Des valeurs spécifiques sont disponibles par Adobe, via un changement de configuration.
Obtention des métadonnées utilisateur obtaining
Les métadonnées utilisateur sont disponibles pour les programmeurs via la fonction AccessEnabler getMetadata()
et via le point d’entrée /usermetadata
de l’API sans client. Pour plus d’informations sur l’utilisation de getMetadata()
et de son rappel correspondant setMetadataStatus()
, reportez-vous à la documentation de l’API de plateforme (ou pour les points de terminaison et paramètres utilisés dans l’API sans client).
Les programmeurs obtiennent des métadonnées en fournissant une clé pour le type de métadonnées qu’ils souhaitent obtenir : getMetadata(key)
.
Les métadonnées sont renvoyées comme suit : setMetadataStatus(key, encrypted, data)
:
key
encrypted
data
La structure du paramètre de données, les valeurs varient selon les types :
zip
householdID
userID
maxRating
VCHIP: "X",
URL: "http://manage.my/parental" }
userID
userID
sera différent de householdID
.channelID
is_hoh
encryptedZip
typeID
primaryOID
typeID
est Principal, contient la valeur de la propriété userID
Important : Les métadonnées utilisateur réelles disponibles pour un programmeur dépendent de ce qu’un MVPD rend disponible. Les conventions légales doivent être signées avec les MVPD pour que les métadonnées utilisateur sensibles (comme le code postal) soient mises à disposition dans l’environnement de production.
Dans ce cas, le hachage a été effectué pour des raisons historiques.
Cet identifiant peut être un identifiant de foyer ou un identifiant de sous-compte. Cela n’est généralement pas spécifié, il s’agit simplement de l’identifiant associé à la connexion qui était utilisé à l’époque (qui peut être un compte principal ou secondaire).
L’ID peut également contenir des stratégies de surveillance de simultanéité
Pour la plupart des MVPD, cette valeur est égale à l’ID utilisateur
Il est parfois utilisé comme substitut des contrôles parentaux si de vrais évaluations ne sont pas disponibles (si l’utilisateur a été connecté avec le compte du foyer qu’il peut regarder, sinon le contenu noté ne s’affiche pas)
Il y a beaucoup de variations entre les distributeurs multicanaux de programmes de développement de contenu pour la manière dont cela est représenté : identifiant utilisateur, identifiant du foyer, drapeau du chef de foyer, etc.
ID de type = Indicateur qui identifie si le compte utilisateur est un compte principal/secondaire
OID de Principal = Identifiant du foyer. Si TypeID est Principal, contient la valeur de userID.
Comporte des évaluations MPAA ou VCHIP
Notez que l’autorisation de contrôle en amont offre généralement plus de flexibilité pour ce cas d’utilisation et doit être utilisée à la place.
La spécification OLCA permet cela en tant qu’AttributeStatement dans la réponse AuthN.
Peut également être fourni avec la réponse AuthZ pour les mises à jour rapides
Données sensibles, nécessite des accords juridiques MVPD
Métadonnées disponibles available_metadata
Le tableau suivant présente l’état actuel des métadonnées utilisateur dans l’écosystème d’authentification Adobe Pass :
Agreement
Signed (zip uniquement)
sur AuthN
sur AuthN/Z
sur AuthN/Z
ID sur AuthN/Z
userID
zip
maxRating
householdID
channelID
2. Pour AuthZ : il n’existe pas de méthode générique, car l’implémentation des autorisations est spécifique au MVPD.
Il s’agit d’une prise en charge générique de Synacor, qui peut ne pas être cumulée à tous les MVPD.
MVPD
Pour tous les MVPD, l’ID utilisateur est disponible sans travail supplémentaire.
La liste des types de métadonnées utilisateur sera étendue à mesure que de nouveaux types seront disponibles et ajoutés au système d’authentification Adobe Pass.
Exemples de code code_samples
Exemple de code 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);
}
Exemple de code 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);
}