次の方法で共有


Web API 用のカスタム コネクタを作成する

このチュートリアルでは、ASP.NET Web APIの構築を開始し、それをAzure App ServiceのAzure Web Apps機能でホストし、Microsoft Entra ID認証を有効にした後、ASP.NET Web APIをPower Automateに登録する方法を示します。 API を登録した後は、それに接続し、フローから呼び出すことができます。 以下のようにすることもできます:

前提条件

Azureに ASP.NET Web アプリを作成してデプロイする

このチュートリアルでは、Visual C# ASP.NET Web アプリを作成します。

  1. Visual Studioを開き、File>New Project を選択します。

    1. Installed を展開し、Templates>Visual C#>Web に移動して、ASP.NET Web アプリケーション を選択します。

    2. 自分のアプリのプロジェクト名、場所、ソリューション名を入力して、OK を選択します。

    新しい Visual C# ASP.NET Webアプリケーションを示すスクリーンショット。

  2. New ASP.NET Web アプリケーション ボックスで、 Web API テンプレートを選択し、Host in the cloud チェックボックスがオンになっていることを確認してから、Change Authentication を選択します。

    新しい ASP.NET Web アプリケーション ダイアログを示すスクリーンショット。

  3. 認証なしOK の順に選択します。 認証は後で設定できます。

  4. New ASP.NET Web アプリケーション ボックスが再び表示されたら、OK を選択します。

  5. App Service の作成 ボックスで、テーブルに記載されているホスティング設定を確認し、必要な変更を加えて、作成 を選択します。

    App Service プラン は、Azure サブスクリプションでアプリをホストするために使用される物理リソースのコレクションを表します。 App Service についての説明

    App Service を作成する。

    設定 提案された値 説明
    Azure職場または学校アカウント、または個人の Microsoft アカウント 自分のユーザー アカウント 自分のユーザー アカウントを選びます。
    Web アプリ名 custom-web-api-app-name またはデフォルト名 自分のアプリの URL で使用する Web API アプリの名前 (たとえば、http://web-api-app-name ) を入力します。
    Subscription Azure-subscription-name 使用するAzure サブスクリプションを選択します。
    リソース グループ Azure-resource-group-name 既存のAzureリソース グループを選択するか、まだ作成していない場合はリソース グループを作成します。

    Note: Azure リソース グループは、Azure サブスクリプション内Azureリソースを整理します。

    アプリサービスプラン App-Service-plan-name 既存の App Service プランを選択するか、まだプランを作成していない場合は作成します。

    App Service プランを作成する場合は、次の設定を指定します。

    設定 提案された値 説明
    場所 展開リージョン アプリをデプロイするリージョンを選択します。
    サイズ アプリサービスプランのサイズ サービス プランのコストとコンピューティング リソースの容量を決定する、プランのサイズを選択します。

    アプリに必要なその他のリソースを設定するには、追加のAzure サービスを選択します。

    設定 提案された値 説明
    リソースの種類 Azure-resource-type アプリに必要な追加のリソースを選択して設定します。
  6. Visual Studioプロジェクトをデプロイしたら、アプリのコードをビルドします。

Web API を説明する OpenAPI (Swagger) ファイルを作成する

Web API アプリをPower Automate、Power Apps、または Logic Apps に接続するには、API の操作を記述する OpenAPI (旧称 Swagger) ファイルが必要です。 Swagger オンライン編集者 で API 用の OpenAPI 定義を書けますが、このチュートリアルでは Swashbuckle という名称のオープン ソースを使います。

  1. まだインストールしていない場合は、Visual Studio プロジェクトに Swashbuckle Nuget パッケージをインストールします。

    1. Visual Studioで、Tools>NuGet Package Manager>Package Manager Console を選択します。

    2. Package Manager コンソール で、まだ存在しない場合はアプリのプロジェクト ディレクトリに移動し (Set-Location "project-path" を実行)、次の PowerShell コマンドレットを実行します。

      Install-Package Swashbuckle

      Package Manager Console を使用してインストールされた Swashbuckle を示すスクリーンショット

    ヒント

    Swashbuckle のインストール後にアプリを実行する場合、Swashbuckle は この URL で OpenAPI ファイルを作成します:

      http://{your-web-api-app-root-URL}/swagger/docs/v1

    Swashbuckle は、次の URL にユーザー インターフェイスも生成します:

      http://{your-web-api-app-root-URL}/swagger

  2. 準備ができたら、Web API アプリをAzureに発行します。 Visual Studioから発行するには、Solution Explorerで Web プロジェクトを右クリックし、Publish を選択し、指示に従います。

    重要

    OpenAPI 文書に重複するオペレーション ID が含まれる場合は、無効になります。 サンプルの C# テンプレートでは、操作 ID、Values_Get が繰り返されます。

    C# のサンプル テンプレートを使用した場合、ひとつの操作 ID インスタンスを Value_Get に変更し、再発行することでこの問題を解決できます。

  3. この場所に閲覧し、OpenAPI ドキュメントを取得します:

    http://{your-web-api-app-root-URL}/swagger/docs/v1

    チュートリアルからサンプル OpenAPI ドキュメント をダウンロードすることも可能です。 ドキュメントを使用する前に、// で始まるコメントを必ず削除してください。

  4. 内容を JSON ファイルとして保存します。 ご利用のブラウザーによっては、テキストをコピーして空のテキスト ファイルに貼り付けることが必要になる場合があります。

Microsoft Entra ID認証を設定する

次に、Azureで 2 つのMicrosoft Entra ID アプリケーションを作成します。 詳細については、 Microsoft Entra IDに関するページを参照してください。

重要

両方のアプリが同じディレクトリに含まれている必要があります。

最初のMicrosoft Entra ID アプリケーション: Web API のセキュリティ保護

最初のMicrosoft Entra ID アプリケーションは、Web API をセキュリティで保護するために使用されます。 webAPI と名前を付けます。 Web API でMicrosoft Entra ID認証を有効にするには、の手順に次の値を指定します。

  • サインオン URL: https://login.windows.net
  • 返信の URL: https://<your-root-url>/.auth/login/aad/callback
  • クライアント キーは必要ありません。
  • アクセス許可を委任する必要はありません。
  • 後で必要になるので、アプリケーション ID をコピーしておきます。

2 つ目のMicrosoft Entra ID アプリケーション: カスタム コネクタと委任されたアクセスのセキュリティ保護

2 番目のMicrosoft Entra ID アプリケーションは、カスタム コネクタの登録をセキュリティで保護し、最初のアプリケーションによって保護された Web API への委任されたアクセスを取得するために使用されます。 これに webAPI-customAPI と名前を付けます。

  • サインオン URL: https://login.windows.net
  • 返信の URL: https://msmanaged-na.consent.azure-apim.net/redirect
  • Web API に委任されたアクセスを取得するためにアクセス許可を追加します。
  • 後で必要になるので、アプリケーション ID をコピーしておきます。
  • 後で必要になるため、クライアントキーを生成してコピーします。

Azure Web アプリに認証を追加する

  1. Azure ポータル にサインインし、最初のセクションでデプロイした Web アプリを見つけます。

  2. 設定 を選択して、認証 / 承認 を選択します。

  3. App Service Authentication を有効にして、Azure Active Directory を選択します。 次のブレードで、簡易 を選択します。

  4. 既存の AD アプリの選択を選択し、前に作成した webAPI Microsoft Entra ID アプリケーションを選択します。

これで、Microsoft Entra IDを使用して Web アプリを認証できるようになります。

カスタム コネクタをPower Automateに追加する

  1. OpenAPI を変更して、Web アプリに使用される securityDefintions オブジェクトとMicrosoft Entra ID認証を追加します。 host プロパティを持つ自身の OpenAPI のセクションでは、このように見えるはずです:
// File header should be above here...

"host": "<your-root-url>",
"schemes": [
    "https"         //Make sure this is https!
],
"securityDefinitions": {
    "Microsoft Entra ID": {
        "type": "oauth2",
        "flow": "accessCode",
        "authorizationUrl": "https://login.windows.net/common/oauth2/authorize",
        "tokenUrl" : "https://login.windows.net/common/oauth2/token",
        "scopes": {}
    }
},

// The rest of the OpenAPI follows...
  1. Power Automate Power Automate

  2. OpenAPI をアップロードすると、Web API に対してMicrosoft Entra ID認証を使用していることをウィザードが自動検出します。

  3. カスタム コネクタのMicrosoft Entra ID認証を構成します。

  • クライアント ID: webAPI-CustomAPI のクライアント ID
  • クライアント シークレット: WebAPI-CustomAPI のクライアント キー
  • ログイン URL: https://login.windows.net
  • ResourceUri: webAPI のクライアント ID
  1. 作成 を選択し、カスタム コネクタへの接続を作成します。

重要

コネクタで OAuth を使用している場合は、期限切れのクライアント ID とクライアント シークレットの資格情報を定期的に監視して更新し、顧客がコネクタを引き続き使用できるようにすることが重要です。 クライアント ID とクライアント シークレットの有効期限が切れる日付の 1 か月前に、コネクタの更新プログラムを送信してください

Microsoft Entra ID認証の詳細については

フィードバックを提供する

コネクタ プラットフォームの問題点や新機能のアイデアなど、フィードバックをお待ちしています。 フィードバックを提供するには、「問題を送信するか、コネクタに関するヘルプを入手する」にアクセスし、フィードバックの種類を選択します。