Rapport d’erreurs (hérité) error-reporting
Vue d’ensemble overview
Le rapport d’erreur dans l’authentification Adobe Pass est actuellement implémenté de deux manières différentes :
-
Rapports d’erreur avancés L’implémentateur enregistre un rappel d’erreur dans le cas du SDK JavaScript AccessEnabler ou implémente une méthode d’interface nommée «
status
» dans le cas du SDK iOS/tvOS AccessEnabler et du SDK Android AccessEnabler, afin de recevoir des rapports d’erreur avancés. Les erreurs sont classées en types Informations, Avertissement et Erreur. Ce système de reporting est asynchrone, dans la mesure où il n’existe aucune garantie quant à l’ordre dans lequel les erreurs multiples seront déclenchées. Pour plus d’informations sur le système de rapport d’erreur avancé, voir la section Rapport d’erreur avancé. -
Rapport d’erreur d’origine - Système de rapport statique dans lequel des messages d’erreur sont transmis à des fonctions de rappel spécifiques en cas d’échec de requêtes spécifiques. Les erreurs sont regroupées en types génériques, d’authentification et d’autorisation. Pour obtenir la liste des erreurs signalées dans le système d’origine, reportez-vous à la section Rapport d’erreur d’origine.
Rapports d’erreur avancés advanced-error-reporting
SDK JavaScript AccessEnabler accessenabler-javascript-sdk
Le nouveau système de rapport d’erreur reste facultatif. Par conséquent, l’implémentateur peut enregistrer explicitement un rappel de gestionnaire d’erreurs pour recevoir des rapports d’erreur avancés. Le système offre la possibilité d’enregistrer et de désenregistrer dynamiquement plusieurs rappels d’erreur. En outre, vous pouvez enregistrer de nouveaux rappels d’erreur dès que le SDK JavaScript AccessEnabler est chargé, sans avoir à effectuer d’autres initialisations (avant d’appeler setRequestor()
), ce qui signifie que vous pouvez recevoir des rapports avancés sur les erreurs d’initialisation et de configuration.
Mise en œuvre access-enab-js-imp
yourErrorHandler(errorData:Object)
Votre fonction de rappel de gestionnaire d’erreurs recevra un seul objet (une carte) avec la structure suivante :
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Liaison bind
.bind(eventType:String, handlerName:String):void
Associe un gestionnaire pour un événement.
eventType
- SEULE la valeur « errorEvent
» entraîne le déclenchement de rappels de rapports d’erreur avancés par le SDK JavaScript AccessEnabler.
handlerName
- une chaîne spécifiant le nom de la fonction de gestionnaire d’erreurs.
Les deux paramètres de liaison doivent utiliser uniquement des caractères du jeu suivant : [0-9a-zA-Z][-._a-zA-Z0-9]
; en d’autres termes, les paramètres doivent commencer par un nombre ou une lettre et ne peuvent ensuite inclure que des tirets, des points, des traits de soulignement et des caractères alphanumériques. En outre, les paramètres ne peuvent pas dépasser 1 024 caractères.
Exemple de gestionnaires d’erreur de liaison :
accessEnabler.bind('errorEvent', 'myCustomErrorHandler');
accessEnabler.bind('errorEvent', 'errorLogger');
En raison de limitations techniques, vous ne pouvez pas lier une fonction de fermeture ou anonyme. Vous devez spécifier le nom de la méthode dans le deuxième paramètre.
2. Dissocier unbind
.unbind(eventType:String, handlerName:String=null):void
Supprime un gestionnaire d'événements précédemment associé.
eventType
- SEULE la valeur « errorEvent
» entraîne le déclenchement de rappels de rapports d’erreur avancés par le SDK JavaScript AccessEnabler.
handlerName
- Une chaîne spécifiant le nom de la fonction de gestionnaire d’erreurs, si est null ou s’il manque tous les gestionnaires joints pour la eventType
spécifiée sera supprimée.
Les deux paramètres de liaison doivent utiliser uniquement des caractères du jeu suivant : [0-9a-zA-Z][-._a-zA-Z0-9]
; en d’autres termes, les paramètres doivent commencer par un nombre ou une lettre et ne peuvent ensuite inclure que des tirets, des points, des traits de soulignement et des caractères alphanumériques. En outre, les paramètres ne peuvent pas dépasser 1 024 caractères.
Exemple de suppression d’un seul gestionnaire d’erreurs :
accessEnabler.unbind('errorEvent', 'errorLogger');
Exemple suppression de tous les gestionnaires d’erreur :
accessEnabler.unbind('errorEvent');
SDK AccessEnabler iOS/tvOS accessenabler-ios-tvos-sdk
Le nouveau système de rapport d’erreurs est obligatoire. Par conséquent, l’implémentateur doit explicitement se conformer au nouveau protocole « EntitlementStatus » de l’objectif C. Cette nouvelle approche permet aux programmeurs de recevoir des rapports d’erreur avancés.
Mise en œuvre accessenab-ios-tvossdk-imp
Un implémenteur doit se conformer au protocole EntitlementStatus suivant :
EntitlementStatus.h
#import <Foundation/Foundation.h>
@protocol EntitlementStatus <NSObject>
- (void)status:(NSDictionary *)statusDictionary;
@end
Votre fonction status recevra un seul objet (un NSDictionary
) avec la structure suivante :
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Déclaration
@interface MyEntitlementStatusDelegate : NSObject <EntitlementStatus>
2. Implémentation
@implementation DemoAppAppDelegate
// very simple implementation
- (void)status:(NSDictionary *)statusDict {
NSLog(@"%@:\n%@", statusDict[@"level"], statusDict);
}
SDK AccessEnabler Android accessenabler-android-sdk
Le nouveau système de rapport d’erreur est obligatoire, car l’implémentateur doit se conformer explicitement au protocole défini par l’interface IAccessEnablerDelegate
. Cette nouvelle approche permet aux programmeurs de recevoir des rapports d’erreur avancés.
Mise en œuvre access-enablr-androidsdk-imp
Un implémenteur doit gérer la nouvelle méthode status
à partir de l’interface IAccessEnablerDelegate
. La fonction status
recevra un seul objet AdvancedStatus
ayant le modèle suivant :
class AdvancedStatus {
String id; // Not Null
String level; // Not Null
String message; // Might be null
String resource; // Might be null
AdvancedStatus(String id, String level, String message, String resource) {
this.id = id;
this.level = level;
this.message = message;
this.resource = resource;
}
//other private/public methods
}
Exemple
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
SDK FireOS AccessEnabler accessenabler-fireos-sdk
Le nouveau système de rapport d’erreur est obligatoire, car l’implémentateur doit se conformer explicitement au protocole défini par l’interface IAccessEnablerDelegate
. Cette nouvelle approche permet aux programmeurs de recevoir des rapports d’erreur avancés.
Mise en œuvre access-enab-fireos-sdk-
Un implémenteur doit gérer la nouvelle status
méthode à partir de l’interfaceIAccessEnablerDelegate
. La fonction status
recevra un seul objet AdvancedStatus
ayant le modèle suivant :
class AdvancedStatus {
String id; // Not Null
String level; // Not Null
String message; // Might be null
String resource; // Might be null
AdvancedStatus(String id, String level, String message, String resource) {
this.id = id;
this.level = level;
this.message = message;
this.resource = resource;
}
//other private/public methods
}
Exemple
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
Référence des codes d’erreur avancés advanced-error-codes-reference
Le tableau suivant répertorie et décrit les codes d’erreur exposés par la nouvelle API d’erreur, ainsi que les actions suggérées pour les corriger :
Demander à l’utilisateur de se déconnecter explicitement de Paramètres -> Fournisseur de télévision sur iOS/iPadOS.
Se déconnecter explicitement de Paramètres -> Fournisseur TV sur iOS/iPadOS
- Adobe de contact afin de gérer la liste blanche de domaine pour l’ID de demandeur utilisé
- iOS : vérifiez que vous utilisez le certificat correct et que la signature est créée correctement
- Vous pouvez éventuellement informer l’utilisateur qu’il doit se reconnecter.
[https://]{SP_FQDN\}
dans le navigateur et acceptez manuellement les certificats SSL, par exemple, https://api.auth.adobe.com ou https://api.auth-staging.adobe.com- Marquer les certificats du proxy comme approuvés
Agissez pour empêcher les flux de droits, car ils risquent d’échouer.
- Le développeur a mis en place une usurpation non valide.
- L'utilisateur a des problèmes de mise en réseau et ne peut pas atteindre les domaines d'authentification Adobe Pass.
- Les serveurs d’authentification Adobe Pass sont mal configurés.
Remarque : sur Firefox, CFG400 apparaît à la place de CFG404 (limitation du navigateur)
- Vérifiez les paramètres réseau/DNS.
-Informer l'Adobe.
- Contournement de l’authentification Adobe Pass.
- Informer l’Adobe.
- Présente éventuellement une liste des fichiers MVPD standard.
- Présentez une liste des fichiers MVPD standard.
- Masquez l’option TempPass.
1. Les cookies (tiers) du navigateur sont désactivés (ne s’applique pas à la version 4.x d’AccessEnabler JavaScript SDK)
2. Le navigateur a l’option Empêcher le suivi sur plusieurs sites activée (Safari 11+)
3. La session a expiré
4. Le programmeur appelle les API d’authentification avec un
de succession incorrect
REMARQUE : ce code d’erreur n’est pas disponible pour les flux d’authentification de redirection de page entière.
2. Inviter l’utilisateur à désactiver le suivi intersite
3. Inviter l’utilisateur à réauthentifier
4. API d’appel dans le bon ordre
de cookies (tiers)
2. Désactivation du suivi cross-site
3. Réauthentifier le
4. S/O
Remarque : il s’agit de l’erreur d’origine du système d’erreur « Erreur d’authentification générique » et « Erreur d’authentification interne ». Cette erreur finira par être supprimée.
Remarque : il s’agit d’une erreur irrécupérable. Informez l’utilisateur que l’application n’est pas disponible.
- JavaScript : vérifiez la déclaration du logiciel dans l’application de votre site web.
Ouvrez un ticket à l’aide de Zendesk et informez l’utilisateur que le système est temporairement indisponible
Remarque : il s’agit d’une erreur irrécupérable. Informez l’utilisateur que l’application n’est pas disponible.
- JavaScript : vérifiez la déclaration du logiciel dans l’application de votre site web.
Ouvrez un ticket à l’aide de Zendesk et informez l’utilisateur que le système est temporairement indisponible
Remarque : il s’agit d’une erreur irrécupérable. Informez l’utilisateur que l’application n’est pas disponible.
- Informer l’utilisateur.
- La touche 'message' du message d'erreur PEUT contenir un message plus détaillé fourni par le MVPD.
- Informer l’utilisateur.
- Informez l’utilisateur ou l’utilisatrice que le MVPD a rencontré des problèmes et il ou elle doit réessayer ultérieurement.
Remarque : il s’agit de l’ancienne « Erreur d’authentification générique » et « Erreur d’authentification interne ». Cette erreur finira par être supprimée.
- Contactez l’assistance technique d’authentification d’Adobe Pass pour rechercher/configurer le nombre maximal de ressources autorisées.
L’authentification/autorisation
ne persiste pas au-delà de la page actuelle. À chaque chargement de page, l’utilisateur ou l’utilisatrice doit s’authentifier. Les TTL configurées ne sont pas appliquées lors des rechargements de page.
- Indiquez à l'utilisateur comment augmenter l'espace de stockage disponible.
- Vous pouvez également vous déconnecter pour effacer le stockage.
- Déconnectez-vous pour effacer le stockage.
Rapport d’erreurs d’origine original-error-reporting
Cette section décrit le système de rapport d’erreurs d’origine, ainsi que les codes d’erreur d’origine. Dans le système de rapport d’erreur d’origine, AccessEnabler transmet les erreurs à ces deux fonctions de rappel : setAuthenticationStatus()
après un appel à checkAuthentication()
; tokenRequestFailed()
, après l’échec d’un appel à checkAuthorization()
ou getAuthorization()
.
Les API de rapport d’erreur et de statut d’origine continuent à fonctionner exactement comme auparavant. Toutefois, les API de rapports d’erreurs d’origine ne seront pas mises à jour à l’avenir. Tous les nouveaux rapports d’erreurs et les mises à jour des anciennes erreurs seront répercutés UNIQUEMENT dans le nouveau système avancé de rapports d’erreurs.
Pour obtenir des exemples d’utilisation du système de rapports d’erreurs d’origine, consultez les fonctions Référence de l’API JavaScript:setAuthenticationStatus() et tokenRequestFailed(), Référence de l’API iOS/tvOS : setAuthenticationStatus()et tokentRequestFailed(), Référence de l’API Android: setAuthenticationStatus() et tokenRequestFailed().