Guía de Apple SSO (SDK de iOS/tvOS) apple-sso-cookbook-iostvos-sdk
El SDK de Adobe Pass Authentication AccessEnabler de iOS/tvOS es compatible con el inicio de sesión único (SSO) de socio para los usuarios finales de aplicaciones cliente que se ejecutan en iOS, iPadOS o tvOS.
Este documento actúa como una extensión de la documentación existente del SDK de AccessEnabler para iOS/tvOS, que se puede encontrar aquí.
Guía apple-sso-cookbook-iostvos-sdk-cookbook
Para beneficiarse de la experiencia del usuario de SSO de Apple, la aplicación debe integrar el SDK de AccessEnabler para iOS/tvOS y seguir la secuencia de pasos que se presenta a continuación.
Requisitos previos apple-sso-cookbook-iostvos-sdk-prerequisites
Permiso apple-sso-cookbook-iostvos-sdk-permission
Settings -> TV Provider
en iOS y iPadOS o a Settings -> Accounts -> TV Provider
en 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.
...
}
}
...
Llamadas apple-sso-cookbook-iostvos-sdk-callbacks
- presentTVProviderDialog: la devolución de llamada se activó cuando se abre el selector de MVPD de Apple.
- dismissTVProviderDialog: la devolución de llamada se activó cuando el selector de MVPD de Apple se va a cerrar.
Informes de errores apple-sso-cookbook-iostvos-sdk-error-reporting
- N003 - El usuario seleccionó la opción "Otro proveedor de TV" del selector de MVPD de Apple.
- N004: el usuario seleccionó un proveedor de TV del selector de MVPD de Apple, que no es compatible (integración o inicio de sesión único deshabilitado) por el solicitante actual.
- N005 - El usuario decidió cancelar el selector MVPD normal o el selector MVPD de Apple.
- VSA403 - Se ha denegado el permiso al proveedor de TV del usuario para la aplicación.
- VSA404: el permiso del proveedor de TV del usuario no está determinado para la aplicación.
- VSA503: error en la solicitud de metadatos de la cuenta del suscriptor de vídeo. Se proporciona más contexto en el campo mensaje.
- AAPL / APPL_ERROR: error en la solicitud de metadatos de la cuenta del suscriptor de vídeo. Se proporciona más contexto en el campo detalles.
Autenticación apple-sso-cookbook-iostvos-sdk-authentication
-
La aplicación tendría que inicializar el SDK de AccessEnabler para iOS/tvOS.
-
La aplicación tendría que establecer el identificador del solicitante actual.
Importante: Este segundo paso podría almacenar en déclencheur un código de error avanzado que es específico del flujo de trabajo de SSO de Apple, en caso de que una de las siguientes opciones sea verdadera:
- VSA403 - Se ha denegado el permiso al proveedor de TV del usuario para la aplicación.
- VSA404: el permiso del proveedor de TV del usuario no está determinado para la aplicación.
- APPL: se produjo un error en la comunicación entre el SDK de AccessEnabler iOS/tvOS y el marco de trabajo de la cuenta del suscriptor de vídeo.
Este segundo paso intentaría intercambiar silenciosamente el perfil SSO de Apple por un token de autenticación de Adobe, en caso de que todo lo anterior sea falso y todo lo siguiente sea verdadero:
- El permiso Proveedor de TV del usuario se concede para la aplicación.
- El usuario ha iniciado sesión en su cuenta de proveedor de TV en el nivel del sistema del dispositivo.
- El SDK de AccessEnabler para iOS/tvOS recibió el identificador del proveedor de TV del usuario desde el marco de trabajo de la cuenta del suscriptor de vídeo.
- La integración del proveedor de TV del usuario con la aplicación se activa a través del panel de control de Adobe Primetime TVE.
- El inicio de sesión único del proveedor de TV del usuario con la aplicación se habilita a través del panel de Adobe Primetime TVE.
- El proveedor de TV del usuario no se degrada a través del panel de Adobe Primetime TVE.
- El SDK de AccessEnabler para iOS/tvOS recibió la respuesta SAML del proveedor de TV del usuario desde el marco de cuentas del suscriptor de vídeo.
Sugerencia profesional: Este segundo paso no almacenará en déclencheur ninguna otra devolución de llamada, aparte de la devolución de llamada setRequestorComplete, ya que la aplicación no inició explícitamente la autenticación.
-
La aplicación tendría que comprobar el estado de autenticación.
Importante: Este tercer paso podría almacenar en déclencheur un código de error avanzado que es específico del flujo de trabajo de SSO de Apple, en caso de que una de las siguientes opciones sea verdadera:
- *VSA403 - El usuario inició sesión en su cuenta de proveedor de TV en
el nivel del sistema del dispositivo, pero el permiso del proveedor de TV del usuario es
denegado para la aplicación. - *VSA404 - El usuario ha iniciado sesión en su cuenta de proveedor de TV en
el nivel del sistema del dispositivo, pero el permiso del proveedor de TV del usuario
no se ha determinado para la aplicación. - *APPL_ERROR: el usuario ha iniciado sesión en su proveedor de TV
cuenta en el nivel del sistema del dispositivo, pero la comunicación entre
el SDK de AccessEnabler para iOS/tvOS y la cuenta de suscriptor de vídeo
framework ha encontrado un error.
Importante: Este tercer paso almacenará en déclencheur la llamada de retorno setAuthenticationStatus con status igual a 0, en caso de que una de las siguientes opciones sea verdadera:
- El usuario no ha iniciado sesión en su cuenta de proveedor de TV en el nivel del sistema del dispositivo o a través de un flujo de autenticación regular.
- El usuario ha iniciado sesión en su cuenta de proveedor de TV en el nivel de sistema del dispositivo o a través de un flujo de autenticación normal, pero el TTL del token de autenticación de proveedor de TV del usuario ha pasado.
- El usuario ha iniciado sesión en su cuenta de proveedor de TV en el nivel del sistema del dispositivo o a través de un flujo de autenticación normal, pero la integración del proveedor de TV del usuario con la aplicación se desactiva a través del panel de control de Adobe Primetime TVE.
- El usuario ha iniciado sesión en su cuenta de proveedor de TV en el nivel de sistema del dispositivo, pero el inicio de sesión único del proveedor de TV del usuario con la aplicación se deshabilita a través del panel de control de Adobe Primetime TVE.
- El usuario ha iniciado sesión en su cuenta de proveedor de TV en el nivel de sistema del dispositivo, pero se ha denegado el permiso de proveedor de TV del usuario para la aplicación.
- El usuario ha iniciado sesión en su cuenta de proveedor de TV en el nivel de sistema del dispositivo, pero el permiso de proveedor de TV del usuario no está determinado para la aplicación.
- El usuario ha iniciado sesión en su cuenta de proveedor de TV en el nivel de sistema del dispositivo, pero se ha producido un error en la comunicación entre el SDK de iOS/tvOS de AccessEnabler y el marco de trabajo de la cuenta del suscriptor de vídeo.
Importante: Este tercer paso almacenará en déclencheur la llamada de retorno setAuthenticationStatus con status igual a 1, en caso de que todo lo anterior sea falso.
- *VSA403 - El usuario inició sesión en su cuenta de proveedor de TV en
-
La aplicación tendría que inicializar la autenticación en caso de que la comprobación de estado de autenticación anterior activara la devolución de llamada setAuthenticationStatus con status igual a 0.
Sugerencia profesional: Implemente una de las siguientes API del SDK de AccessEnabler iOS/tvOS getAuthentication o getAuthentication:filter.
Importante: Este cuarto paso podría almacenar en déclencheur un código de error avanzado que es específico del flujo de trabajo de SSO de Apple, en caso de que una de las siguientes opciones sea verdadera:
- VSA403 - Se ha denegado el permiso al proveedor de TV del usuario para la aplicación.
- VSA404: el permiso del proveedor de TV del usuario no está determinado para la aplicación.
- VSA503: se produjo un error en la comunicación entre el SDK de AccessEnabler iOS/tvOS y el marco de trabajo de la cuenta del suscriptor de vídeo.
- N003 - El usuario seleccionó la opción "Otro proveedor de TV" del selector de MVPD de Apple.
- N004: el usuario seleccionó un proveedor de TV del selector de MVPD de Apple, que no es compatible (integración o inicio de sesión único deshabilitado) por el solicitante actual.
- N005 - El usuario decidió cancelar el selector MVPD normal o el selector MVPD de Apple.
Importante: Este cuarto paso volvería al flujo de autenticación normal, activando la devolución de llamada displayProviderDialog y uno de los códigos de error avanzados anteriores, en caso de que uno de los anteriores sea verdadero.
Importante: Este cuarto paso volvería al flujo de autenticación normal, activando la llamada de retorno navegarToUrl o navegarToUrl:usarSVC y ninguno de los códigos de error avanzados anteriores, en caso de que el usuario seleccionara un proveedor de TV, que no admite SSO de Apple, pero que está presente en el selector de MVPD de Apple.
Sugerencia profesional: El SDK de AccessEnabler para iOS/tvOS llama silenciosamente a la API setSelectedProvider, en caso de que el usuario haya seleccionado un proveedor de TV, que no admite SSO de Apple, pero está presente en el selector de MVPD de Apple.
Importante: Este cuarto paso intentaría intercambiar silenciosamente el perfil SSO de Apple por un token de autenticación de Adobe, en caso de que todo lo anterior sea falso y todo lo siguiente sea verdadero:
- El permiso Proveedor de TV del usuario se concede para la aplicación.
- El usuario ha iniciado sesión o está iniciando sesión en su cuenta de proveedor de TV a nivel de sistema de dispositivo.
- El SDK de AccessEnabler para iOS/tvOS recibió el identificador del proveedor de TV del usuario desde el marco de trabajo de la cuenta del suscriptor de vídeo.
- La integración del proveedor de TV del usuario con la aplicación se activa a través del panel de control de Adobe Primetime TVE.
- El inicio de sesión único del proveedor de TV del usuario con la aplicación se habilita a través del panel de Adobe Primetime TVE.
- El proveedor de TV del usuario no se degrada a través del panel de Adobe Primetime TVE.
- El SDK de AccessEnabler para iOS/tvOS recibió la respuesta SAML del proveedor de TV del usuario desde el marco de cuentas del suscriptor de vídeo.
Sugerencia profesional: Este cuarto paso almacenará en déclencheur la llamada de retorno setAuthenticationStatus, independientemente del resultado status, ya que la aplicación inició explícitamente la autenticación.
Metadatos apple-sso-cookbook-iostvos-sdk-metadata
La aplicación tiene la opción de determinar si la autenticación se ha producido como resultado de un inicio de sesión a través del SSO del socio o no, utilizando la API tokenSource" metadatos de usuario del SDK de AccessEnabler iOS/tvOS.
...
accessEnabler.getMetadata([METADATA_OPCODE_KEY:Int(METADATA_USER_META), METADATA_USER_META_KEY: "tokenSource"])
...
Cerrar sesión apple-sso-cookbook-iostvos-sdk-logout
El marco de cuenta de suscriptor de vídeo no proporciona una API para cerrar la sesión mediante programación de las personas que han iniciado sesión en su cuenta de proveedor de TV en el nivel de sistema del dispositivo. Por lo tanto, para que el cierre de sesión surta efecto, el usuario final tendría que cerrar sesión explícitamente desde Settings -> TV Provider
en iOS/iPadOS o Settings -> Accounts -> TV Provider
en tvOS. La otra opción que tendría el usuario es retirar el permiso para acceder a la información de suscripción del usuario desde la sección de configuración específica de la aplicación (acceso al permiso del proveedor de TV).
- La aplicación tendría que iniciar el cierre de sesión desde el SDK de AccessEnabler para iOS/tvOS. Esto no facilitaría la limpieza de la sesión en el lado de MVPD.
- La aplicación tendría que indicar o pedir al usuario que cierre sesión explícitamente desde
Settings -> Accounts -> TV Provider
en tvOS solo en caso de que se active el código de estado VSA203.
- La aplicación tendría que iniciar el cierre de sesión desde el SDK de AccessEnabler para iOS/tvOS. Esto facilitaría la limpieza de la sesión en el lado de MVPD.
- La aplicación tendría que indicar o pedir al usuario que cierre sesión explícitamente desde
Settings -> TV Provider
en iOS/iPadOS solo en caso de que se active el código de estado VSA203.