Lista de verificação da REST API V2 rest-api-v2-checklist
- Tópicos:
- Authentication
Este documento agrega em um local os requisitos obrigatórios e as práticas recomendadas para programadores que implementam aplicativos clientes que consomem a API REST V2 da Autenticação do Adobe Pass.
O documento a seguir deve ser considerado parte de seus critérios de aceitação ao implementar a REST API V2 e deve ser usado como uma lista de verificação para garantir que todas as etapas necessárias tenham sido tomadas para obter uma integração bem-sucedida.
Requisitos obrigatórios mandatory-requirements
1. Fase de registro mandatory-requirements-registration-phase
Não solicite um novo token para cada chamada REST API v2. Atualize os tokens de acesso somente quando eles expirarem.
2. Fase de configuração mandatory-requirements-configuration-phase
Recupere a resposta de configuração somente quando for necessário solicitar que o usuário selecione o MVPD (provedor de TV) antes da Fase de autenticação.
Não há necessidade de recuperar a resposta da configuração quando:
- O usuário já está autenticado.
- O usuário recebe acesso temporário.
- A autenticação do usuário expirou, mas o usuário pode ser solicitado a confirmar que ainda é assinante do MVPD selecionado anteriormente.
Armazene a seleção do provedor de TV por assinatura (MVPD) do usuário no armazenamento persistente para usá-la em todas as fases subsequentes:
- No armazenamento de resposta de configuração, o usuário selecionou MVPD "id".
- No armazenamento de resposta de configuração, o usuário selecionou "displayName" do MVPD.
- No armazenamento de resposta de configuração, o usuário selecionou "logoUrl" do MVPD.
3. Fase de autenticação mandatory-requirements-authentication-phase
Inicie o mecanismo de sondagem sob as seguintes condições:
Autenticação executada no aplicativo (tela) primário
- O aplicativo principal (streaming) deve iniciar o polling quando o usuário atingir a página de destino final, depois que o componente do navegador carregar o URL especificado para o parâmetro "redirectUrl" na solicitação de ponto de extremidade de sessões.
Autenticação executada em um aplicativo secundário (tela)
- O aplicativo principal (transmissão) deve iniciar o polling assim que o usuário iniciar o processo de autenticação, logo após receber a resposta do endpoint de sessões e exibir o código de autenticação ao usuário.
Pare o mecanismo de sondagem sob as seguintes condições:
Autenticação bem-sucedida
- As informações de perfil do usuário foram recuperadas com êxito, confirmando o status de autenticação. Portanto, a sondagem não é mais necessária.
Sessão de autenticação e expiração do código
- A sessão de autenticação e o código expiram, o usuário deve reiniciar o processo de autenticação e a pesquisa usando o código de autenticação anterior deve ser interrompida imediatamente.
Novo código de autenticação gerado
- Se o usuário solicitar um novo código de autenticação, a sessão existente será invalidada e a pesquisa usando o código de autenticação anterior deverá ser interrompida imediatamente.
Configure a frequência do mecanismo de sondagem nas seguintes condições:
Autenticação executada no aplicativo (tela) primário
- O aplicativo principal (transmissão) deve pesquisar a cada 3-5 segundos ou mais.
Autenticação executada em um aplicativo secundário (tela)
- O aplicativo principal (transmissão) deve pesquisar a cada 3-5 segundos.
Armazene partes das informações de perfil do usuário no armazenamento persistente para melhorar o desempenho e minimizar chamadas desnecessárias da API REST v2.
O armazenamento em cache deve se concentrar nos seguintes campos de resposta de perfis:
mvpd
- O aplicativo cliente pode usá-lo para rastrear o provedor de TV selecionado pelo usuário e continuar a usá-lo durante as Fases de Pré-autorização ou Autorização.
- Quando o perfil de usuário atual expira, o aplicativo cliente pode usar a seleção MVPD lembrada e solicitar a confirmação do usuário.
atributos
- Usado para personalizar a experiência do usuário com base em diferentes chaves de metadados de usuário (por exemplo, zip, maxRating etc.).
- Os metadados do usuário ficam disponíveis após a conclusão do fluxo de autenticação, portanto, o aplicativo cliente não precisa consultar um endpoint separado para recuperar as informações de metadados do usuário, pois já estão incluídas nas informações do perfil.
- Determinados atributos de metadados podem ser atualizados durante a fase de autorização, dependendo da MVPD (por exemplo, Estatuto) e do atributo de metadados específico (por exemplo, householdID). Como resultado, o aplicativo cliente pode precisar consultar as APIs de perfis novamente após a autorização para recuperar os metadados do usuário mais recentes.
4. (Opcional) Fase de pré-autorização mandatory-requirements-preauthorization-phase
Riscos ao ignorar nossos sistemas de monitoramento e alerta.
Somente um número limitado de códigos de erro aprimorados garante uma nova tentativa, enquanto a maioria requer resoluções alternativas, conforme especificado no campo de ação.
Verifique se qualquer mecanismo de repetição implementado para recuperar decisões de pré-autorização não resulta em um loop infinito e se ele limita as tentativas a um número razoável (ou seja, 2-3).
5. Fase de autorização mandatory-requirements-authorization-phase
Permitir que os fluxos continuem sem interrupções mesmo que o token de mídia expire durante a reprodução e solicite uma nova decisão de autorização contendo um token de mídia (novo) quando o usuário fizer sua próxima solicitação de reprodução, independentemente de ser para o mesmo recurso ou para um diferente.
Os fluxos ao vivo executados por longos períodos podem optar por solicitar uma nova decisão de autorização após operações de vídeo, como pausar conteúdo, iniciar interrupções comerciais ou modificar configurações no nível do ativo quando o MRSS for alterado.
Riscos ao ignorar nossos sistemas de monitoramento e alerta.
Somente um número limitado de códigos de erro aprimorados garante uma nova tentativa, enquanto a maioria requer resoluções alternativas, conforme especificado no campo de ação.
Certifique-se de que qualquer mecanismo de repetição implementado para recuperar decisões de autorização não resulte em um loop infinito e que limite as tentativas a um número razoável (ou seja, 2-3).
6. Fase de saída mandatory-requirements-logout-phase
Implemente a API de logout para permitir que os usuários desconectem manualmente, encerrando seus perfis autenticados e seguindo o nome de ação da API REST v2 especificado para cada perfil removido:
- Para MVPDs que oferecem suporte a um endpoint de logout, o aplicativo cliente requer a navegação até o "url" fornecido em um user-agent.
- Para perfis do tipo "appleSSO", o aplicativo cliente exige que o oriente o usuário para também fazer logoff do nível do parceiro (configurações do sistema da Apple).
7. Parâmetros e cabeçalhos mandatory-requirements-parameters-headers
Mesmo quando a solicitação é originada de um servidor em nome de um dispositivo, o valor do cabeçalho AP-Device-Identifier deve refletir o identificador real do dispositivo de streaming.
Mesmo quando a solicitação se origina de um servidor em nome de um dispositivo, o valor do cabeçalho X-Device-Info deve refletir as informações reais do dispositivo de streaming.
Além disso, alguns campos, como o dispositivo de streaming connectionIp e connectionPort, são obrigatórios para recursos como Autenticação da Base Inicial do Spectrum.
Para plataformas sem um identificador de hardware, gere um identificador exclusivo a partir dos atributos do aplicativo e mantenha-o.
8. Tratamento de erros mandatory-requirements-error-handling
Somente um número limitado de códigos de erro aprimorados garante uma nova tentativa, enquanto a maioria requer resoluções alternativas, conforme especificado no campo de ação.
A maioria dos códigos de erro aprimorados listados na documentação Códigos de Erro Aprimorados - REST API V2 pode ser totalmente evitada se manipulada corretamente durante a fase de desenvolvimento, antes de iniciar o aplicativo.
Há risco de mau funcionamento do aplicativo cliente devido à falta de tratamento dos códigos de erro aprimorados, causando mensagens de erro não claras, orientação incorreta do usuário ou comportamento de fallback incorreto.
Somente um número limitado de códigos de erro HTTP garante uma nova tentativa, enquanto a maioria requer resoluções alternativas.
A maioria das respostas de erro HTTP pode ser totalmente evitada se manipulada corretamente durante a fase de desenvolvimento antes da inicialização do aplicativo.
Há risco de mau funcionamento do aplicativo cliente devido à falta de tratamento dos códigos de erro aprimorados, causando mensagens de erro não claras, orientação incorreta do usuário ou comportamento de fallback incorreto.
9. Ensaios mandatory-requirements-testing
Desenvolva e teste o aplicativo usando os ambientes oficiais de não produção de Autenticação do Adobe Pass:
- Pré-produção
- Estágios de lançamento
Execute controle de qualidade (QA) completo nesses ambientes antes de iniciar a produção da versão.
Os aplicativos cliente não devem prosseguir para a Produção de Versão sem antes concluir a validação completa em ambientes que não sejam de produção.
A falta de um caminho de depuração curto e eficiente pode impedir que o Suporte e a Engenharia da Adobe intervenham rapidamente.
Práticas recomendadas recommended-practices
1. Fase de registro recommended-practices-registration-phase
Verifique se qualquer mecanismo de repetição para manipular erros "Não autorizados" do HTTP 401 atualiza primeiro o token de acesso antes de repetir a solicitação original.
2. Fase de configuração recommended-practices-configuration-phase
3. Fase de autenticação recommended-practices-authentication-phase
Valide o código de autenticação enviado por meio da entrada do usuário no aplicativo secundário (segunda) (tela) antes de chamar a API /api/v2/authenticate nas seguintes condições:
Autenticação executada no aplicativo secundário (tela) com mvpd pré-selecionado
- Use Retomar sessão de autenticação - POST /api/v2/{serviceProvider}/sessions/{code}
Autenticação executada no aplicativo secundário (tela) sem mvpd pré-selecionado
- Use Recuperar sessão de autenticação - GET /api/v2/{serviceProvider}/sessions/{code}
O aplicativo cliente receberia um erro se o código de autenticação fornecido fosse digitado incorretamente ou caso a sessão de autenticação expirasse.
Suporte a fluxos não básicos, caso o negócio de aplicativos clientes exija:
- Fluxos de acesso degradados (recurso premium)
- Fluxos de acesso temporário (recurso premium)
- Fluxos de acesso de logon único (recurso padrão)
4. (Opcional) Fase de pré-autorização recommended-practices-preauthorization-phase
5. Fase de autorização recommended-practices-authorization-phase
6. Fase de saída recommended-practices-logout-phase
7. Parâmetros e cabeçalhos recommended-practices-parameters-headers
Reutilize o código da API REST v1 para chamar a API DCR e recuperar um token de acesso.
8. Ensaios recommended-practices-testing
Verifique se os seguintes fluxos básicos foram testados em dispositivos e plataformas:
Fluxos de autenticação
- Cenário de autenticação do aplicativo primário (tela)
- Cenário de autenticação de aplicativo secundário (tela)
(Opcional) Fluxos de pré-autorização
- Cenário de decisões de licenciamento de teste
- Testar cenário de decisões de negação
Fluxos de autorização
- Cenário de decisões de licenciamento de teste
- Testar cenário de decisões de negação
Fluxos de logout
Além disso, teste outros fluxos de acesso, se aplicável:
- Fluxos de acesso degradados (recurso premium)
- Fluxos de acesso temporário (recurso premium)
- Fluxos de acesso de logon único (recurso padrão)
Aborde as principais integrações do MVPD (abrangendo os provedores mais usados).
Resumo summary
Tokens de acesso em cache
partes do cache de perfis
Recurso de Degradação de Suporte (se necessário ao negócio)
Recurso TempPass Suporte (se necessário ao negócio)
Recurso de Logon Único Suporte (se necessário ao negócio)
Repetir ajuste do mecanismo
Repetir ajuste do mecanismo
Validação de token de mídia
Implementar tratamento de erros HTTP