Flux d’octroi de code d’autorisation OAuth

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 3 minutes de lecture
  • Le flux d’octroi de 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 des informations d’identification de 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 plutôt que de demander à l’utilisateur de saisir un nom d’utilisateur/mot de passe. Le nom d’utilisateur et le mot de passe ne sont jamais exposés 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 de code d’autorisation

    Le processus de flux d’attribution du code d’autorisation se compose de ces trois étapes :

    À la première étape, l’application cliente ou le site web lance un appel d’API REST sous la forme d’une requête 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 cliente ou le site Web pour demander un jeton d’accès. Dans l’application cliente, l’utilisateur final doit également spécifier l’URL d’autorisation, l’URL du jeton, l’ID client et la clé secrète du client. Pour obtenir des explications sur ces éléments, reportez-vous à la description 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 du code pour utiliser le flux d’attribution de code OAuth standard.
    L’utilisateur final doit manuellement autoriser 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 auquel l’application cliente demande en fait le jeton est l’enregistrement de registre d’application du fournisseur OAuth que vous avez créé, également connu sous le nom de 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 dans 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 vers 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 sur l’instance renvoie un jeton d’accès et un jeton d’actualisation. Le jeton d’actualisation peut être utilisé pour demander des jetons d’accès supplémentaires.

    Vous pouvez gérer les jetons, y compris révoquer le jeton, dans l’instance. Reportez-vous à la section 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 des données de 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 concessions implicites OAuth, également connues sous le nom de flux de code d’attribution implicite.

    Prise en charge de l’intégration

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

    L’interface mobile est également prise en charge.