Codes de statut HTTP pour l'authentification et l'API d'authentification multifacteur sur demande

Les API d'authentification et d'authentification multifacteur sur demande pour les domaines d'identité dans IAM sont conformes aux normes REST et utilisent des codes de statut de réponse HTTP standard pour indiquer un échec.

Le tableau ci-dessous décrit les différents codes de statut et les cas d'utilisation dans lesquels ces codes de statut sont envoyés.

Voir la section Définitions de code de statut du protocole de transfert hypertexte -- HTTP/1.1.

Code de statut HTTP

Cas d'utilisation

Exemple de corps de réponse JSON

400 Bad Request

Ce code indique une mauvaise demande. Ce code est envoyé si un attribut est fourni avec une valeur non valide dans les données utiles, ce qui signifie des problèmes de syntaxe.

{
    "status": "failed",
    "ecid": "Suwmo0F0000000000",
    "cause":
            [
                {
                    "message": "Invalid value [EMAILS] for attribute authFactor. One of [USERNAME_PASSWORD,PUSH,TOTP,EMAIL,SMS,BYPASSCODE, SECURITY_QUESTIONS] was expected.",
                    "code": "AUTH-1111"
                }
            ],
    "requestState": "bnJ7Qkz2Vff0RNuxwcJQwnaQFA"
}
401 Unauthorized

Ce code indique un accès non autorisé. Utilisé lorsque requestState n'est pas valide ou a expiré, ou lorsque l'ID de otpCode fourni lors de l'authentification n'est pas valide.

{
    "status": "failed",
    "ecid": "3YkZh1H0000000000",
    "cause":
            [
                {
                    "message": "You entered an incorrect username or password.",
                    "code": "AUTH-3001"
                }
            ],
    "requestState": "b0EYFnXpo"
}
422

Ce code est utilisé lorsque la demande est syntaxiquement correcte, mais sémantiquement incorrecte. 422 signifie que la demande est une entité impossible à traiter. Par exemple, lorsque l'attribut op est manquant dans la demande, ce qui est obligatoire pour une action donnée.

{
    "status": "failed",
    "ecid": "KIN^r0J0000000000",
    "nextOp": ["credSubmit"],
    "cause":
            [
                {
                    "message": "Your input request is missing the op attribute, which is mandatory.",
                    "code": "AUTH-1111"
                }
            ],
    "requestState": "b0EYFnLpFWEihmJ6btqTXpo",
    "USERNAME_PASSWORD":
            {
                "credentials": ["username", "password"]
            },
    "nextAuthFactors": ["USERNAME_PASSWORD"]
}
500 Internal Server Error

Ce code indique une erreur interne du serveur. Lorsque cette erreur se produit, la réponse contient ecId et la cause afin que le client puisse communiquer avec l'administrateur pour plus de détails.