Accès aux services web externes
Les plug-ins et activités de workflow personnalisées peuvent accéder au réseau via les protocoles HTTP et HTTPS. Cette fonctionnalité permet l’accès aux services web populaires comme les sites sociaux, les fils d’actualités, les services Web, etc. Les restrictions d’accès web suivantes s’appliquent à cette fonctionnalité de bac à sable.
- Votre serveur doit utiliser les suites de chiffrement et TLS actuelles.
- Seuls les protocoles HTTP et HTTPS sont autorisés.
- L’accès à localhost (bouclage) n’est pas autorisé.
- Les adresses IP ne peuvent pas être utilisées. Vous devez utiliser une adresse Web nommée qui requiert la résolution de noms DNS.
- L’authentification anonyme est prise en charge et recommandée. Il n’existe aucune disposition pour inviter l’utilisateur connecté à indiquer ses informations d’identification ou les enregistrer.
- Votre serveur doit autoriser les connexions depuis Power Platform et les valeurs d’adresse IP des services Dynamics 365 spécifiées sous la balise de service AzureCloud.
D’autres méthodes d’accès aux services web comprennent l’utilisation de webhooks et du Azure Service Bus. Reportez-vous aux liens ci-dessous pour plus d’informations sur ces rubriques.
Comment accéder aux services web externes
De nos jours, la plupart des utilisateurs connaissent System.Net.Http.HttpClient Class. HttpClient
a été introduit avec .NET 4.5 et offre des fonctions importantes sur System.Net.WebClient Class qui sont toujours disponibles.
Pour les nouveaux plug-ins, vous devez utiliser HttpClient
car l’équipe .NET vous déconseille le client Web pour un nouveau développement. Toutefois, cela ne signifie pas que vous devez remplacer toutes les utilisations de code héritées de WebClient
que vous trouvez. La plupart des avantages fournis dans HttpClient
ne figurent pas forcément dans un plug-in. HttpClient
est conçu pour être réutilisé et est asynchrone par défaut. Sauf si vous effectuez plusieurs requêtes HTTP dans votre plug-in, WebClient
est conçu pour une seule demande. Comme HttpClient
est asynchrone par défaut, vous devez arrêter d’utiliser des modèles classiques et ajouter du code pour forcer les opérations à s’effectuer de manière synchrone, généralement en supprimant le mot clé await
et en ajoutant .GetAwaiter().GetResult()
à tous les appels asynchrone.
WebClient
fournit des méthodes synchrones simples, telles que UploadData, DownloadFile qui n’exposent pas clairement la méthode HTTP sous-jacente utilisée, mais elles peuvent être définies à l’aide de remplacements spécifiques tels que UploadString(String, String, String) au cas où vous voudriez utiliser PATCH
à la place de POST
.
En dehors des plug-ins, vous allez la plupart du temps utiliser HttpClient
. Dans des plug-ins, vous pouvez également utiliser WebClient
si vous le souhaitez.
Conseils
Comme indiqué dans les rubriques de meilleures pratiques suivantes :
- Définissez KeepAlive sur false lorsque vous interagissez avec des hôtes externes dans un plug-in
- Définir le délai d’expiration lors d’appels externes dans un plug-in
Vous devez définir une période de Timeout
appropriée pour vos appels externes et désactiver KeepAlive
. Consultez les liens ci-dessus pour en savoir plus.
Voir aussi
Plug-ins
Extensions de workflow
Intégration Azure
Utiliser des webhooks
Exemple : Accès Web d’un plug-in placé dans le bac à sable
Notes
Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)
Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).