Metadados do usuário user-metadata
Introdução intro
O recurso de metadados do usuário permite que os programadores acessem diferentes tipos de dados específicos do usuário mantidos por MVPDs. Os tipos de metadados do usuário incluem códigos postais, classificações dos pais, IDs de usuário e muito mais. Os metadados do Usuário são uma extensão dos metadados estáticos disponíveis anteriormente (TTL de token de autenticação, TTL de token de autorização e ID de dispositivo).
Pontos principais dos metadados do usuário:
- Transmitido para o aplicativo do Programador durante os fluxos de autenticação e autorização
- Os valores são salvos no token
- Os valores podem ser normalizados se diferentes MVPDs fornecerem dados em diferentes formatos
- Alguns parâmetros podem ser criptografados usando a chave do Programador (por exemplo, CEP). Consulte Certificado de Metadados de Usuário para criptografia para geração de certificado de criptografia
- Valores específicos são disponibilizados por Adobe, por meio de uma alteração de configuração
Obter metadados do usuário obtaining
Os metadados do usuário estão disponíveis para programadores por meio da função getMetadata()
do AccessEnabler e pelo ponto de extremidade /usermetadata
na API sem cliente. Consulte a documentação da API da plataforma para obter detalhes sobre o uso de getMetadata()
e seu retorno de chamada correspondente setMetadataStatus()
(ou para os pontos de extremidade e parâmetros usados na API sem cliente).
Os programadores obtêm metadados fornecendo uma chave para o tipo de metadados que desejam obter: getMetadata(key)
.
Os metadados são retornados da seguinte maneira: setMetadataStatus(key, encrypted, data)
:
key
encrypted
data
A estrutura do parâmetro de dados, os valores variam entre os tipos:
zip
householdID
userID
maxRating
VCHIP: "X",
URL: "http://manage.my/parental" }
userID
userID
será diferente de householdID
.channelID
is_hoh
encryptedZip
typeID
primaryOID
typeID
for Primário, conterá o valor de userID
Importante: os Metadados de Usuário reais disponíveis para um Programador dependem do que um MVPD disponibiliza. Os contratos legais devem ser assinados com os MVPDs antes que os metadados confidenciais do usuário (como código postal) sejam disponibilizados no ambiente de produção.
O hash neste caso foi feito por motivos históricos
Esta ID pode ser uma ID doméstica ou uma ID de subconta. Normalmente, isso não é especificado. Apenas a ID vinculada ao logon que foi usada no momento (que pode ser principal ou subconta)
A ID também pode conter políticas de monitoramento de simultaneidade
Para a maioria dos MVPDs, esse valor é igual à ID do Usuário
Às vezes, ele é usado como substituto dos Controles dos pais se as classificações verdadeiras não estiverem disponíveis (se o usuário tiver feito logon com a conta da família que pode assistir, caso contrário o conteúdo classificado não será exibido)
Há muita variação entre os MVPDs sobre como isso é representado - ID de usuário da família, ID do chefe de família, sinalizador do chefe de família, etc.
ID de Tipo = Sinalizador que identifica se a conta do usuário é conta primária/secundária
OID Primária = Identificador da família. Se TypeID for Primário, conterá o valor da userID
Tem classificações de MPAA ou VCHIP
Observe que a autorização de comprovação geralmente oferece mais flexibilidade para este caso de uso e deve ser usada em seu lugar
A especificação OLCA permite isso como uma AttributeStatement na resposta AuthN
Também pode ser fornecido com a resposta AuthZ para atualizações rápidas
Dados confidenciais, precisa de contratos legais MVPD
Metadados disponíveis available_metadata
A tabela a seguir apresenta o estado atual dos metadados do usuário no ecossistema de autenticação da Adobe Pass:
Contrato
Assinado (somente zip)
em AuthN
em AuthN/Z
em AuthN/Z
ID na AuthN/Z
userID
zip
maxRating
householdID
channelID
2. Para AuthZ - Não há uma forma genérica, pois a implementação de autorização é específica do MVPD
Este é um suporte genérico para o Synacor - possivelmente não agrupado em todos os MVPDs.
MVPDs
Para todos os MVPDs, a ID de Usuário está disponível sem trabalho extra.
A lista de tipos de metadados do usuário será expandida à medida que novos tipos forem disponibilizados e adicionados ao sistema de autenticação da Adobe Pass.
Amostras de código code_samples
Amostra 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);
}
Amostra de código 2 (getMetadata fictício) 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);
}