Benutzermetadaten user-metadata
Einführung intro
Mit der Funktion "Benutzermetadaten"können Programmierer auf verschiedene Arten benutzerspezifischer Daten zugreifen, die von MVPDs gepflegt werden. Zu den Metadatentypen für Benutzer gehören Postleitzahlen, elterliche Bewertungen, Benutzer-IDs und mehr. Benutzer Metadaten sind eine Erweiterung der zuvor verfügbaren statisch Metadaten (TTL des Authentifizierungstokens, TTL des Autorisierungstokens und Geräte-ID).
Wichtige Punkte zu Benutzermetadaten:
- Wird während der Authentifizierungs- und Autorisierungsflüsse an die Anwendung des Programmierers übergeben
- Werte werden im Token gespeichert
- Werte können normalisiert werden, wenn verschiedene MVPDs Daten in verschiedenen Formaten bereitstellen
- Einige Parameter können mit dem Schlüssel des Programmierers verschlüsselt werden (z. B. Postleitzahl)
- Spezifische Werte werden durch Adobe über eine Konfigurationsänderung bereitgestellt
Abrufen von Benutzermetadaten obtaining
Benutzermetadaten stehen Programmierern über AccessEnabler zur Verfügung getMetadata()
und über die /usermetadata
-Endpunkt in der clientless-API. Weitere Informationen zur Verwendung von finden Sie in der Dokumentation zur Plattform-API . getMetadata()
und den zugehörigen Callback setMetadataStatus()
(oder für die Endpunkte und Parameter, die in der clientless-API verwendet werden).
Programmierer erhalten Metadaten, indem sie einen Schlüssel für den Metadatentyp bereitstellen, den sie abrufen möchten: getMetadata(key)
.
Die Metadaten werden wie folgt zurückgegeben: setMetadataStatus(key, encrypted, data)
:
key
encrypted
data
Die Struktur des Datenparameters und die Werte variieren zwischen den Typen:
zip
householdID
userID
maxRating
VCHIP: "X",
URL: "http://manage.my/parental" }
userID
userID
unterscheidet sich householdID
.channelID
is_hoh
encryptedZip
typeID
primaryOID
typeID
ist Primär, enthält den Wert der userID
Wichtig: Die tatsächlichen Benutzermetadaten, die einem Programmierer zur Verfügung stehen, hängen davon ab, was ein MVPD zur Verfügung stellt. Rechtliche Vereinbarungen müssen mit MVPDs unterzeichnet werden, bevor sensible Benutzermetadaten (wie Postleitzahl) in der Produktionsumgebung verfügbar gemacht werden.
Das Hashing in diesem Fall erfolgte aus historischen Gründen
Diese ID kann eine Haushalts-ID oder eine Unterkonto-ID sein. Dies ist normalerweise nicht angegeben, sondern nur die Kennung, die an die damals verwendete Anmeldung gebunden war (bei der es sich um ein primäres Konto oder ein Unterkonto handeln kann).
Die ID kann auch Überwachungsrichtlinien für gleichzeitige Sitzungen enthalten.
Bei den meisten MVPDs entspricht dieser Wert der Benutzer-ID
Es wird manchmal als Ersatz für die elterliche Steuerung verwendet, wenn keine echten Bewertungen verfügbar sind (wenn der Benutzer mit dem Haushaltskonto angemeldet war, das er ansehen kann, würde andernfalls kein bewerteter Inhalt angezeigt werden)
Es gibt viele Unterschiede zwischen den MVPDs, wie dies dargestellt wird - Haushalts-Benutzer-ID, Leiter der Haushalts-ID, Leiter der Haushaltsflagge usw.
Typ-ID = Flag, das angibt, ob das Benutzerkonto ein primäres/sekundäres Konto ist
Primäre OID = Haushaltskennung. Wenn TypeID Primär ist, enthält den Wert der userID
Hat MPA- oder VCHIP-Bewertungen
Bitte beachten Sie, dass die Vorabgenehmigung im Allgemeinen mehr Flexibilität für diesen Anwendungsfall ermöglicht und stattdessen verwendet werden sollte.
Die OLCA-Spezifikation ermöglicht dies als AttributeStatement in der AuthN-Antwort
Kann auch mit der AuthZ-Antwort für schnelle Updates bereitgestellt werden
Sensible Daten, MVPD-Rechtsvereinbarungen erforderlich
Verfügbare Metadaten available_metadata
In der folgenden Tabelle wird der aktuelle Status der Benutzermetadaten im Ökosystem "Adobe Pass-Authentifizierung"beschrieben:
Abkommen
Unterschrieben (nur zip)
on AuthN
auf AuthN/Z
auf AuthN/Z
ID auf AuthN/Z
userID
zip
maxRating
householdID
channelID
2. Für AuthZ - Es gibt keine generische Methode, da die Autorisierungsimplementierung MVPD-spezifisch ist.
Dies ist allgemeine Unterstützung für Synacor - möglicherweise nicht für alle MVPDs.
MVPDs
Für alle MVPDs ist die Benutzer-ID ohne zusätzliche Arbeit verfügbar.
Die Liste der Benutzer-Metadatentypen wird erweitert, sobald neue Typen verfügbar gemacht und zum Adobe Pass-Authentifizierungssystem hinzugefügt werden.
Codebeispiele code_samples
Codebeispiel 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);
}
Codebeispiel 2 (nachahmen von 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);
}