Configurer la sécurité des canaux web et Direct Line

Lorsque vous créez un agent Copilot Studio, toute personne qui connaît l’ID de l’agent peut accéder immédiatement à l’agent par le biais des canaux du site web Demo et du site web personnalisé . Ces canaux sont disponibles par défaut et aucune configuration n’est nécessaire.

Pour l’application Microsoft Teams, vous pouvez configurer des options avancées de sécurité des canaux web.

Note

Si vous disposez d’une licence Teams uniquement, vous ne pourrez pas générer de secrets pour activer l’accès sécurisé. Les jetons d’accès sécurisé sont créés automatiquement pour vous et l’accès sécurisé est activé par défaut.

Les utilisateurs peuvent trouver l’ID de l’agent directement à partir de Copilot Studio ou en le recevant d’une personne. Toutefois, en fonction de la capacité et de la sensibilité de l’agent, cet accès peut ne pas être souhaitable.

En utilisant la sécurité basée sur Direct Line, vous pouvez activer l’accès uniquement aux emplacements que vous contrôlez en activant l’accès sécurisé avec Direct Line secrets ou jetons.

Vous pouvez également échanger et régénérer les secrets et actualiser les jetons, et vous pouvez facilement désactiver l’accès sécurisé si vous ne souhaitez plus l’utiliser.

Note

Copilot Studio utilise le canal Direct Line Bot Framework pour connecter votre page web ou votre application à l’agent.

Activer ou désactiver la sécurité du canal Web

Vous pouvez imposer l’utilisation de secrets et de jetons pour chaque agent individuel.

Lorsque vous activez cette option, les canaux ont besoin que le client authentifie ses demandes à l’aide d’un secret ou à l’aide d’un jeton généré à l’aide du secret obtenu au moment de l’exécution.

Les tentatives d’accès à l’agent qui ne fournissent pas cette mesure de sécurité ne fonctionnent pas.

  1. Accédez à la page Paramètres de votre agent, sélectionnez Sécurité, puis sélectionnez Sécurité du canal web.

Capture d’écran de la sécurité du canal web mise en surbrillance dans le panneau Paramètres.

  1. Activez Exiger un accès sécurisé.

Avertissement

Lorsque vous activez ou désactivez Exiger un accès sécurisé, le système peut prendre jusqu’à deux heures pour propager les paramètres et prendre effet. Jusqu’à présent, le paramètre précédent est en vigueur. Vous n’avez pas besoin de publier l’agent pour que cette modification prenne effet.

Planifiez l’avance pour éviter d’exposer votre agent involontairement.

Si vous devez désactiver l’option de sécurité du canal web, vous pouvez le faire en désactivant le bouton bascule Exiger un accès sécurisé . La désactivation de l’accès sécurisé peut prendre jusqu’à deux heures pour se propager.

Capture d’écran d’un message de confirmation lors de la désactivation de l’accès sécurisé, ce qui indique que cette action affiche le site web de démonstration et tout canal Direct Line qui n’utilise pas de secret ou de jeton disponible. Cette action peut prendre jusqu’à deux heures pour prendre effet.

Utiliser des secrets ou des jetons

Si vous créez une application de service à service, préciser le secret dans les demandes d’en-tête d’autorisation peut se révéler l’approche la plus simple.

Si vous écrivez une application où le client s’exécute dans un navigateur Web ou une application mobile ou où le code peut être visible par les clients, vous devez échanger votre secret contre un jeton. Si vous n’utilisez pas de jeton, votre secret peut être compromis. Lorsque vous faites la demande pour acquérir le jeton dans votre service, spécifiez le secret dans l’en-tête d’autorisation.

Les jetons ne fonctionnent que pour une seule conversation et expirent à moins d’être actualisés.

Choisissez le modèle de sécurité qui convient le mieux à votre situation.

Avertissement

N’exposez pas le secret dans un code qui s’exécute dans le navigateur, codé en dur ou transféré par le biais d’un appel réseau.

L’acquisition du jeton à l’aide du secret dans votre code de service est le moyen le plus sécurisé de protéger votre agent Copilot Studio.

Obtenir les secrets

Vous avez besoin du secret pour pouvoir le spécifier dans les demandes d’en-tête d’autorisation de votre application ou similaire.

  1. Dans le menu de navigation, sous Paramètres, sélectionnez Sécurité. Ensuite, sélectionnez la vignette Sécurité du canal Web.

  2. Sélectionnez Copier pour Secret 1 ou Secret 2 pour le copier dans le presse-papiers. Sélectionnez l’icône de visibilité pour afficher le secret. Un message d’avertissement apparaît avant que vous puissiez le révéler.

Échanger les secrets

Si vous devez modifier le secret que votre agent utilise, vous pouvez le modifier sans temps d’arrêt ni interruption.

Copilot Studio vous fournit deux secrets, qui fonctionnent simultanément. Vous pouvez échanger le secret que votre agent utilise avec l’autre. Une fois les secrets échangés et que vos utilisateurs sont tous connectés à l’aide du nouveau secret, vous pouvez régénérer le secret.

Régénérer un secret

Pour régénérer un secret, sélectionnez Régénérer en regard du secret.

Avertissement

Profil utilisateur qui se connecte à l’aide du secret d’origine ou d’un jeton obtenu à partir de ce secret est déconnecté.

Générer un jeton

Vous pouvez générer un jeton que vous utilisez lors du démarrage d’une conversation d’agent unique. Pour plus d’informations, consultez la section Obtenir un jeton Direct Line dans Publier un agent sur des applications mobiles ou personnalisées.

  1. Obtenir le secret.

  2. Dans votre code de service, envoyez la requête suivante pour échanger le secret pour un jeton. Remplacez <SECRET> avec la valeur du secret obtenu à l’étape 1.

    POST https://directline.botframework.com/v3/directline/tokens/generate
    Authorization: Bearer <SECRET>
    

Les extraits de code suivants fournissent des exemples de la requête de jeton générée et de sa réponse.

Exemple de demande de génération de jeton

POST https://directline.botframework.com/v3/directline/tokens/generate
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0

Exemple de réponse de génération de jeton

HTTP/1.1 200 OK
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
  "expires_in": 1800
}

Si la demande aboutit, la réponse contient un jeton valide pour une conversation et une valeur expires_in qui indique le nombre de secondes avant l’expiration du jeton.

Pour conserver le jeton utile, vous devez actualiser le jeton avant son expiration.

Actualiser un jeton

Vous pouvez actualiser un jeton un nombre illimité de fois, tant qu’il n’a pas expiré.

Vous ne pouvez pas actualiser un jeton expiré.

Pour actualiser un jeton, envoyez la requête suivante et remplacez-le <TOKEN TO BE REFRESHED> par le jeton que vous souhaitez actualiser.

POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer <TOKEN TO BE REFRESHED>

Les extraits de code suivants fournissent des exemples de la requête d’actualisation de jeton et de sa réponse.

Exemple de demande d’actualisation

POST https://directline.botframework.com/v3/directline/tokens/refresh
Authorization: Bearer CurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn

Exemple de réponse d’actualisation

Si la demande aboutit, la réponse contient un nouveau jeton valide pour la même conversation que le précédent jeton et une valeur expires_in qui indique le nombre de secondes avant l’expiration du nouveau jeton.

Pour conserver le nouveau jeton utile, actualisez à nouveau le jeton avant son expiration.

HTTP/1.1 200 OK
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xniaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0",
  "expires_in": 1800
}

Pour plus d’informations sur l’actualisation d’un jeton, consultez la section Refresh un jeton Direct Line dans Direct Line API - Authentification.