Flux d’octroi du code d’autorisation OAuth

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 3 minutes de lecture
  • Le flux d’attribution du code d’autorisation permet à un utilisateur d’accéder à une ressource en s’authentifiant directement auprès d’un serveur OAuth qui fait confiance à la ressource, contrairement à l’authentification avec les informations d’identification nom d’utilisateur/mot de passe.

    Cette implémentation du flux de code d’autorisation OAuth permet d’accéder à une ressource via REST. Le cadre de travail du code d’autorisation obtient le jeton d’accès via l’URL autorisée que l’utilisateur configure au lieu de lui demander de saisir un nom d’utilisateur/mot de passe. Le nom d’utilisateur/mot de passe n’est jamais exposé au client qui demande l’accès à la ressource.

    Une ServiceNow instance en tant que serveur d’autorisation

    Le serveur OAuth est généralement un serveur d’autorisation tiers. Vous pouvez également spécifier une ServiceNow instance en tant que serveur d’autorisation qui émet les jetons pour le flux de code d’autorisation.

    L’utilisateur propriétaire de la ressource restreinte doit autoriser l’accès. L’utilisateur peut également révoquer le jeton d’accès émis à tout moment pour mettre fin à l’accès.

    Processus de flux d’octroi du code d’autorisation

    Le processus de flux d’octroi du code d’autorisation comprend les trois étapes suivantes :

    Dans la première étape, l’application cliente ou le site Web lance un appel d’API REST sous la forme d’une demande GET à l’instance via l’agent utilisateur. En règle générale, l’appel REST est lancé lorsque l’utilisateur final clique sur un bouton ou un lien sur l’application ou le site Web du client pour demander un jeton d’accès. Dans l’application cliente, l’utilisateur final doit également spécifier l’URL d’autorisation, l’URL de jeton, l’ID client et la clé secrète client. Pour obtenir une explication de ces éléments, consultez les descriptions des champs dans cette rubrique : Utiliser un fournisseur OAuth tiers. Si le client demande un type d’accord, l’utilisateur final doit sélectionner Code d’autorisation.

    Exemple de demande GET de l’application cliente vers l’instance :
    https://myinstance.service-now.com/oauth_auth.do?response_type=code&redirect_uri={the_redirect_url}&client_id={the_client_identifier}
    Remarque :
    Le response_type doit être un code pour utiliser le flux d’octroi de code OAuth standard.
    L’utilisateur final doit autoriser manuellement l’accès à la ressource restreinte sur l’instance. Dans l’implémentation ServiceNow , l’utilisateur final doit être connecté à l’instance. L’instance invite l’utilisateur final avec une page d’interface utilisateur comportant des boutons Autoriser et Refuser .

    L’élément auprès duquel l’application cliente demande réellement le jeton est l’enregistrement de registre d’application du fournisseur OAuth que vous avez créé, également appelé point de terminaison d’autorisation (voir Utiliser un fournisseur OAuth tiers). Le code d’authentification est envoyé du point de terminaison d’autorisation au client. Il ne va pas directement au client, mais à l’URL de redirection que vous spécifiez sur le formulaire de point de terminaison d’autorisation. Cette URL est également connue sous le nom d’URL de rappel. Vous pouvez obtenir cette URL à partir de l’application cliente ou du site Web.

    Exemple de réponse de l’instance à l’application cliente, fournissant un code d’autorisation :
    https/http://{callbackURL}?code={the actual auth code}

    Maintenant que l’application cliente dispose du code d’autorisation, le client utilise le code pour demander le jeton d’accès. Le code d’autorisation prouve que l’utilisateur a consenti à l’étape 1.

    Exemple de demande POST de l’application cliente à l’instance ServiceNow qui fournit le code d’authentification et demande le jeton d’accès :
    https://myinstance.service-now.com/oauth_token.do?grant_type=authorization_code&code={the auth code}&redirect_uri={the_same_redirect_url}&client_id={the_same_client_identifier}&client_secret={client_secret_value}

    Le point de terminaison de l’instance renvoie un jeton d’accès et un jeton de rafraîchissement. Le jeton d’actualisation peut être utilisé pour demander des jetons d’accès supplémentaires.

    Vous pouvez gérer les jetons, y compris la révocation des jetons, dans l’instance. Consultez Gérer les jetons OAuth.

    L’application cliente utilise le jeton d’accès pour s’authentifier auprès de l’API REST. Après avoir authentifié l’application cliente, l’API REST renvoie les données demandées dans une charge utile JSON.

    Exemple de demande GET pour la charge utile JSON de données pour la table Incident [incident] :
    https://myinstance.service-now.com/api/now/table/incident?access_token={the_token}
    Remarque :
    Le système prend également en charge les octrois implicites OAuth, également appelés flux de code d’octet implicite.

    Assistance à l’intégration

    Le flux de code d’autorisation prend en charge les intégrations suivantes sur l’instance :
    • Authentification unique (SSO) de plusieurs fournisseurs
    • Mise à jour SAML 2.0 1
    • Authentification multifacteur

    L’interface mobile est également prise en charge.