Partager via


Configurer l’authentification unique avec un fournisseur OAuth générique

Copilot Studio prend en charge l’authentification unique (SSO) avec OAuth les fournisseurs d’authentification compatibles 2.0. Le SSO permet aux copilotes de votre site Web de connecter les clients s’ils se sont connectés à la page ou à l’application sur laquelle le copilote est déployé.

Conditions préalables

Créer ou utiliser un canevas personnalisé qui prend en charge le flux SSO du fournisseur générique OAuth

Lorsque la rubrique d’authentification est déclenchée dans les copilotes connectés à un fournisseur OAuth 2.0 générique, Copilot Studio envoie un message contenant une URL sécurisée, qui est utilisée pour publier le jeton d’accès de l’utilisateur.

Le canevas personnalisé ou une page dans laquelle le canevas est intégré doit implémenter le modèle suivant :

  1. Obtenez un jeton d’accès pour l’utilisateur connecté auprès de votre fournisseur d’authentification OAuth 2.0, en utilisant votre méthode préférée.

  2. Intercepter un message entrant de Copilot Studio, puis extrayez l’URL sécurisée.

  3. Publiez le jeton d’accès sur l’URL sécurisée.

Extraire l’URL sécurisée et publier jeton

Le canevas personnalisé intercepte les messages entrants à l’aide d’un concept de intergiciel, c’est-à-dire du code qui s’exécute dans le contexte de la réception de messages provenant de Copilot Studio.

Pour répondre aux demandes de connexion, le canevas personnalisé doit intercepter les messages contenant des pièces jointes portant le type de contenu application/vnd.microsoft.card.oauth. Les pièces jointes OAuthCard contiennent un content.tokenPostResource.sasUrl propriété, à partir de laquelle l’URL sécurisée peut être extraite. Enfin, le canevas personnalisé doit publier le jeton d’accès de l’utilisateur sur l’URL sécurisée.

Le code JavaScript suivant est un exemple de code intergiciel qui extrait l’URL sécurisée et publie un jeton. Si la publication réussit, le intergiciel revient false. Si la publication échoue ou si l’activité n’a pas le application/vnd.microsoft.card.oauth propriété, il revient next(…args).

const activityMiddleware = () => next => (...args) => {
  if (args[0].activity.attachments?.[0]?.contentType === 'application/vnd.microsoft.card.oauth') {
    var postEndpoint = args[0].activity.attachments?.[0].content.tokenPostResource.sasUrl;

    // Perform an HTTP POST to the secure URL with the body of:
    // {
    //     "token": <user_token> 
    // } 

    if(success)
       return false;
    else
       return next(...args);
  } else {
    return next(...args);
  }
};

Exemple de code complet

La mise en œuvre d’un canevas ou d’une application personnalisée qui obtient un jeton pour un utilisateur connecté et publie le jeton sur Copilot Studio varie en fonction de votre fournisseur d’authentification. Pour plus d’informations, consultez la documentation de votre fournisseur d’authentification pour plus de détails sur les flux de connexion et l’obtention de jetons d’accès. Pour un exemple de référence utilisant OKTA, consultez SSO tiers avec OKTA.

Utilisation du jeton dans Copilot Studio

Les jetons publiés à l’aide de l’URL sécurisée sont renseignés dans la System.User.AccessToken variable in Copilot Studio. Les créateurs de copilotes peuvent utiliser cette variable système pour accéder aux API protégées connectées au fournisseur authentifié qui a généré le jeton.

Dans l’exemple suivant, un appel HTTP est configuré avec un en-tête d'autorisation qui utilise System.User.AccessToken.

Capture d’écran illustrant un appel HTTP qui accède à un APU sécurisé.

Canaux pris en charge

L’authentification unique avec un fournisseur d’authentification OAuth générique est un modèle personnalisé, qui peut être implémenté soit par un canevas personnalisé, soit par tout autre client travaillant avec l’API Directline.