Flux d’octroi du code d’autorisation OAuth

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 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 approuve 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 visibles par le 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 du code d’autorisation.

    L’utilisateur qui possè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’octroi de code d’autorisation se compose des trois étapes suivantes :

    À la première étape, l’application ou le site Web client 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 initié 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 de jeton, l’ID client et le secret client. Pour obtenir des explications sur ces éléments, consultez les descriptions de champ 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 client à l’instance :
    https://myinstance.service-now.com/oauth_auth.do?response_type=code&redirect_uri={the_redirect_url}&client_id={the_client_identifier}
    Remarque :
    La response_type doit être codée 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 . Reportez-vous aux instructions.

    L’élément auquel l’application cliente demande réellement le jeton est l’enregistrement du 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 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 ou du site Web client.

    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, elle utilise le code pour demander le jeton d’accès. Le code d’autorisation prouve que l’utilisateur a donné son consentement à l’étape 1.

    Exemple de demande POST de l’application client 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 subventions implicites OAuth, également connues sous le nom de flux de code d’attribution implicite.

    Aide à 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
    • SAML 2.0 Mise à jour 1
    • Authentification multifacteur

    L’interface mobile est également prise en charge.