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. Los metadatos de Usuario son una extensión de los metadatos de static disponibles anteriormente (TTL de token de autenticación, TTL de 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); consulte Certificado de metadatos de usuario para cifrado para la generación de certificados de cifrado
- 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 a través de la función AccessEnabler getMetadata()
y del extremo /usermetadata
en la API sin cliente. Consulte la documentación de la API de plataforma para obtener más información sobre el uso de getMetadata()
y su llamada de retorno correspondiente setMetadataStatus()
(o para los extremos y parámetros utilizados en la API sin cliente).
Los programadores obtienen metadatos al proporcionar 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 de 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 podría 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 supervisión de concurrencia
Para la mayoría de las MVPD, este valor es igual al ID de usuario
A veces se usa como sustituto de Control parental si las clasificaciones verdaderas no están disponibles (si el usuario inició sesión con la cuenta del hogar que puede ver, de lo contrario, el contenido clasificado no se mostraría)
Hay muchas variaciones entre las MVPD para la manera en que se representa: ID de usuario del hogar, ID del jefe de hogar, indicador del jefe de hogar, 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 comprobación preliminar 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:
Legal
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
Es compatibilidad genérica con Synacor; posiblemente no se acumule en todas sus MVPD.
MVPD
Para todas las MVPD, el identificador 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);
}