Workflow d’octroi de code d’autorisation

  • Rversion finale: Australia
  • Mis à jour 16 juin 2026
  • 6 minutes de lecture
  • ServiceNow® gère à la fois l’authentification et l’accès à l’API en agissant en tant que serveur d’autorisation et de ressources. Lorsque l’authentification unique (SSO) est activée, elle redirige les utilisateurs vers l’IdP configuré pour l’authentification et émet des jetons après la connexion.

    Avant de commencer

    Rôle requis : oauth_admin, mi_admin, admin

    Pourquoi et quand exécuter cette tâche

    Cette collection de rubriques fournit des informations sur la façon dont ServiceNow gère l’authentification et l’accès à l’API lorsqu’ils agissent à la fois en tant que serveur d’autorisation et en tant que serveur de ressources. Il décrit le comportement lorsque SSO est activé, y compris la redirection vers le fournisseur d’identité (IdP) pour l’authentification utilisateur et l’émission d’un code ServiceNow d’autorisation après authentification réussie. L’utilisation du code d’autorisation garantit que ServiceNow vous conserve le contrôle sur l’émission des jetons et l’accès aux ressources protégées.

    Figure 1. Workflow d’autorisation
    Workflow d’autorisation

    Procédure

    1. Connectez-vous à partir de l’application cliente.

      L’utilisateur commence le processus de connexion à partir de l’interface de l’application cliente.

    2. Lancez la demande d’autorisation.
      Le client redirige l’utilisateur vers ServiceNow le point de terminaison d’autorisation pour initier la demande d’autorisation. La demande d’autorisation peut être initiée en incluant le secret client ou la contestation de code PKCE dans le corps de la demande, en fonction du type de client (privé ou public). Dans le corps de la demande d’autorisation, incluez le secret client pour les clients privés et PKCE Code Challenge pour les clients publics.
      Pour les clients privés
      Incluez le secret client dans le corps de la demande, lors de l’initiation de la demande de jeton pour les clients privés. Suivez la procédure pour initier la demande d’autorisation à l’aide du secret client pour les clients privés.
      Effectuez une demande GET au point de terminaison d’autorisation avec les paramètres suivants :
      Method: GET
      Endpoint: https://<servicenow_base_url>/oauth_auth.do
      Tableau 1. Paramètres de demande d’autorisation (secret du client privé)
      Paramètre Obligatoire Description
      response_type Oui Définissez la valeur sur code pour lancer le flux de code d’autorisation.
      client_id Oui L’identificateur unique pour votre application cliente.

      Format : YOUR_CLIENT_ID

      redirect_uri Oui L’URI auquel ServiceNow envoie le code d’autorisation.

      Exemple : https://yourapp.com/callback

      périmètre Oui Une liste de champs d’application demandés séparés par des espaces.

      Exemple : incident_read incident_write.

      État Oui Valeur générée par le client et utilisée pour éviter les attaques de contrefaçon de requête intersite (CSRF). La valeur est renvoyée inchangée dans l’URI de redirection, ce qui permet au client de la valider
      Pour les clients publics
      Incluez le PKCE Code Challenge dans le corps de la demande, lors du lancement de la demande de jeton pour les clients publics. Suivez la procédure pour initier la demande d’autorisation à l’aide du Défi de code PKCE pour les clients publics.
      Effectuez une demande GET au point de terminaison d’autorisation avec les paramètres suivants :
      Method: GET
      Endpoint: https://<servicenow_base_url>/oauth_auth.do
      Tableau 2. Paramètres de demande d’autorisation (Client public : PKCE)
      Paramètre Obligatoire Description
      response_type Oui Définissez la valeur sur code pour lancer le flux de code d’autorisation.
      client_id Oui L’identificateur unique pour votre application cliente.

      Format : YOUR_CLIENT_ID

      redirect_uri Oui L’URI auquel ServiceNow envoie le code d’autorisation.

      Exemple : https://yourapp.com/callback

      code_challenge Oui Hachage SHA-256 encodé en base64url du vérificateur de code. Ceci est utilisé dans le cadre du flux PKCE.
      code_challenge_method Oui Spécifie la méthode de transformation utilisée pour le test de code. Réglez sur S256.
      périmètre Oui Une liste de champs d’application demandés séparés par des espaces.

      Exemple : incident_read incident_write.

      État Oui Une valeur générée par le client utilisée pour éviter les attaques CSRF. La valeur est renvoyée inchangée dans l’URI de redirection, ce qui permet au client de la valider.
      Remarque :
      À partir de la version Madrid, la propriété système glide.oauth.state.parameter.required rend obligatoire l’utilisation du paramètre state dans les demandes OAuth. La propriété d’état est définie sur vrai par défaut dans les nouvelles instances et est facultative dans les instances mises à niveau. En cas de paramètre d’état manquant, la demande d’autorisation échoue et l’erreur suivante s’affiche : Paramètre d’état manquant dans la demande.
    3. Accordez le consentement d’accès à l’application cliente.
      Accédez à la page de connexion (ou à l’IdP ServiceNow , si SSO est activé) et donnez votre consentement d’accès à l’application cliente.
    4. ServiceNow (ou IdP, si SSO est activé) valide les informations d’identification et ServiceNow renvoie un code d’autorisation au client.
      Une fois l’authentification réussie, le navigateur est redirigé vers le redirect_uri et le code d’autorisation est inclus dans la chaîne de requête :
      https://yourapp.com/callback?code=AUTH_CODE&state=xyz123
      
    5. Le client échange le code d’autorisation contre un jeton d’accès (et un jeton d’actualisation, s’il s’agit d’un client privé) en appelant le point de terminaison de jeton de ServiceNow.
      Le code d’autorisation pour le jeton d’accès peut être initié en incluant le secret client ou la contestation de code PKCE dans le corps de la demande, en fonction du type de client (privé ou public). Dans le corps de la demande de jeton, incluez Secret client pour les clients privés et PKCE Code Challenge pour les clients publics.
      Pour les clients privés
      Incluez le secret client dans le corps de la demande, lors de l’initiation de la demande de jeton pour les clients privés. Suivez la procédure pour lancer la demande de jeton à l’aide du Secret client pour les clients privés.
      Dans le cas de clients privés, le client envoie une demande POST au point de terminaison du jeton avec les paramètres suivants :
      
      Method: POST 
      Endpoint: https://<servicenow_base_url>/oauth_token.do   
      Headers: Content-Type: application/x-www-form-urlencoded
      Tableau 3. Paramètres de demande de jeton (client privé : secret client)
      Paramètre Obligatoire Description
      grant_type Oui Définissez la valeur sur authorization_code pour échanger le code contre un jeton.
      code Oui Le code d’autorisation reçu du point de terminaison d’autorisation.
      redirect_uri Oui L’URI utilisé dans la demande d’autorisation initiale.

      Exemple : https://yourapp.com/callback

      client_id Oui L’identificateur unique pour votre application cliente.
      client_secret Oui Clé secrète du client utilisée pour s’authentifier avec le point de terminaison de jeton.
      État Oui Une valeur générée par le client utilisée pour aider à prévenir les attaques CSRF. La valeur est renvoyée inchangée dans l’URI de redirection, ce qui permet au client de la valider.
      Pour les clients publics
      Incluez le PKCE Code Challenge dans le corps de la demande, lors du lancement de la demande de jeton pour les clients publics. Suivez la procédure pour initier la demande d’autorisation à l’aide du Défi de code PKCE pour les clients publics.
      Le client envoie une demande POST au point de terminaison de jeton avec les paramètres suivants :
      
      Method: POST  
      Endpoint: https://<servicenow_base_url>/oauth_token.do  
      Headers: Content-Type: application/x-www-form-urlencoded
      Tableau 4. Paramètres de demande de jeton (Client public-PKCE)
      Paramètre Obligatoire Description
      grant_type Oui Définissez la valeur sur authorization_code pour échanger le code contre un jeton.
      code Oui Le code d’autorisation reçu du point de terminaison d’autorisation.
      redirect_uri Oui L’URI utilisé dans la demande d’autorisation initiale.

      Exemple : https://yourapp.com/callback

      client_id Oui L’identificateur unique pour votre application cliente.
      code_verifier Oui Chaîne d’origine utilisée pour générer le code_challenge PKCE.
      État Oui Une valeur générée par le client utilisée pour aider à prévenir les attaques CSRF. La valeur est renvoyée inchangée dans l’URI de redirection, ce qui permet au client de la valider.
    6. Accéder aux API avec le jeton d’accès ServiceNow .
      Exemple :
      Effectuez une demande GET auprès des API à l’aide du jeton d’accès. Incluez le jeton d’accès dans l’en-tête d’autorisation .
      Method: GET
      End Point: https://<servicenow_base_url>/api/now/incident  
      Authorization: Bearer YOUR_ACCESS_TOKEN
    7. Renouvelez le jeton d’accès s’il a expiré.
      Effectuez une demande POST pour actualiser le jeton d’accès (clients privés uniquement) avec les paramètres suivants :
      
      Method: POST  
      Endpoint: https://<servicenow_base_url>/oauth_token.do  
      Headers: Content-Type: application/x-www-form-urlencoded
      Tableau 5. Paramètres de demande de jeton d’actualisation (client privé)
      Paramètre Obligatoire Description
      grant_type Oui Définissez la valeur sur refresh_token pour demander un nouveau jeton d’accès.
      refresh_token Oui Le jeton d’actualisation précédemment émis par le point de terminaison de jeton.
      client_id Oui L’identificateur unique pour votre application cliente.
      client_secret Oui Clé secrète du client utilisée pour s’authentifier avec le point de terminaison de jeton.