Metagegevens gebruiker user-metadata
Inleiding intro
De eigenschap van Meta-gegevens van de Gebruiker laat programmeurs toe om tot verschillende types van gebruiker-specifieke gegevens toegang te hebben die door MVPDs worden gehandhaafd. De meta-gegevenstypes van de gebruiker omvatten postcodes, ouderlijke classificaties, gebruiker - IDs, en meer. Gebruiker metagegevens vormen een uitbreiding van de eerder beschikbare static meta-gegevens (het teken van de Authentificatie TTL, het teken van de Vergunning TTL, en identiteitskaart van het Apparaat).
Belangrijke punten van metagegevens van gebruiker:
- Voldoet aan de aanvraag van de programmeur tijdens de verificatie- en machtigingsstromen
- Waarden worden opgeslagen in de token
- De waarden kunnen worden genormaliseerd als de verschillende MVPDs gegevens in verschillende formaten verstrekken
- Sommige parameters kunnen worden gecodeerd met de sleutel van de programmeur (bijvoorbeeld postcode)
- Specifieke waarden worden door de Adobe beschikbaar gesteld via een configuratiewijziging
Gebruikersmetagegevens verkrijgen obtaining
De meta-gegevens van de gebruiker zijn beschikbaar aan Programmeurs via AccessEnabler getMetadata()
en via de /usermetadata
in de Clientless API. Raadpleeg de API-documentatie van het platform voor meer informatie over het gebruik getMetadata()
en de bijbehorende callback setMetadataStatus()
(of voor de eindpunten en parameters die in Clientless API worden gebruikt).
Programmeurs krijgen meta-gegevens door een sleutel voor het type meta-gegevens te verstrekken zij willen verkrijgen: getMetadata(key)
.
De metagegevens worden als volgt geretourneerd: setMetadataStatus(key, encrypted, data)
:
key
encrypted
data
De structuur van de gegevensparameter, de waarden variëren tussen types:
zip
householdID
userID
maxRating
VCHIP: "X",
URL: "http://manage.my/parental" }
userID
userID
verschilt van householdID
.channelID
is_hoh
encryptedZip
typeID
primaryOID
typeID
is Primair, bevat de waarde van userID
Belangrijk: De daadwerkelijke Metagegevens van de Gebruiker beschikbaar aan een Programmer hangt van af wat MVPD ter beschikking stelt. Er moeten juridische overeenkomsten worden gesloten met MVPD's voordat gevoelige gebruikersmetagegevens (zoals zipcode) beschikbaar worden gesteld in de productieomgeving.
De hashing in deze zaak werd om historische redenen uitgevoerd
Deze id kan een ID voor een huishouden of een subaccount zijn. Dit wordt typisch niet gespecificeerd, is het enkel identiteitskaart verbonden aan login die op het ogenblik werd gebruikt (die primaire één of subaccount kan zijn)
De id kan ook beleid voor gelijktijdige bewaking bevatten
Voor de meeste MVPD's is deze waarde gelijk aan de gebruikersnaam
Het wordt soms gebruikt als Ouderlijke vervanger van Controles als de ware classificaties niet beschikbaar zijn (Als de gebruiker met de huisrekening werd het programma geopend kunnen zij letten op, anders verklaarde inhoud niet zou worden getoond)
Er is veel variatie tussen de MVPD's voor de manier waarop dit wordt vertegenwoordigd: huishoudelijke gebruikers-id, hoofd-id van het huishouden, hoofd van de huishoudelijke vlag enz.
Type ID = Markering die aangeeft of de gebruikersaccount een primaire/secundaire account is
Primaire OID = Huishoudelijke identificatiecode. Als TypeID Primair is, bevat deze de waarde van de gebruikersnaam
Heeft MPAA- of VCHIP-ratings
Houd er rekening mee dat Preflight-autorisatie over het algemeen flexibeler is voor deze toepassing en in plaats daarvan moet worden gebruikt
De specificatie OLCA staat voor dit als AttributeStatement in de reactie van AuthN toe
Kan ook de AuthZ-reactie voor snelle updates ontvangen
Gevoelige gegevens, vereist juridische overeenkomsten van de MVPD
Beschikbare metagegevens available_metadata
In de volgende tabel wordt de huidige status van metagegevens van gebruikers in het Adobe Pass-verificatiesysteem beschreven:
Overeenkomst
Ondertekend (alleen ZIP)
op AuthN
op AuthN/Z
op AuthN/Z
ID op AuthN/Z
userID
zip
maxRating
householdID
channelID
2. Voor AuthZ - Er is geen generische manier, omdat de vergunningsimplementatie MVPD-specifiek is
Dit is algemene steun voor Synacor - misschien niet opgebouwd tot al hun MVPDs.
MVPD's
Voor alle MVPD's is de gebruikersnaam beschikbaar zonder extra werk.
De lijst met gebruikermetagegevenstypen wordt uitgebreid wanneer nieuwe typen beschikbaar worden gemaakt en worden toegevoegd aan het Adobe Pass-verificatiesysteem.
Codevoorbeelden code_samples
Codevoorbeeld 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);
}
Codevoorbeeld 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);
}