外部 Web サービスにアクセスする
プラグインとカスタム ワークフロー活動は、HTTP および HTTPS プロトコルを介してネットワークにアクセスできます。 この機能によって、ソーシャル サイト、ニュース フィード、Web サービスなどの一般的な Web サービスにアクセスできます。 このサンドボックスの機能には、次の Web アクセス制限が適用されます。
- サーバーには、現在の TLS スイートと暗号スイート が必要です。
- 許可されるプロトコルは HTTP および HTTPS だけです。
- localhost (ループバック) へのアクセスは許可されません。
- IP アドレスは使用できません。 DNS による名前解決を必要とする名前付き Web アドレスを使用する必要があります。
- 匿名認証がサポートされ、その使用が推奨されます。 ログオン ユーザーの資格情報を入力または保存する必要はありません。
- サーバーは AzureCloud サービスタグで指定されている Power Platform および Dynamics 365 サービスの IP アドレス値からの接続を許可する必要があります。
Web サービスにアクセスする他の方法としては、Webhook および Azure Service Bus の使用などがあります。 これらのトピックの詳細については以下で提供されるリンクを参照してください。
外部 Web サービスにアクセスする方法
最近、多くの人が System.Net.Http.HttpClient Class に精通しています。 HttpClient
は .NET 4.5 で導入され、現在も利用可能な System.Net.WebClient Class を超える重要な機能を提供します。
.NET チームは WebClient を新規開発に推奨していない ため、新しいプラグインには HttpClient
を使用する必要があります。 ただし、WebClient
を使用した古いコードを見つけたら置き換える必要があるという意味ではありません。 HttpClient
が提供するほとんどの利点は、プラグインで必ずしも利点を提供するわけではありません。 HttpClient
は再利用されることを意図しており、既定では非同期です。 プラグイン内で複数の HTTP リクエストを行っている場合を除き、WebClient
は単一のリクエスト用に設計されています。 HttpClient
は既定で非同期のため、通常の使用パターンから外れてコードを追加し、強制的に操作を同期的に実行する必要があります。通常は await
キーワードを削除し、非同期呼び出しに .GetAwaiter().GetResult()
を付加します。
WebClient
は UploadData や DownloadFile などのシンプルな同期メソッドを提供しています。これらのメソッドでは、使用されている基本的な HTTP メソッドが明確に示されていませんが、POST
の代わりに PATCH
を使用する場合には UploadString(String, String, String) などの特定のオーバーライドを使用して設定することができます。
ほとんどの場合、プラグイン以外では HttpClient
を使用できます。 プラグイン内でも、必要に応じて WebClient
を使用できます。
ベスト プラクティス
以下のベスト プラクティスのトピックで説明します:
外部呼び出しに適切な Timeout
期間を設定して KeepAlive
を無効にする必要があります。 詳細については、上記のリンクを参照してください。
関連項目
プラグイン
ワークフローの拡張機能
Azure 統合
Webhooks の使用
サンプル: 隔離されたプラグインからの Web アクセス
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。