Codes d’erreur améliorés
- Rubriques :
- Authentification
Les codes d’erreur améliorés représentent une fonctionnalité d’authentification d’Adobe Pass qui fournit des informations d’erreur supplémentaires aux applications clientes intégrées à :
-
API REST d'authentification Adobe Pass :
-
API de préautorisation des SDK d’authentification Adobe Pass :
- SDK JavaScript (hérité) (API de préautorisation)
- SDK iOS/tvOS (hérité) (API de préautorisation)
- (Hérité) Android SDK (API de préautorisation)
(*) L’API Preauthorize est la est la seule API SDK d’authentification Adobe Pass qui prend en charge les codes d’erreur améliorés
Représentation
Les codes d’erreur améliorés peuvent être représentés au format JSON
ou XML
selon l’API d’authentification Adobe Pass intégrée et la valeur de l’en-tête « Accept » utilisée (c’est-à-dire application/json
ou application/xml
) :
- Informations sur l’erreur de niveau supérieur : dans ce cas, l’objet « error » se trouve au niveau supérieur, par conséquent le corps de la réponse ne peut contenir que l’objet « error ».
- Informations sur l’erreur au niveau de l’élément : dans ce cas, l’objet « error » se trouve au niveau de l’élément. Par conséquent, le corps de la réponse peut contenir un objet « error » pour tous les éléments qui ont rencontré une erreur lors de la maintenance.
API REST v2
Reportez-vous aux réponses HTTP suivantes contenant des exemples de codes d’erreur améliorés représentés comme JSON
applicables pour l’API REST v2.
HTTP/1.1 200 OK
Content-Type: application/json
{
"decisions": [
{
"resource": "REF30",
"serviceProvider": "REF30",
"mvpd": "Cablevision",
"source": "mvpd",
"authorized": true,
"token": {
"issuedAt": 1697094207324,
"notBefore": 1697094207324,
"notAfter": 1697094802367,
"serializedToken": "PHNpZ25hdHVyZUluZm8..."
}
},
{
"resource": "REF40",
"serviceProvider": "REF40",
"mvpd": "Cablevision",
"source": "mvpd",
"authorized": false,
"error" : {
"action": "none",
"status": 403,
"code": "authorization_denied_by_mvpd",
"message": "The MVPD has returned a \"Deny\" decision when requesting authorization for the specified resource",
"details": "Your subscription package does not include the \"Live\" channel",
"helpUrl": "https://experienceleague.adobe.com/docs/pass/authentication/auth-features/error-reportn/enhanced-error-codes.html?lang=fr",
"trace": "12f6fef9-d2e0-422b-a9d7-60d799abe353"
}
}
]
}
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"action": "none",
"status": 400,
"code": "invalid_parameter_service_provider",
"message": "The service provider parameter value is missing or invalid.",
"helpUrl": "https://experienceleague.adobe.com/docs/pass/authentication/auth-features/error-reportn/enhanced-error-codes.html?lang=fr",
"trace": "12f6fef9-d2e0-422b-a9d7-60d799abe353"
}
API REST v1
Reportez-vous aux réponses HTTP suivantes contenant des exemples de codes d’erreur améliorés représentés sous la forme JSON
ou XML
applicables pour l’API REST v1.
HTTP/1.1 200 OK
Content-Type: application/json
{
"resources": [
{
"id": "TestStream1",
"authorized": true
},
{
"id": "TestStream2",
"authorized": false,
"error": {
"action": "none",
"status": 403,
"code": "authorization_denied_by_mvpd",
"message": "The MVPD has returned a \"Deny\" decision when requesting authorization for the specified resource",
"details": "Your subscription package does not include the \"Live\" channel",
"helpUrl": "https://experienceleague.adobe.com/docs/pass/authentication/auth-features/error-reportn/enhanced-error-codes.html?lang=fr",
"trace": "12f6fef9-d2e0-422b-a9d7-60d799abe353"
}
}
]
}
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"action": "none",
"status": 400,
"code": "invalid_requestor",
"message": "The requestor parameter is missing or invalid.",
"helpUrl": "https://experienceleague.adobe.com/docs/pass/authentication/auth-features/error-reportn/enhanced-error-codes.html?lang=fr",
"trace": "8bcb17f9-b172-47d2-86d9-3eb146eba85e"
}
HTTP/1.1 400 Bad Request
Content-Type: application/xml
<error>
<action>none</action>
<status>400</status>
<code>invalid_requestor</code>
<message>The requestor parameter is missing or invalid.</message>
<helpUrl>https://experienceleague.adobe.com/docs/pass/authentication/auth-features/error-reportn/enhanced-error-codes.html?lang=fr</helpUrl>
<trace>8bcb17f9-b172-47d2-86d9-3eb146eba85e</trace>
</error>
Structure
Les codes d’erreur améliorés incluent les champs de JSON
ou les attributs de XML
suivants avec des exemples :
Pour plus d’informations, consultez la section Action.
Pour plus d’informations, consultez la section Code.
Pour plus d'informations, consultez la section Gestion des réponses.
Ce champ peut ne pas être présent si le partenaire de services ne fournit pas de message personnalisé.
Ce champ contient une URL absolue et ne doit pas être déduit du code d’erreur. Selon le contexte d’erreur, une autre URL peut être fournie.
Action
Les codes d’erreur améliorés incluent un champ « action » qui fournit une action recommandée qui peut remédier à la situation.
Les valeurs possibles du champ « action » sont les suivantes :
(*) Pour certaines erreurs, plusieurs actions peuvent être des solutions possibles, mais le champ « action » indique celle qui a la plus forte probabilité de corriger l'erreur.
Etat
Les codes d’erreur améliorés incluent un champ « statut » qui indique le code d’état HTTP associé à l’erreur.
Les valeurs possibles pour le champ « statut » sont les suivantes :
Les codes d’erreur améliorés avec un « statut » 4xx apparaissent généralement lorsque l’erreur est générée par le client et, la plupart du temps, cela implique que le client a besoin d’un travail supplémentaire pour la corriger.
Les codes d’erreur améliorés avec un « statut » 5xx apparaissent généralement lorsque l’erreur est générée par le serveur et, la plupart du temps, cela implique que le serveur nécessite davantage de travail pour la corriger.
Code
Les codes d’erreur améliorés incluent un champ « code » qui fournit un identifiant unique d’authentification Adobe Pass associé à l’erreur.
Les valeurs possibles du champ « code » sont agrégées ci-dessous dans deux listes basées sur l’API d’authentification Adobe Pass intégrée.
Listes
API REST v2
Le tableau ci-dessous répertorie les codes d’erreur améliorés qu’une application cliente peut rencontrer lors de son intégration à l’API REST d’authentification Adobe Pass v2.
API REST v1
Le tableau ci-dessous répertorie les codes d’erreur améliorés qu’une application cliente peut rencontrer lors de son intégration à l’API REST d’authentification Adobe Pass v1.
API de préautorisation des SDK
Reportez-vous à la section précédente pour connaître les codes d’erreur améliorés qu’une application cliente peut rencontrer lors de son intégration avec l’API de préautorisation des SDK d’authentification Adobe Pass.
Gestion des réponses
En résumé, lors de la gestion des réponses contenant des codes d’erreur améliorés, tenez compte des points suivants :
-
Vérifier les deux valeurs de statut : toujours vérifier le code de statut de la réponse HTTP et le champ « statut » du code d’erreur amélioré. Elles peuvent être différentes et toutes deux fournissent des informations précieuses.
-
Indépendance par rapport aux informations d’erreur de niveau supérieur et au niveau de l’élément : gérez les informations d’erreur de niveau supérieur et au niveau de l’élément indépendamment de la manière dont elles sont communiquées, assurez-vous de pouvoir gérer les deux formes de transmission des codes d’erreur améliorés.
-
Logique de reprise : pour les erreurs qui nécessitent une reprise, assurez-vous que les reprises sont effectuées avec une exponentielle backoff pour éviter de surcharger le serveur. En outre, dans le cas des API d’authentification Adobe Pass qui gèrent plusieurs éléments à la fois (par exemple, l’API de préautorisation), vous devez inclure dans la demande répétée uniquement les éléments marqués avec « réessayer » et non la liste entière.
-
Modifications de configuration : pour les erreurs qui nécessitent des modifications de configuration, assurez-vous que les modifications nécessaires sont effectuées avant de lancer la nouvelle application ou la nouvelle fonctionnalité.
-
Authentification et autorisation : en cas d’erreurs liées à l’authentification et à l’autorisation, vous devez inviter l’utilisateur à s’authentifier à nouveau ou à obtenir une nouvelle autorisation, si nécessaire.
-
Commentaires de l’utilisateur : facultatif, utilisez les champs « message » et (potentiel) « détails » lisibles par l’utilisateur ou l’utilisatrice pour l’informer du problème. Le message texte « détails » peut être transmis à partir des points d’entrée de préautorisation ou d’autorisation MVPD ou du programmeur lors de l’application des règles de dégradation.