Sécurité

Il s'agit des composants disponibles dans la catégorie Sécurité de l'éditeur de flux de dialogue basé sur YAML.

System.OAuth2Client

Remarque

Cette rubrique traite de l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur visuel de flux, reportez-vous à Client OAuth 2.0.

Utilisez ce composant pour obtenir un jeton d'accès OAuth2 de type d'octroi Informations d'identification client. En d'autres termes, vous l'utilisez pour obtenir un jeton d'accès basé sur les informations d'identification du client, mais pas sur son nom ni sur son mot de passe. Vous pouvez utiliser ce composant pour obtenir un jeton qui permet d'accéder aux ressources client protégées par Oracle Identity Cloud Service ou Oracle Access Manager (OAM).

Si vous devez accéder aux ressources pour le compte d'un utilisateur, reportez-vous à System.OAuth2AccountLink et à System.OAuthAccountLink.

Pour pouvoir utiliser ce composant dans une brique, vous devez effectuer les tâches suivantes :

  1. S'il n'est pas déjà inscrit, inscrivez le client auprès du fournisseur d'identités, comme décrit dans Inscription de fournisseur d'identités.
  2. Ajoutez un service d'authentification d'informations d'identification client pour le fournisseur d'identités, comme décrit dans Services d'authentification.
Propriété Description Requis ?
authenticationService Nom du service d'informations d'identification client créé dans l'interface utilisateur des services d'authentification du fournisseur d'identités OAuth2. Oui
accessTokenVariableName Spécifie la variable dans laquelle stocker le jeton d'accès. Vous pouvez la déclarer dans le noeud context en tant que variable, chaîne ou autre type de variable pris en charge. Il peut également s'agir d'une variable de niveau utilisateur. Par exemple : user.accessToken. Oui

Ce composant n'a aucune action. Pour gérer les problèmes système susceptibles de se produire, ajoutez une transition "next" qui passe à un état permettant de gérer ces erreurs.

Voici un exemple d'état utilisant ce composant :

  getAccessToken:
    component: "System.OAuth2Client"
    properties:
      authenticationService: "myAuthenticationService"
      accessTokenVariableName: "myAuthServiceToken"
    transitions:
      next: "next"
      error: "error" # handle auth service issues

System.OAuth2AccountLink

Remarque

Cette rubrique traite de l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur visuel de flux, reportez-vous à OAuth 2.0 Account Link.

Utilisez ce composant afin d'obtenir un jeton d'accès utilisateur OAuth2 (de type d'octroi Code d'autorisation) pour les ressources sécurisées par OCI IAM, Oracle Access Manager (OAM), la plate-forme d'identité Microsoft ou l'autorisation Google OAuth 2.0. Ce composant effectue toutes les étapes pour le flux OAuth2 à 3 acteurs et renvoie le jeton d'accès OAuth2.

Vous pouvez utiliser le paramètre requiresAuthorization afin d'indiquer les états nécessitant une autorisation pour être appelés. Pour les états nécessitant une autorisation, si l'utilisateur n'en dispose pas encore, l'état System.OAuth2AccountLink est appelé, puis le flux appelle l'état nécessitant une autorisation. Pour découvrir comment utiliser cette fonctionnalité, reportez-vous à Autorisation utilisateur dans les discussions de groupe (fonctionne pour tous les types de discussion, pas uniquement pour les discussions de groupe).

Si vous devez obtenir un jeton d'accès de type Informations d'identification client pour accéder aux ressources client, reportez-vous à System.OAuth2Client.

Pour pouvoir utiliser ce composant dans une brique, vous devez effectuer les tâches suivantes :

  1. S'il n'a pas déjà été inscrit, inscrivez le client auprès du fournisseur d'identités, comme décrit dans Inscription de fournisseur d'identités.
  2. Ajoutez un service d'authentification pour le fournisseur d'identités, comme décrit dans Services d'authentification.

Certains fournisseurs d'identités émettent des jetons d'actualisation. Lorsque vous utilisez ce composant, Digital Assistant stocke le jeton d'actualisation pendant la durée de conservation spécifiée pour le service d'authentification. Le back-end Digital Assistant peut utiliser le jeton d'actualisation, s'il est disponible, pour obtenir un nouveau jeton d'accès sans nécessiter de nouvelle connexion de la part de l'utilisateur.

Conseil :

Dans les briques avec les versions 21.04 et ultérieures de la plate-forme, les valeurs par défaut des propriétés cancelLabel, linkLabel et prompt sont stockées dans le groupe de ressources de la brique. Pour modifier une valeur par défaut, ouvrez la page Groupe de ressources de la brique, cliquez sur Icône Groupes de ressources, sélectionnez l'onglet Configuration et modifiez le message de la clé OAuth2AccountLink - <nom de propriété>. Si vous utilisez le groupe de ressources de la brique pour modifier la valeur par défaut, vous n'avez pas besoin d'inclure la propriété dans le composant, sauf si vous voulez remplacer la valeur par défaut.

Vous pouvez également modifier les messages Autre - oauthCancelPrompt et Autre - oauthSuccessPrompt dans le groupe de configuration.

Propriété Description Requis ?
accessTokenVariableName Spécifie la variable dans laquelle stocker le jeton d'accès. S'il s'agit d'une variable de niveau utilisateur, par exemple user.accessToken, elle peut être partagée entre les briques.

Valeur par défaut : accessToken.

Non
authenticatedUserVariableName Définit la variable dans laquelle stocker le nom utilisateur authentifié (nom connu par le fournisseur d'identités). S'il s'agit d'une variable de niveau utilisateur, par exemple user.authenticatedUser, elle peut être partagée entre les briques.

Valeur par défaut : authenticatedUser.

Non
authenticationService Nom du service de code d'autorisation créé dans l'interface utilisateur des services d'authentification du fournisseur d'identités OAuth2. Oui
autoNumberPostbackActions Lorsqu'elle est définie sur true, cette option ajoute un nombre en tant que préfixe à l'option d'annulation, qui est une action de postback côté serveur. Aucun numéro n'est ajouté en tant que préfixe à l'option d'obtention de jeton d'accès car il s'agit d'une action d'URL, qui est une action côté client qui ne peut pas porter un numéro de séquence en tant que préfixe.

Même si vous n'avez pas défini cette option sur true, la numérotation automatique peut être appliquée aux actions de postback lorsque la configuration Activer la numérotation automatique sur les actions de postback de l'assistant numérique est définie sur true. La numérotation automatique propre au canal peut être appliquée à tous les bots de brique enregistrés dans un assistant numérique :

${(system.message.channelConversation.channelType=='twilio')?then('true','false')}

Reportez-vous à Numérotation automatique pour les canaux de texte uniquement dans les flux de dialogue YAML et à

Numérotation automatique pour les assistants numériques

Non
cancelLabel Utilisez cette option pour remplacer le libellé du bouton sur lequel les utilisateurs peuvent cliquer pour quitter l'état sans appeler la boîte de dialogue d'authentification. Le libellé par défaut est Cancel. Non
enableSingleSignOn (MS Teams uniquement) Si vous avez configuré l'accès avec connexion unique (SSO) Microsoft Teams, vous pouvez définir cette propriété sur true afin que les utilisateurs qui se sont déjà connectés à MS Teams n'aient pas besoin de se connecter à la brique. La valeur par défaut est false. Reportez-vous à Configuration de l'authentification unique pour les canaux Microsoft Teams.

SSO n'est pas pris en charge avec les composants de calendrier.

Non
footerText Améliore la boîte de dialogue de connexion en ajoutant du texte sous les options de connexion et d'annulation. Comme décrit dans Pieds de page, vous pouvez utiliser des expressions FreeMarker afin d'appliquer des conditions au texte de pied de page pour les canaux de texte uniquement. Non
linkLabel Utilisez cette option pour remplacer le libellé du bouton sur lequel les utilisateurs peuvent cliquer pour appeler la boîte de dialogue d'authentification. Le libellé par défaut est Get an access token. Non
prompt Chaîne à utiliser pour inviter l'utilisateur au lieu de la valeur par défaut Please sign in. Non
showCancelOption (Facultatif) Permet d'indiquer si vous souhaitez afficher ou non le bouton Annuler. Par défaut, cette option est définie sur true, ce qui signifie que le bouton Annuler est affiché. Dans certains cas, par exemple pour les canaux SMS, vous pouvez ne pas afficher ce bouton. Vous pouvez configurer ce comportement à l'aide d'une expression du type :
${(system.message.channelConversation.channelType=='twilio')?then('false','true')}
Non
translate Utilisez cette propriété booléenne facultative pour remplacer la valeur booléenne de la variable de contexte autoTranslate. autoTranslate est false (exclusion de la traduction automatique), sauf si cette variable de contexte a été explicitement définie sur true. Non
updateUserProfile Si le fournisseur d'identités est un domaine d'identité OCI IAM et que vous voulez stocker le profil de l'utilisateur à partir d'IAM pendant la durée de la session, définissez cette propriété sur true. Lorsqu'une question de vérification est posée à l'utilisateur à des fins d'authentification, si cette propriété est définie sur true, le composant tente d'extraire les données de profil utilisateur du fournisseur d'identités et de définir les résultats dans la correspondance userProfile.<authorization service>. La valeur par défaut est false. Reportez-vous à Stockage du profil utilisateur pour la durée de la session. Non

Ce composant peut renvoyer les actions suivantes :

Action Description
fail L'utilisateur a cliqué sur le bouton Annuler.
pass Le jeton d'accès a été extrait.
textReceived L'utilisateur a saisi du texte au lieu de cliquer sur le bouton d'annulation ou de s'authentifier.

Lorsque le moteur de dialogue rencontre le composant, le bot de brique propose deux liens à l'utilisateur : Obtenir un jeton d'accès et Annuler (vous pouvez utiliser linkLabel et cancelLabel pour modifier le texte du lien).


Description de l'image oauth2accountlinksignin1.png ci-après
Description de l'image oauth2accountlinksignin1.png

Si l'utilisateur clique sur le lien permettant d'obtenir un jeton d'accès, cela affiche la page de connexion ou la boîte de dialogue d'authentification du fournisseur d'identités, telle que définie par le service d'authentification. Une fois la connexion établie, il obtient le jeton d'accès, définit les valeurs des variables identifiées par accessTokenVariableName et authenticatedUserVariableName, puis passe à l'état nommé par l'action pass (ou à l'état suivant si l'action pass n'existe pas). Si l'utilisateur annule, l'action de postback est définie sur fail. Si l'utilisateur saisit du texte, il renvoie l'action textReceived.


Description de l'image oauth2accountlinksignin2.png ci-après
Description de l'image oauth2accountlinksignin2.png

Comme indiqué précédemment, vous pouvez définir requiresAuthorization pour un état afin de vous assurer que l'utilisateur dispose des autorisations nécessaires avant d'appeler le composant de l'état. Si l'utilisateur ne dispose pas encore des autorisations, la boîte de dialogue appelle l'action system.authorizeUser dans defaultTransitions. Voici un exemple :

main: true
name: RequiresAuthorizationExample
context:
  variables:
    iResult: "nlpresult"

defaultTransitions:
  actions:
    system.authorizeUser: "login"

states:
  intent:
    component: "System.Intent"
    properties:
      variable: "iResult"
    transitions:
      actions:
        reg.general.showPasscode: "showPasscode"
        reg.general.showPhoneNumber: "showPhoneNumber"
        unresolvedIntent: "handleUnresolved"        

  showPasscode:
    component: "System.Output"
    requiresAuthorization: true
    properties:
      text: "XYZABC123"
    transitions:
      return: "done"          
       
  showPhoneNumber:
    component: "System.Output"
    requiresAuthorization: false
    properties:
      text: "555-1212"
    transitions:
      return: "done"
       
  handleUnresolved:
    component: "System.Output"
    requiresAuthorization: false
    properties:
      text: "You can ask for my phone number or ask for the passcode."
    transitions:
      return: "done"
         
  login:
    component: "System.OAuth2AccountLink"
    properties:
      prompt: "${profile.firstName}, please login"
      authenticationService: "MyAuthenticationService"
      accessTokenVariableName: "user.accessToken"
      authenticatedUserVariableName: "user.authenticatedUserId"
    transitions:
      actions:
        pass : "${system.requestedState}"
        fail : "handleFailedLogin"
        textReceived: "intent"       

  handleFailedLogin:
    component: "System.Output"
    requiresAuthorization: false
    properties:
      text: "Sorry, you aren't authorized to do that"
    transitions:
      return: "done"     

Stockage du profil utilisateur pour la durée de la session

Si votre brique doit contrôler le flux de dialogue en fonction du profil de domaine d'identité OCI IAM de l'utilisateur, définissez la propriété updateUserProfile du composant System.OAuth2AccountLink sur true. Permet d'obtenir les informations de profil de l'utilisateur IAM à partir de la correspondance userProfile.<authorization service>.

Lorsque updateUserProfile est défini sur true, le composant System.OAuth2AccountLink extrait le profil utilisateur d'IAM et stocke les données dans un objet de la correspondance userProfile.<authorization service>.

Supposons, par exemple, que l'état de votre flux de dialogue est le suivant :

  oauth2AccountLink:
    component: "System.OAuth2AccountLink"
    properties:
      authenticationService: "myIAMProvider"
      authenticatedUserVariableName: "user.authuser"
      accessTokenVariableName: "user.accessToken"
      updateUserProfile: true
    transitions:
      actions:
        pass: "askGreeting"
        fail: "fail"
        textReceived: "authTextReceived"

Après la connexion de l'utilisateur, l'objet userProfile.myIAMProvider est prédéfini avec le profil de l'utilisateur à partir d'IAM, comme illustré dans l'exemple ci-dessous :

"userProfile.myIAMProvider": {
  "sub": "myUsername",
  "website": "",
  "birthdate": "",
  "email_verified": false,
  "gender": "",
  "updated_at": 1584561296,
  "name": "First Last",
  "preferred_username": "myUsername",
  "given_name": "First",
  "family_name": "Last",
  "email": "first.last@oracle.com",
  "appRoles": [
    {
      "appName": "some-instance-1_APPID",
      "displayName": "RoleName",
      "appID": "1234567abcd12345",
      "name": "some-instance-1_APPID",
      "adminRole": false,
      "legacyName": "some-instance-1.RoleName",
      "id": "1234567abcdefg",
      "$ref": "http://some/path/v1/AppRoles/a111234567abcdefg"
    }
  ]
}

Gestion de plusieurs services d'authentification

Si le bot de brique a besoin de jetons d'accès provenant de plusieurs services d'authentification, vous pouvez indiquer des noms uniques de variable d'utilisateur authentifié et de jeton d'accès pour chaque utilisation de ce composant, comme indiqué dans l'exemple suivant :

...
states:
# First Authentication Service
  getAccessToken1:
    component: "System.OAuth2AccountLink"
    properties:
      authenticationService: "AuthService1"
      accessTokenVariableName: "user.accessToken1"
      authenticatedUserVariableName: "user.authenticatedUser1"
    transitions:
      actions:
        pass: "getAccessToken2"
        textReceived: "handleAuthTextResponse"
        fail: "authCancelled"
# Second Authentication Service
  getAccessToken2:
    component: "System.OAuth2AccountLink"
    properties:
      authenticationService: "AuthService2"
      accessTokenVariableName: "user.accessToken2"
      authenticatedUserVariableName: "user.authenticatedUser2"
    transitions:
      actions:
        pass:  "getBankUserProfile"
        textReceived: "handleAuthTextResponse"
        fail: "authCancelled"
...

System.OAuth2ResetTokens

Remarque

Cette rubrique traite de l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur de flux visuel, reportez-vous à Réinitialiser les jetons OAuth 2.0.

Utilisez ce composant pour révoquer tous les jetons d'actualisation et d'accès de l'utilisateur connecté du fournisseur d'identités représenté par le service d'authentification. Il enlève également les jetons d'actualisation de la base de données. Pour utiliser ce composant, vous devez fournir l'URL de révocation de jeton d'actualisation du fournisseur d'identités dans l'interface utilisateur du service d'authentification.

La brique doit inclure un état qui utilise le composant OAuth2AccountLink pour le même service d'authentification, et doit être appelée avant l'état qui utilise le composant System.OAuth2ResetTokens.

Propriété Description Requis ?
authenticationService Nom du service créé dans l'interface utilisateur du service d'authentification du fournisseur d'identités OAuth2. Le service doit disposer d'une URL de révocation de jeton d'actualisation valide. Oui

Ce composant peut renvoyer l'action suivante :

Action Description
noRefreshTokenFound Aucun jeton d'actualisation n'est associé au service d'authentification pour l'utilisateur.

System.OAuthAccountLink

Remarque

Cette rubrique traite de l'utilisation de ce composant en mode YAML. Pour plus d'informations sur son utilisation dans le concepteur visuel de flux, reportez-vous à OAuth Lien de compte.

Utilisez ce composant pour obtenir le code d'autorisation des services sécurisés par le flux d'octroi de code d'autorisation, comme LinkedIn, Twitter, Google ou Microsoft. Les composants personnalisés de la brique peuvent échanger le code d'autorisation avec un jeton d'accès, qui sera ensuite utilisé pour appeler le service de fin.

Le composant dirige d'abord l'utilisateur vers la page de connexion du fournisseur d'identités. Une fois la connexion établie, le composant renvoie le code d'autorisation dans une variable, que vous utilisez pour transmettre le code d'autorisation au composant personnalisé. L'API du composant personnalisé doit échanger le code d'autorisation, l'ID client et la clé secrète du client avec un jeton d'accès utilisateur OAuth2.

Vous pouvez utiliser le paramètre requiresAuthorization afin d'indiquer les états nécessitant une autorisation pour être appelés. Pour les états nécessitant une autorisation, si l'utilisateur n'en dispose pas encore, l'état System.OAuthAccountLink est appelé, puis le flux appelle l'état nécessitant une autorisation. Pour découvrir comment utiliser cette fonctionnalité, reportez-vous à Autorisation utilisateur dans les discussions de groupe (fonctionne pour tous les types de discussion, pas uniquement pour les discussions de groupe).

Conseil :

Dans les briques avec les versions 21.04 et ultérieures de la plate-forme, les valeurs par défaut des propriétés cancelLabel, linkLabel et prompt sont stockées dans le groupe de ressources de la brique. Pour modifier une valeur par défaut, ouvrez la page Groupe de ressources de la brique, cliquez sur Icône Groupes de ressources, sélectionnez l'onglet Configuration et modifiez le message de la clé OAuthAccountLink - <nom de propriété>. Si vous utilisez le groupe de ressources de la brique pour modifier la valeur par défaut, vous n'avez pas besoin d'inclure la propriété dans le composant, sauf si vous voulez remplacer la valeur par défaut.

Vous pouvez également modifier les messages Autre - oauthCancelPrompt et Autre - oauthSuccessPrompt dans le groupe de configuration.

Propriété Description Requis ?
authorizeURL URL de connexion. La section Propriété authorizeURL décrit la procédure de configuration de cette URL. Oui
autoNumberPostbackActions Lorsqu'elle est définie sur true, cette option ajoute un nombre en tant que préfixe à l'option d'annulation. Même si vous n'avez pas défini cette option sur true, la numérotation automatique peut être appliquée aux éléments de liste lorsque la configuration Activer la numérotation automatique sur les actions de postback de l'assistant numérique est définie sur true. La numérotation automatique propre au canal peut être appliquée à tous les bots de brique enregistrés dans un assistant numérique :
${(system.message.channelConversation.channelType=='twilio')?then('true','false')}
Non
cancelLabel Utilisez cette option pour remplacer le libellé du bouton sur lequel les utilisateurs peuvent cliquer pour quitter l'état sans appeler la boîte de dialogue d'authentification. Le libellé par défaut est Cancel. Non
footerText Améliore la boîte de dialogue de connexion en ajoutant du texte sous les options de connexion et d'annulation. Comme décrit dans Pieds de page, vous pouvez utiliser des expressions FreeMarker afin d'appliquer des conditions au texte de pied de page pour les canaux de texte uniquement. Non
linkLabel Utilisez cette option pour remplacer le libellé du bouton sur lequel les utilisateurs peuvent cliquer pour appeler la boîte de dialogue d'authentification. Le libellé par défaut est Log In. Non
prompt Chaîne à utiliser pour inviter l'utilisateur à se connecter. Oui
showCancelOption (Facultatif) Permet d'indiquer si vous souhaitez afficher ou non le bouton Annuler. Par défaut, cette option est définie sur true, ce qui signifie que le bouton Annuler est affiché. Dans certains cas, par exemple pour les canaux SMS, vous pouvez ne pas afficher ce bouton. Vous pouvez configurer ce comportement à l'aide d'une expression du type :
${(system.message.channelConversation.channelType=='twilio')?then('false','true')}
Oui
translate Utilisez cette propriété booléenne facultative pour remplacer la valeur booléenne de la variable de contexte autoTranslate. autoTranslate est false (exclusion de la traduction automatique), sauf si cette variable de contexte a été explicitement définie sur true. Non
variable Spécifie la variable dans laquelle stocker le code d'autorisation. Vous pouvez la déclarer dans le noeud de contexte en tant que variable, chaîne ou autre type de variable pris en charge. Il peut également s'agir d'une variable utilisateur. Oui

Ce composant peut renvoyer les actions suivantes :

Action Description
fail L'utilisateur a cliqué sur le bouton Annuler.
pass Le code d'autorisation a été extrait.
textReceived L'utilisateur a saisi du texte au lieu de cliquer sur le bouton d'annulation ou de s'authentifier.

Cet exemple présente les propriétés requises que vous devez définir pour le composant System.OAuthAccountLink : prompt, qui spécifie le message de connexion, variable, qui indique au composant où stocker le code d'autorisation et authorizeURL qui définit l'URL OAuth du fournisseur et l'URL de réacheminement qui reçoit le code d'autorisation.

login:
  component: "System.OAuthAccountLink"
  properties:
    prompt: "Please login now."
    linkLabel: "login"
    cancelLabel: "cancel"
    authorizeURL: "https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=75k0vq4&scope=r_basicprofile&redirect_uri=https%3A%2F%2FmyBotsinstance%2Fconnectors%2Fv2%2Fcallback"
    variable: "authCode"
  transitions:
      next: getBankUserProfile
      actions:
        textReceived: handleAuthTextResponse
        fail: authCancelled

Lorsque le moteur de dialogue rencontre ce composant, le bot de brique invite l'utilisateur à interagir avec deux liens : Connexion et Annuler.

Il existe plusieurs façons d'effectuer une transition à partir de ce composant :

  • L'utilisateur clique sur le bouton d'annulation et le composant passe à l'état nommé par l'action fail.

  • L'utilisateur ne clique sur aucun bouton, mais saisit du texte à la place. Le composant passe à l'état nommé par l'action textReceived.

  • L'utilisateur clique sur le lien de connexion et le canal affiche la page de connexion du fournisseur d'identités ou sa boîte de dialogue d'authentification sous forme de vue Web, comme illustré dans l'exemple ci-dessous. Après l'autorisation, le composant passe à l'état nommé par l'action pass (ou à l'état suivant s'il n'existe pas d'action pass), qui appelle généralement un composant personnalisé qui échange le code d'autorisation avec un jeton d'accès.

Si la fenêtre de test n'affiche pas la vue Web, coupez et collez le texte du lien dans votre navigateur.

Propriété authorizeURL

Pour configurer cette propriété, vous devez commencer par l'URL du fournisseur d'identités, comme https://www.linkedin.com/oauth/v2/authorization dans l'exemple. Ensuite, ajoutez les paramètres OAuth suivants à cette URL :

  1. response_type : définie sur code car le bot de brique attend un code d'autorisation.

  2. client_id : valeur de clé d'API obtenue lorsque vous avez inscrit l'application auprès du fournisseur d'identités.

  3. scope : liste des droits d'accès permettant d'accéder aux ressources au nom de l'utilisateur. Il s'agit des droits d'accès que vous définissez lorsque vous inscrivez votre application auprès du fournisseur. Ils peuvent varier selon le fournisseur : pour LinkedIn, il s'agit des éléments suivants : r_basicprofile (illustrés dans l'exemple) et r_emailadress ; pour Microsoft, ils sont définis à l'aide des éléments openid email et openid profile.

  4. redirect_uri : il s'agit de l'URI de réacheminement que vous avez utilisé pour inscrire votre application auprès du fournisseur d'identités et qui indique au fournisseur où rediriger les utilisateurs. Ce paramètre, qui est le nom d'hôte du service Digital Assistant avec l'ajout de connectors/v2/callback, est l'adresse qui reçoit le code d'autorisation, puis qui l'associe au canal actif. La propriété redirect_uri est basée sur l'URL de webhook générée lors de la création d'un canal. Reportez-vous à Qu'est-ce qu'un canal ?

    Assurez-vous que la valeur saisie pour redirect_uri correspond à l'URI de réacheminement fourni lors de l'inscription exacte de l'application. Dans les deux cas, l'URI doit avoir le suffixe connectors/v2/callback.

Remarque

Si votre instance est provisionnée sur Oracle Cloud Platform (comme toutes les instances de la version 19.4.1), utilisez v1 au lieu de v2.