Manuel de l’authentification unique Apple (hérité) (iOS/tvOS SDK) apple-sso-cookbook-iostvos-sdk
Le SDK Adobe Pass Authentication AccessEnabler iOS/tvOS prend en charge l’authentification unique (SSO) des partenaires pour les utilisateurs finaux des applications clientes s’exécutant sur iOS, iPadOS ou tvOS.
Ce document agit comme une extension de la documentation SDK AccessEnabler iOS/tvOS, disponible ici.
Livre de cuisine apple-sso-cookbook-iostvos-sdk-cookbook
Pour bénéficier de l’expérience utilisateur de l’authentification unique d’Apple, l’application doit intégrer le SDK iOS/tvOS d’AccessEnabler et suivre la séquence d’étapes présentée ci-dessous.
Conditions préalables apple-sso-cookbook-iostvos-sdk-prerequisites
Autorisation apple-sso-cookbook-iostvos-sdk-permission
Settings -> TV Provider
sur iOS et iPadOS ou Settings -> Accounts -> TV Provider
sur 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.
...
}
}
...
Rappels apple-sso-cookbook-iostvos-sdk-callbacks
- presentTVProviderDialog - Rappel déclenché lorsque le sélecteur MVPD d’Apple s’ouvre.
- dismissTVProviderDialog - Rappel déclenché lorsque le sélecteur MVPD d’Apple va se fermer.
Rapport d’erreurs apple-sso-cookbook-iostvos-sdk-error-reporting
- N003 - L’utilisateur a sélectionné l’option « Autre fournisseur de télévision » dans le sélecteur MVPD d’Apple.
- N004 - L’utilisateur a sélectionné un fournisseur de télévision dans le sélecteur MVPD d’Apple, qui n’est pas pris en charge (intégration ou authentification unique désactivée) par le demandeur actuel.
- N005 - L’utilisateur a décidé d’annuler le sélecteur MVPD standard ou le sélecteur Apple MVPD.
- VSA403 - L'autorisation du fournisseur de télévision de l'utilisateur est refusée pour l'application.
- VSA404 - L'autorisation du fournisseur de télévision de l'utilisateur est indéterminée pour l'application.
- VSA503 - Échec de la demande de métadonnées du compte d'abonné vidéo. Le champ message fournit plus de contexte.
- AAPL / APPL_ERROR - Échec de la demande de métadonnées du compte d’abonné à la vidéo. Le champ détails fournit plus de contexte.
Authentification apple-sso-cookbook-iostvos-sdk-authentication
-
L’application doit initialiser le SDK AccessEnabler iOS/tvOS.
-
L’application doit définir l’identifiant du demandeur actuel.
Important : cette deuxième étape peut déclencher un code d’erreur avancé spécifique au workflow SSO d’Apple, dans le cas où l’un des scénarios suivants est vrai :
- VSA403 - L'autorisation du fournisseur de télévision de l'utilisateur est refusée pour l'application.
- VSA404 - L'autorisation du fournisseur de télévision de l'utilisateur est indéterminée pour l'application.
- APPL - La communication entre le SDK AccessEnabler iOS/tvOS et le framework de compte d’abonné vidéo a rencontré une erreur.
Cette deuxième étape tente d’effectuer un exchange silencieux du profil SSO Apple pour un jeton d’authentification Adobe, au cas où tous les éléments ci-dessus sont faux et tous les éléments suivants sont vrais :
- L’autorisation Fournisseur TV de l’utilisateur est accordée pour l’application.
- L’utilisateur est connecté à son compte de fournisseur de télévision au niveau du système de l’appareil.
- Le SDK AccessEnabler iOS/tvOS a reçu l’identifiant de fournisseur de télévision de l’utilisateur de la structure du compte d’abonné vidéo.
- L’intégration du fournisseur de télévision de l’utilisateur à l’application est activée via le tableau de bord Adobe Primetime TVE.
- L’authentification unique du fournisseur de télévision de l’utilisateur avec l’application est activée via le tableau de bord Adobe Primetime TVE.
- Le fournisseur TV de l’utilisateur n’est pas dégradé via le tableau de bord Adobe Primetime TVE.
- Le SDK AccessEnabler iOS/tvOS a reçu la réponse SAML du fournisseur de télévision de l’utilisateur de la structure du compte d’abonné vidéo.
Conseil pro : cette deuxième étape ne déclenchera aucun autre rappel, à part le rappel setRequestorComplete, car l'authentification n'a pas été explicitement initiée par l'application.
-
L’application doit vérifier le statut de l’authentification.
Important : cette troisième étape peut déclencher un code d’erreur avancé spécifique au workflow SSO d’Apple, dans le cas où l’un des scénarios suivants est vrai :
- *VSA403 - L’utilisateur est connecté à son compte de fournisseur de télévision à l’adresse
niveau du système de l’appareil, mais l’autorisation Fournisseur TV de l’utilisateur est
refusé pour l’application. - *VSA404 - L’utilisateur est connecté à son compte de fournisseur de télévision à l’adresse
niveau du système de l’appareil, mais autorisation du fournisseur de télévision de l’utilisateur
est indéterminé pour l’application. - *APPL_ERROR - L’utilisateur est connecté à son fournisseur de télévision
compte au niveau du système de l’appareil, mais la communication entre
le SDK AccessEnabler iOS/tvOS et le compte d’abonné vidéo ;
la structure a rencontré une erreur.
Important : cette troisième étape déclenche le rappel setAuthenticationStatus avec status égal à 0, au cas où l'un des éléments suivants est vrai :
- L’utilisateur n’est pas connecté à son compte de fournisseur de télévision au niveau du système de l’appareil ou par le biais d’un flux d’authentification régulier.
- L’utilisateur est connecté à son compte de fournisseur de télévision au niveau du système de l’appareil ou par le biais d’un flux d’authentification normal, mais la TTL du jeton d’authentification du fournisseur de télévision de l’utilisateur est passée.
- L’utilisateur est connecté à son compte de fournisseur de télévision au niveau du système de l’appareil ou par le biais d’un flux d’authentification régulier, mais l’intégration du fournisseur de télévision de l’utilisateur à l’application est désactivée via le tableau de bord Adobe Primetime TVE.
- L’utilisateur est connecté à son compte de fournisseur de télévision au niveau du système de l’appareil, mais l’authentification unique du fournisseur de télévision de l’utilisateur avec l’application est désactivée via le tableau de bord Adobe Primetime TVE.
- L’utilisateur est connecté à son compte de fournisseur de télévision au niveau du système de l’appareil, mais l’autorisation du fournisseur de télévision de l’utilisateur est refusée pour l’application.
- L’utilisateur est connecté à son compte de fournisseur de télévision au niveau du système de l’appareil, mais l’autorisation du fournisseur de télévision de l’utilisateur est indéterminée pour l’application.
- L’utilisateur est connecté à son compte de fournisseur de télévision au niveau du système de l’appareil, mais la communication entre le SDK AccessEnabler iOS/tvOS et la structure du compte d’abonné vidéo a rencontré une erreur.
Important : cette troisième étape déclenche le rappel setAuthenticationStatus avec status égal à 1, au cas où tous les éléments ci-dessus sont faux.
- *VSA403 - L’utilisateur est connecté à son compte de fournisseur de télévision à l’adresse
-
L’application doit initialiser l’authentification au cas où la vérification du statut d’authentification précédent déclenchait le rappel setAuthenticationStatus avec status égal à 0.
Conseil pro : implémentez l'une des API SDK AccessEnabler iOS/tvOS suivantes getAuthentication ou getAuthentication:filter.
Important : cette quatrième étape peut déclencher un code d’erreur avancé spécifique au workflow SSO d’Apple, dans le cas où l’un des scénarios suivants est vrai :
- VSA403 - L'autorisation du fournisseur de télévision de l'utilisateur est refusée pour l'application.
- VSA404 - L'autorisation du fournisseur de télévision de l'utilisateur est indéterminée pour l'application.
- VSA503 - La communication entre le SDK AccessEnabler iOS/tvOS et le framework de compte d'abonné vidéo a rencontré une erreur.
- N003 - L’utilisateur a sélectionné l’option « Autre fournisseur de télévision » dans le sélecteur MVPD d’Apple.
- N004 - L’utilisateur a sélectionné un fournisseur de télévision dans le sélecteur MVPD d’Apple, qui n’est pas pris en charge (intégration ou authentification unique désactivée) par le demandeur actuel.
- N005 - L’utilisateur a décidé d’annuler le sélecteur MVPD standard ou le sélecteur Apple MVPD.
Important : cette quatrième étape revient au flux d’authentification normal, en déclenchant le rappel displayProviderDialog et l’un des codes d’erreur avancés ci-dessus, au cas où l’un des deux est vrai.
Important : cette quatrième étape revient au flux d’authentification standard, en déclenchant le rappel navigateToUrl ou navigateToUrl:useSVC et none des codes d’erreur avancés ci-dessus, au cas où l’utilisateur ou l’utilisatrice sélectionne un fournisseur de télévision qui ne prend pas en charge la connexion unique Apple, mais qui est présent dans le sélecteur Apple MVPD.
Conseil pro : le SDK AccessEnabler iOS/tvOS appelle silencieusement l’API setSelectedProvder, au cas où l’utilisateur ou l’utilisatrice sélectionnerait un fournisseur de télévision qui ne prend pas en charge l’authentification unique Apple, mais qui est présent dans le sélecteur Apple MVPD.
Important : cette quatrième étape tente d’effectuer un exchange silencieux du profil SSO d’Apple pour un jeton d’authentification d’Adobe, au cas où tout ce qui précède est faux et tout ce qui suit est vrai :
- L’autorisation Fournisseur TV de l’utilisateur est accordée pour l’application.
- L’utilisateur est connecté/se connecte actuellement à son compte de fournisseur de télévision au niveau du système de l’appareil.
- Le SDK AccessEnabler iOS/tvOS a reçu l’identifiant de fournisseur de télévision de l’utilisateur de la structure du compte d’abonné vidéo.
- L’intégration du fournisseur de télévision de l’utilisateur à l’application est activée via le tableau de bord Adobe Primetime TVE.
- L’authentification unique du fournisseur de télévision de l’utilisateur avec l’application est activée via le tableau de bord Adobe Primetime TVE.
- Le fournisseur TV de l’utilisateur n’est pas dégradé via le tableau de bord Adobe Primetime TVE.
- Le SDK AccessEnabler iOS/tvOS a reçu la réponse SAML du fournisseur de télévision de l’utilisateur de la structure du compte d’abonné vidéo.
Conseil pro : cette quatrième étape déclenche le rappel setAuthenticationStatus, quel que soit le résultat status, car l'authentification a été explicitement initiée par l'application.
Métadonnées apple-sso-cookbook-iostvos-sdk-metadata
L’application a la possibilité de déterminer si l’authentification a eu lieu suite à une connexion via le SSO du partenaire ou non, à l’aide de l’API « tokenSource » métadonnées de l’utilisateur du SDK AccessEnabler iOS/tvOS.
...
accessEnabler.getMetadata([METADATA_OPCODE_KEY:Int(METADATA_USER_META), METADATA_USER_META_KEY: "tokenSource"])
...
Déconnexion apple-sso-cookbook-iostvos-sdk-logout
Le framework de compte d’abonné vidéo ne fournit pas d’API pour déconnecter par programmation les personnes qui se sont connectées au compte de leur fournisseur de télévision au niveau du système de l’appareil. Par conséquent, pour que la déconnexion prenne pleinement effet, l’utilisateur final doit se déconnecter explicitement d’Settings -> TV Provider
sur iOS/iPadOS ou Settings -> Accounts -> TV Provider
sur tvOS. L'autre possibilité pour l'utilisateur est de retirer l'autorisation d'accéder aux informations d'abonnement de l'utilisateur à partir de la section des paramètres de l'application spécifique (accès aux autorisations du fournisseur de télévision).
- L’application doit initier la déconnexion à partir du SDK AccessEnabler iOS/tvOS. Cela ne facilite pas le nettoyage de la session côté MVPD.
- L’application doit demander à l’utilisateur de se déconnecter explicitement de
Settings -> Accounts -> TV Provider
sur tvOS uniquement dans le cas où le code d’état VSA203 est déclenché.
- L’application doit initier la déconnexion à partir du SDK AccessEnabler iOS/tvOS. Cela facilite le nettoyage de la session côté MVPD.
- L’application doit demander à l’utilisateur de se déconnecter explicitement d’
Settings -> TV Provider
sur iOS/iPadOS uniquement dans le cas où le code d’état VSA203 est déclenché.