(Herdado) Guia de SSO do Apple (iOS/tvOS SDK) apple-sso-cookbook-iostvos-sdk
O Adobe Pass Authentication AccessEnabler iOS/tvOS SDK é compatível com o Partner Single Sign-On (SSO) para usuários finais de aplicativos clientes em execução no iOS, iPadOS ou tvOS.
Este documento atua como uma extensão para a documentação existente do AccessEnabler iOS/tvOS SDK, que pode ser encontrada aqui.
Guia apple-sso-cookbook-iostvos-sdk-cookbook
Para se beneficiar da experiência do usuário do Apple SSO, o aplicativo precisa integrar o AccessEnabler iOS/tvOS SDK e seguir a sequência de etapas apresentada abaixo.
Pré-requisitos apple-sso-cookbook-iostvos-sdk-prerequisites
Permissão apple-sso-cookbook-iostvos-sdk-permission
Settings -> TV Provider
no iOS e iPadOS ou Settings -> Accounts -> TV Provider
no tvOS. ...
let videoSubscriberAccountManager: VSAccountManager = VSAccountManager();
videoSubscriberAccountManager.checkAccessStatus(options: [VSCheckAccessOption.prompt: true]) { (accessStatus, error) -> Void in
switch (accessStatus) {
// The user allows the application to access subscription information.
case VSAccountAccessStatus.granted:
// Do nothing.
// The user has not yet made a choice or does not allow the application to access subscription information.
default:
// Incentivize users who refuse to give permission to access subscription information by explaining the benefits of the Single Sign-On (SSO) user experience. Please bear in mind that the user can change its decision by going to the application settings (TV Provider permission access) or to the section from Settings -> TV Provider on iOS/iPadOS or Settings -> Accounts -> TV Provider on tvOS.
...
}
}
...
Retornos de chamada apple-sso-cookbook-iostvos-sdk-callbacks
- presentTVProviderDialog - Retorno de chamada disparado quando o seletor de MVPD do Apple vai abrir.
- dismissTVProviderDialog - Retorno de chamada disparado quando o seletor de MVPD do Apple vai fechar.
Relatório de erros apple-sso-cookbook-iostvos-sdk-error-reporting
- N003 - O usuário selecionou a opção "Outro Provedor de TV" no seletor de MVPD do Apple.
- N004 - O usuário selecionou um Provedor de TV no seletor de MVPD do Apple, para o qual não há suporte (integração ou Logon Único desabilitado) pelo solicitante atual.
- N005 - O usuário optou por cancelar o seletor de MVPD comum ou o seletor de Apple MVPD.
- VSA403 - Permissão de Provedor de TV do usuário negada para o aplicativo.
- VSA404 - A permissão Provedor de TV do usuário não foi determinada para o aplicativo.
- VSA503 - Falha na solicitação de metadados da Conta do Assinante do Vídeo. Mais contexto é fornecido no campo message.
- AAPL / APPL_ERROR - A solicitação de metadados da Conta do Assinante do Vídeo falhou, mais contexto é fornecido no campo details.
Autenticação apple-sso-cookbook-iostvos-sdk-authentication
-
O aplicativo teria que inicializar o AccessEnabler iOS/tvOS SDK.
-
O aplicativo teria que definir o identificador do solicitante atual.
Importante: esta segunda etapa pode disparar um código de erro avançado que é específico para o fluxo de trabalho SSO do Apple, no caso de uma das seguintes opções ser verdadeira:
- VSA403 - Permissão de Provedor de TV do usuário negada para o aplicativo.
- VSA404 - A permissão Provedor de TV do usuário não foi determinada para o aplicativo.
- APPL - A comunicação entre o AccessEnabler iOS/tvOS SDK e a Estrutura de Conta de Assinante de Vídeo encontrou um erro.
Esta segunda etapa tentaria trocar silenciosamente o perfil de SSO do Apple por um token de autenticação Adobe, caso todas as opções acima sejam falsas e todas as opções a seguir sejam verdadeiras:
- A permissão Provedor de TV do usuário é concedida para o aplicativo.
- O usuário está conectado à sua conta do Provedor de TV no nível do sistema do dispositivo.
- O AccessEnabler iOS/tvOS SDK recebeu o identificador de Provedor de TV do usuário da Estrutura de conta do assinante de vídeo.
- A integração do Provedor de TV do usuário com o aplicativo é habilitada por meio do Painel do Adobe Primetime TVE.
- O Logon único do provedor de TV do usuário com o aplicativo é ativado por meio do painel do Adobe Primetime TVE.
- O provedor de TV do usuário não é degradado pelo painel do Adobe Primetime TVE.
- O AccessEnabler iOS/tvOS SDK recebeu a resposta SAML do Provedor de TV do usuário da Estrutura de conta do assinante de vídeo.
Dica Pro: Esta segunda etapa não acionará nenhum outro retorno de chamada, além do retorno de chamada setRequestorComplete, pois a autenticação não foi iniciada explicitamente pelo aplicativo.
-
O aplicativo teria que verificar o status de autenticação.
Importante: esta terceira etapa pode disparar um código de erro avançado que é específico para o fluxo de trabalho SSO do Apple, no caso de uma das seguintes opções ser verdadeira:
- *VSA403 - O usuário está conectado à sua conta do Provedor de TV em
o nível do sistema do dispositivo, mas a permissão do Provedor de TV do usuário é
negado para o aplicativo. - *VSA404 - O usuário está conectado à sua conta do Provedor de TV em
o nível do sistema do dispositivo, mas a permissão do Provedor de TV do usuário
é indeterminado para o aplicativo. - *APPL_ERROR - O usuário está conectado ao seu Provedor de TV
conta a nível do sistema do dispositivo, mas a comunicação entre os
a conta do assinante de vídeo e do iOS SDK/tvOS do AccessEnabler
a estrutura encontrou um erro.
Importante: esta terceira etapa disparará o retorno de chamada setAuthenticationStatus com status igual a 0, no caso de uma das seguintes opções ser verdadeira:
- O usuário não está conectado à sua conta do Provedor de TV no nível do sistema do dispositivo ou por meio de um fluxo de autenticação regular.
- O usuário está conectado à sua conta do Provedor de TV no nível do sistema do dispositivo ou por meio de um fluxo de autenticação regular, mas o token de autenticação do Provedor de TV TTL do usuário foi aprovado.
- O usuário faz logon em sua conta do Provedor de TV no nível do sistema do dispositivo ou por meio de um fluxo de autenticação regular, mas a integração do Provedor de TV do usuário com o aplicativo é desativada por meio do Painel do Adobe Primetime TVE.
- O usuário faz logon em sua conta do Provedor de TV no nível do sistema do dispositivo, mas o Logon único do Provedor de TV com o aplicativo é desativado por meio do Painel do Adobe Primetime TVE.
- O usuário está conectado à sua conta do Provedor de TV no nível do sistema do dispositivo, mas a permissão do Provedor de TV do usuário é negada para o aplicativo.
- O usuário está conectado à sua conta do Provedor de TV no nível do sistema do dispositivo, mas a permissão do Provedor de TV do usuário não foi determinada para o aplicativo.
- O usuário está conectado à sua conta do Provedor de TV no nível do sistema do dispositivo, mas a comunicação entre o AccessEnabler iOS/tvOS SDK e a Estrutura da Conta do Assinante de Vídeo encontrou um erro.
Importante: esta terceira etapa disparará o retorno de chamada setAuthenticationStatus com status igual a 1, no caso de todas as etapas acima serem falsas.
- *VSA403 - O usuário está conectado à sua conta do Provedor de TV em
-
O aplicativo teria que inicializar a autenticação caso a verificação de status de autenticação anterior disparasse o retorno de chamada setAuthenticationStatus com status igual a 0.
Dica de Profissional: Implemente uma das seguintes API de SDK do AccessEnabler iOS/tvOS getAuthentication ou getAuthentication:filter.
Importante: esta quarta etapa pode disparar um código de erro avançado que é específico para o fluxo de trabalho SSO do Apple, no caso de uma das seguintes opções ser verdadeira:
- VSA403 - Permissão de Provedor de TV do usuário negada para o aplicativo.
- VSA404 - A permissão Provedor de TV do usuário não foi determinada para o aplicativo.
- VSA503 - A comunicação entre o AccessEnabler iOS/tvOS SDK e o Video Subscriber Account Framework encontrou um erro.
- N003 - O usuário selecionou a opção "Outro Provedor de TV" no seletor de MVPD do Apple.
- N004 - O usuário selecionou um Provedor de TV no seletor de MVPD do Apple, para o qual não há suporte (integração ou Logon Único desabilitado) pelo solicitante atual.
- N005 - O usuário optou por cancelar o seletor de MVPD comum ou o seletor de Apple MVPD.
Importante: esta quarta etapa retornará ao fluxo de autenticação regular, acionando o retorno de chamada displayProviderDialog e one dos códigos de erro avançados acima, caso uma das opções acima seja verdadeira.
Importante: esta quarta etapa retornará ao fluxo de autenticação normal, acionando o navigateToUrl ou o navigateToUrl:useSVC de retorno e nenhum dos códigos de erro avançados acima, caso o usuário tenha selecionado um provedor de TV, que não dá suporte ao Apple SSO, mas está presente no seletor do Apple MVPD.
Dica Pro: o AccessEnabler iOS/tvOS SDK chama silenciosamente a API setSelectedProvider, caso o usuário tenha selecionado um provedor de TV, que não dá suporte ao Apple SSO, mas está presente no seletor do Apple MVPD.
Importante: esta quarta etapa tentaria trocar silenciosamente o perfil de SSO do Apple por um token de autenticação Adobe, caso todas as opções acima sejam falsas e todas as opções a seguir sejam verdadeiras:
- A permissão Provedor de TV do usuário é concedida para o aplicativo.
- O usuário está conectado/no momento faz logon em sua conta do Provedor de TV no nível do sistema do dispositivo.
- O AccessEnabler iOS/tvOS SDK recebeu o identificador de Provedor de TV do usuário da Estrutura de conta do assinante de vídeo.
- A integração do Provedor de TV do usuário com o aplicativo é habilitada por meio do Painel do Adobe Primetime TVE.
- O Logon único do provedor de TV do usuário com o aplicativo é ativado por meio do painel do Adobe Primetime TVE.
- O provedor de TV do usuário não é degradado pelo painel do Adobe Primetime TVE.
- O AccessEnabler iOS/tvOS SDK recebeu a resposta SAML do Provedor de TV do usuário da Estrutura de conta do assinante de vídeo.
Dica de Profissional: Esta quarta etapa acionará o retorno de chamada setAuthenticationStatus, independentemente do resultado de status, pois a autenticação foi iniciada explicitamente pelo aplicativo.
Metadados apple-sso-cookbook-iostvos-sdk-metadata
O aplicativo tem a opção de determinar se a autenticação ocorreu como resultado de uma entrada por meio do SSO do Parceiro ou não, usando a API de "*metadados de usuário* do "tokenSource" da SDK do AccessEnabler iOS/tvOS.
...
accessEnabler.getMetadata([METADATA_OPCODE_KEY:Int(METADATA_USER_META), METADATA_USER_META_KEY: "tokenSource"])
...
Sair apple-sso-cookbook-iostvos-sdk-logout
A Estrutura de Conta de Assinante de Vídeo não fornece uma API para desconectar programaticamente as pessoas que entraram na conta do provedor de TV no nível do sistema do dispositivo. Portanto, para que o logout tenha efeito total, o usuário final teria que sair explicitamente do Settings -> TV Provider
no iOS/iPadOS ou do Settings -> Accounts -> TV Provider
no tvOS. A outra opção que o usuário teria é retirar a permissão para acessar as informações de assinatura do usuário na seção de configurações específicas do aplicativo (acesso de permissão ao Provedor de TV).
- O aplicativo teria que iniciar o logout do AccessEnabler iOS/tvOS SDK. Isso não facilitaria a limpeza da sessão no lado do MVPD.
- O aplicativo teria que instruir/solicitar que o usuário saia explicitamente de
Settings -> Accounts -> TV Provider
no tvOS somente no caso de o código de status VSA203 ser acionado.
- O aplicativo teria que iniciar o logout do AccessEnabler iOS/tvOS SDK. Isso facilitaria a limpeza da sessão no lado do MVPD.
- O aplicativo teria que instruir/solicitar que o usuário saia explicitamente de
Settings -> TV Provider
no iOS/iPadOS somente se o código de status VSA203 for acionado.