Fehlerberichte error-reporting
Übersicht overview
Die Fehlerberichterstellung in der Adobe Pass-Authentifizierung ist derzeit auf zwei verschiedene Arten implementiert:
-
Fortschrittliche Fehlerberichte Der Implementor registriert einen Fehler-Callback, falls die AccessEnabler JavaScript-SDK oder implementiert eine Schnittstelle -Methode namens
status
"im Falle der AccessEnabler iOS/tvOS SDK und AccessEnabler Android SDK, um erweiterte Fehlerberichte zu erhalten. Fehler werden in Informationen, Warnung, und Fehler Typen. Dieses Berichterstattungssystem ist asynchron in dem Es gibt keine Garantie für die Reihenfolge, in der mehrere Fehler ausgelöst werden. Weitere Informationen zum erweiterten Fehlermeldesystem finden Sie unter Fortschrittliche Fehlerberichte Abschnitt. -
Ursprüngliche Fehlerberichte - Ein statisches Berichterstattungssystem, in dem Fehlermeldungen an bestimmte Callback-Funktionen übergeben werden, wenn bestimmte Anforderungen fehlschlagen. Fehler werden in allgemeine, Authentifizierungs- und Autorisierungstypen gruppiert. Eine Liste der im Originalsystem gemeldeten Fehler finden Sie im Abschnitt Ursprüngliche Fehlerberichte Abschnitt.
Fortschrittliche Fehlerberichte advanced-error-reporting
AccessEnabler JavaScript-SDK accessenabler-javascript-sdk
Das neue Fehlermeldesystem ist optional. Daher kann der Implementor einen Rückruf des Fehler-Handlers explizit registrieren, um erweiterte Fehlerberichte zu erhalten. Das System bietet die Möglichkeit, mehrere Fehler-Rückrufe dynamisch zu registrieren und zu deaktivieren. Darüber hinaus können Sie alle neuen Fehlerrückrufe registrieren, sobald das AccessEnabler JavaScript-SDK geladen wird, ohne dass eine andere Initialisierung erforderlich ist (vor dem Aufruf von setRequestor()
), was bedeutet, dass Sie erweiterte Berichte zu Initialisierungs- und Konfigurationsfehlern erhalten können.
Implementierung access-enab-js-imp
yourErrorHandler(errorData:Object)
Ihre Rückruffunktion des Fehler-Handlers erhält ein einzelnes Objekt (eine Zuordnung) mit der folgenden Struktur:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Bindung bind
.bind(eventType:String, handlerName:String):void
Hängt einen Handler für ein Ereignis an.
eventType
- NUR "errorEvent
" führt dazu, dass das AccessEnabler JavaScript-SDK erweiterte Fehlerberichte auslöst.
handlerName
- eine Zeichenfolge, die den Namen der Fehler-Handler-Funktion angibt.
Beide Bindungsparameter dürfen nur Zeichen aus dem folgenden Satz verwenden: [0-9a-zA-Z][-._a-zA-Z0-9]
Parameter müssen also mit einer Zahl oder einem Buchstaben beginnen und dürfen dann nur Bindestriche, Punkte, Unterstriche und alphanumerische Zeichen enthalten. Darüber hinaus dürfen Parameter 1024 Zeichen nicht überschreiten.
Beispiel von Binding-Fehler-Handlern:
accessEnabler.bind('errorEvent', 'myCustomErrorHandler');
accessEnabler.bind('errorEvent', 'errorLogger');
Aufgrund technischer Einschränkungen können Schließungen oder anonyme Funktionen nicht gebunden werden. Sie müssen den Namen der Methode im zweiten Parameter angeben.
2. Bindung aufheben unbind
.unbind(eventType:String, handlerName:String=null):void
Entfernt einen zuvor angehängten Ereignishandler.
eventType
- NUR "errorEvent
' -Wert führt zum JavaScript-SDK AccessEnabler , das erweiterte Rückrufe in Fehlerberichte auslöst.
handlerName
- eine Zeichenfolge, die den Namen der Fehler-Handler-Funktion angibt, wenn null ist oder alle angehängten Handler für die angegebene eventType
entfernt.
Beide Bindungsparameter dürfen nur Zeichen aus dem folgenden Satz verwenden: [0-9a-zA-Z][-._a-zA-Z0-9]
Parameter müssen also mit einer Zahl oder einem Buchstaben beginnen und dürfen dann nur Bindestriche, Punkte, Unterstriche und alphanumerische Zeichen enthalten. Darüber hinaus dürfen Parameter 1024 Zeichen nicht überschreiten.
Beispiel Entfernen eines einzelnen Fehler-Handlers:
accessEnabler.unbind('errorEvent', 'errorLogger');
Beispiel Entfernen aller Fehlerhandler:
accessEnabler.unbind('errorEvent');
AccessEnabler iOS/tvOS SDK accessenabler-ios-tvos-sdk
Das neue Fehlermeldesystem ist obligatorisch, daher muss der Implementor explizit dem neuen Objective C-"EntitlementStatus"-Protokoll entsprechen. Dieser neue Ansatz ermöglicht es Programmierern, erweiterte Fehlerberichte zu erhalten.
Implementierung accessenab-ios-tvossdk-imp
Ein Implementor muss Folgendes erfüllen: EntitlementStatus Protokoll:
EntitlementStatus.h
#import <Foundation/Foundation.h>
@protocol EntitlementStatus <NSObject>
- (void)status:(NSDictionary *)statusDictionary;
@end
Ihre status -Funktion erhält ein einzelnes Objekt (ein NSDictionary
) mit der folgenden Struktur:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Erklärung
@interface MyEntitlementStatusDelegate : NSObject <EntitlementStatus>
2. Implementierung
@implementation DemoAppAppDelegate
// very simple implementation
- (void)status:(NSDictionary *)statusDict {
NSLog(@"%@:\n%@", statusDict[@"level"], statusDict);
}
AccessEnabler Android SDK accessenabler-android-sdk
Das neue Fehlermeldesystem ist obligatorisch, da der Implementor explizit der Variablen IAccessEnablerDelegate
Schnittstellendefiniertes Protokoll. Dieser neue Ansatz ermöglicht es Programmierern, erweiterte Fehlerberichte zu erhalten.
Implementierung access-enablr-androidsdk-imp
Ein Implementor muss die neue status
-Methode über die -SchnittstelleIAccessEnablerDelegate
. Die status
-Funktion erhält eine einzige AdvancedStatus
-Objekt mit dem folgenden Modell:
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
}
Beispiel
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
AccessEnabler FireOS-SDK accessenabler-fireos-sdk
Das neue Fehlermeldesystem ist obligatorisch, da der Implementor explizit der Variablen IAccessEnablerDelegate
Schnittstellendefiniertes Protokoll. Dieser neue Ansatz ermöglicht es Programmierern, erweiterte Fehlerberichte zu erhalten.
Implementierung access-enab-fireos-sdk-
Ein Implementor muss die neue status
-Methode über die -SchnittstelleIAccessEnablerDelegate
. Die status
-Funktion erhält eine einzige AdvancedStatus
-Objekt mit dem folgenden Modell:
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
}
Beispiel
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
Referenz zu erweiterten Fehlercodes advanced-error-codes-reference
In der folgenden Tabelle sind die von der neueren Fehler-API offen gelegten Fehler-Codes sowie die zu ihrer Korrektur empfohlenen Maßnahmen aufgeführt und beschrieben:
Weisen Sie den Benutzer an/fordern Sie ihn auf, sich explizit unter Einstellungen > TV-Anbieter unter iOS/iPadOS abzumelden.
Melden Sie sich explizit unter Einstellungen -> TV Provider unter iOS/iPadOS ab.
- Wenden Sie sich an Adobe, um die Domain-Whitelist für die verwendete Anforderer-ID zu verwalten.
- iOS: Überprüfen Sie, ob Sie das richtige Zertifikat verwenden und ob die Signatur ordnungsgemäß erstellt wurde.
- Optional können Sie den Benutzer darüber informieren, dass er sich erneut anmelden muss.
[https://]{SP_FQDN\}
im Browser verwenden und die SSL-Zertifikate manuell akzeptieren, beispielsweise https://api.auth.adobe.com oder https://api.auth-staging.adobe.com- Markieren Sie die Proxy-Zertifikate als vertrauenswürdig.
Ergreifen Sie Maßnahmen, um Berechtigungsflüsse zu verhindern, da sie wahrscheinlich fehlschlagen werden.
- Der Entwickler verfügt über einen ungültigen Spoofing.
-Der Benutzer hat Netzwerkprobleme und kann die Adobe Pass-Authentifizierungsdomänen nicht erreichen.
-Adobe Pass-Authentifizierungsserver sind falsch konfiguriert.
Hinweis: Unter Firefox wird CFG400 anstelle von CFG404 angezeigt (Browserbeschränkung).
- Überprüfen Sie die Netzwerk-/DNS-Einstellungen.
-Inform Adobe.
- Adobe Pass-Authentifizierung umgehen.
- Inform Adobe.
- Optional können Sie eine Liste der regulären MVPDs präsentieren.
- eine Liste der regulären MVPDs präsentieren.
- Blendet die Option "TempPass"aus.
1. In Browser sind (Drittanbieter-) Cookies deaktiviert (nicht für AccessEnabler JavaScript SDK Version 4.x verfügbar).
2. Für den Browser ist die Option Prevent cross-site tracking aktiviert (Safari 11+).
3. Sitzung ist abgelaufen
4. Programmierer ruft Authentifizierungs-APIs in falscher Folge auf
HINWEIS: Dieser Fehlercode ist nicht für die Vollseitenumleitungs-Authentifizierungsflüsse verfügbar.
2. Benutzer dazu anregen, siteübergreifendes Tracking zu deaktivieren
3. Benutzer zur erneuten Authentifizierung auffordern
4. APIs in der richtigen Reihenfolge aufrufen
2. Site-übergreifendes Tracking deaktivieren
3. Neu authentifizieren
4. Nicht zutreffend
Hinweis: Dies ist der ursprüngliche Fehlersystemfehler "Generischer Authentifizierungsfehler"und "Interner Authentifizierungsfehler". Dieser Fehler wird schließlich auslaufen.
Hinweis: Dies ist ein nicht behebbarer Fehler. Informieren Sie den Benutzer darüber, dass die Anwendung nicht verfügbar ist.
- JavaScript: Überprüfen Sie die Softwareanweisung in Ihrer Website-Anwendung.
Öffnen Sie ein Ticket mit Zendesk und teilen Sie dem Benutzer mit, dass das System vorübergehend nicht verfügbar ist.
Hinweis: Dies ist ein nicht behebbarer Fehler. Informieren Sie den Benutzer darüber, dass die Anwendung nicht verfügbar ist.
- JavaScript: Überprüfen Sie die Softwareanweisung in Ihrer Website-Anwendung.
Öffnen Sie ein Ticket mit Zendesk und teilen Sie dem Benutzer mit, dass das System vorübergehend nicht verfügbar ist.
Hinweis: Dies ist ein nicht behebbarer Fehler. Informieren Sie den Benutzer darüber, dass die Anwendung nicht verfügbar ist.
- Informieren Sie den Benutzer.
- Der 'message'-Schlüssel in der Fehlermeldung kann eine detailliertere Nachricht vom MVPD enthalten.
- Informieren Sie den Benutzer.
- Informieren Sie den Benutzer darüber, dass der MVPD Schwierigkeiten hatte und er es später versuchen sollte.
Hinweis: Dies ist die alte "Generischer Authentifizierungsfehler"und "Interner Authentifizierungsfehler". Dieser Fehler wird schließlich auslaufen.
- Wenden Sie sich an den Adobe Pass-Authentifizierungssupport, um die maximale Anzahl der zulässigen Ressourcen zu finden/einzurichten.
Authentifizierung/Autorisierung bleibt nicht über die aktuelle Seite hinaus bestehen! Jeder Seitenladevorgang führt dazu, dass sich der Benutzer authentifizieren muss. Konfigurierte TTLs werden nicht über Seitenneuladungen hinweg erzwungen.
- Informieren Sie den Benutzer darüber, wie der verfügbare Speicherplatz erhöht werden kann.
- Alternativ zur Abmeldung, um den Speicher zu löschen.
- Melden Sie sich ab, um den Speicher zu löschen.
Ursprüngliche Fehlerberichte original-error-reporting
In diesem Abschnitt wird das ursprüngliche Fehlermeldesystem zusammen mit den ursprünglichen Fehlercodes beschrieben. Im ursprünglichen Fehlermeldesystem übergibt der AccessEnabler Fehler an diese beiden Callback-Funktionen: setAuthenticationStatus()
nach einem Aufruf von checkAuthentication()
; tokenRequestFailed()
, nachdem ein -Aufruf an checkAuthorization()
oder getAuthorization()
.
Die ursprünglichen Fehler-Berichte und Status-APIs funktionieren weiterhin genau wie zuvor. Die ursprünglichen Fehler-Reporting-APIs werden jedoch in Zukunft nicht aktualisiert. Alle neuen Fehlerberichte und Aktualisierungen zu den alten Fehlern werden NUR in der neuen Erweitertes Fehlermeldungssystem.
Beispiele für die Verwendung des ursprünglichen Fehlermeldesystems finden Sie unter JavaScript-API-Referenz:setAuthenticationStatus() und tokenRequestFailed() Funktionen, iOS/tvOS-API-Referenz: setAuthenticationStatus()und tokentRequestFailed(), Android-API-Referenz: setAuthenticationStatus() und tokenRequestFailed().