Metadatos del usuario user-metadata
Introducción intro
La función de metadatos de usuario permite a los programadores acceder a diferentes tipos de datos específicos del usuario que mantienen las MVPD. Los tipos de metadatos de usuario incluyen códigos postales, clasificaciones parentales, ID de usuario y más. Usuario Los metadatos son una extensión de la variable disponible anteriormente. estático metadatos (TTL del token de autenticación, TTL del token de autorización e ID de dispositivo).
Puntos clave de metadatos de usuario:
- Pasado a la aplicación del programador durante los flujos de autenticación y autorización
- Los valores se guardan en el token
- Los valores se pueden normalizar si diferentes MVPD proporcionan datos en diferentes formatos
- Algunos parámetros se pueden cifrar con la clave del programador (por ejemplo, código postal)
- Los valores específicos están disponibles por Adobe, a través de un cambio de configuración
Obtención de metadatos de usuario obtaining
Los metadatos de usuario están disponibles para los programadores mediante AccessEnabler getMetadata()
y a través de la /usermetadata
en la API sin cliente. Consulte la documentación de la API de la plataforma para obtener más información sobre el uso de getMetadata()
y su llamada de retorno correspondiente setMetadataStatus()
(o para los puntos de conexión y parámetros utilizados en la API sin cliente).
Los programadores obtienen metadatos proporcionando una clave para el tipo de metadatos que desean obtener: getMetadata(key)
.
Los metadatos se devuelven de la siguiente manera: setMetadataStatus(key, encrypted, data)
:
key
encrypted
data
La estructura del parámetro de datos y los valores varían entre tipos:
zip
householdID
userID
maxRating
VCHIP: "X",
URL: "http://manage.my/parental" }
userID
userID
será diferente a householdID
.channelID
is_hoh
encryptedZip
typeID
primaryOID
typeID
es Principal, contendrá el valor del userID
Importante: Los metadatos de usuario reales disponibles para un programador dependen de lo que una MVPD ponga a disposición. Se deben firmar acuerdos legales con MVPD antes de que los metadatos confidenciales del usuario (como el código postal) estén disponibles en el entorno de producción.
El hash en este caso se realizó por motivos históricos
Este ID puede ser un ID doméstico o un ID de subcuenta. Normalmente no se especifica, solo es el ID vinculado al inicio de sesión que se utilizó en el momento (que puede ser uno principal o una subcuenta)
El ID también puede contener políticas de monitorización de concurrencia
Para la mayoría de las MVPD, este valor es igual al ID de usuario
A veces se utiliza como sustituto de Control parental si no hay clasificaciones verdaderas disponibles (si el usuario ha iniciado sesión con la cuenta del hogar que puede ver, de lo contrario, el contenido clasificado no se muestra)
Hay muchas variaciones entre las MVPD para la forma en que se representa: ID de usuario doméstico, ID de cabeza de familia, bandera de cabeza de familia, etc.
ID de tipo = indicador que identifica si la cuenta de usuario es la cuenta principal/secundaria
OID principal = Identificador del hogar. Si TypeID es Primary, contendrá el valor de userID
Tiene clasificaciones MPAA o VCHIP
Tenga en cuenta que la autorización de verificación previa generalmente permite una mayor flexibilidad para este caso de uso y debe usarse en su lugar
La especificación OLCA lo permite como AttributeStatement en la respuesta AuthN
También se puede proporcionar con la respuesta AuthZ para actualizaciones rápidas
Datos confidenciales, necesita acuerdos legales de MVPD
Metadatos disponibles available_metadata
La siguiente tabla muestra el estado actual de los metadatos de usuario en el ecosistema de autenticación de Adobe Pass:
Acuerdo
Firmado (solo zip)
en AuthN
en AuthN/Z
en AuthN/Z
ID en AuthN/Z
userID
zip
maxRating
householdID
channelID
2. Para AuthZ: no hay una forma genérica, ya que la implementación de autorización es específica de MVPD
Se trata de una compatibilidad genérica con Synacor; posiblemente no se acumule en todas sus MVPD.
MVPD
Para todas las MVPD, el ID de usuario está disponible sin trabajo adicional.
La lista de tipos de metadatos de usuario se ampliará a medida que haya nuevos tipos disponibles y añadidos al sistema de autenticación de Adobe Pass.
Ejemplos de código code_samples
Ejemplo de código 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);
}
Ejemplo de código 2 (simulación de 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);
}