Microsoft Flow で Web API 用のカスタム コネクタを作成するBuild a custom connector for a Web API in Microsoft Flow

このチュートリアルでは、ASP.NET Web API の作成を開始し、それを Azure Web Apps にホストし、Azure Active Directory 認証を有効にして、Microsoft Flow に ASP.NET Web API を登録する方法を説明します。This tutorial shows you how to start bulding an ASP.NET Web API, host it on Azure Web Apps, enable Azure Active Directory authentication, and then register the ASP.NET Web API in Microsoft Flow. API を登録した後は、それに接続して、フローから呼び出すことができます。After the API is registered, you can connect to it and call it from your flow.

前提条件Prerequisites

ASP.NET Web API を作成し Azure にデプロイするCreate an ASP.NET Web API and deploy it to Azure

  1. Visual Studio で、ファイル > 新しいプロジェクトをクリックし、新しい C# ASP.NET Web アプリケーションを作成します。In Visual Studio, click File > New Project to create a new C# ASP.NET web application.

    新しい Web アプリ

  2. [Web API] テンプレートを選択します。Select the Web API template. [クラウド内のホスト] はオンのままにします。Leave Host in the cloud checked. [認証の変更] をクリックします。Click Change Authentication.

    新しい Web プロジェクト テンプレート

  3. [No Authentication](認証なし)、[OK] の順にクリックします。Select No Authentication, and then click OK.

    認証なし

  4. 新しい ASP.NET プロジェクト ダイアログで OKをクリックします。Click OK on the New ASP.NET Project dialog. [Microsoft Azure Web App の構成] ダイアログが表示されます。The Configure Microsoft Azure Web App dialog appears.

    Microsoft Azure Web App の構成]]

    Azure アカウントを選択し、[Web アプリ名] を入力 (するか既定のままに) し、Azure サブスクリプションを選択します。Select your Azure account, type a Web App name (or leave the default), and select your Azure Subscription. [App Service プラン] (サブスクリプション内の一連の Web Apps) を選択または作成します。Select or create an App Service plan (a collection of Web Apps within your subscription). [リソース グループ] (サブスクリプション内の Azure リソースのグループ) を選択または作成します。Select or create a Resource group (a grouping of Azure resources within your subscription). Web App を展開するリージョンを選択します。Select the region where the Web App should be deployed. Web API で必要な場合、Azure の [データベース サーバー] を選択するか作成します。If required for your Web API, select or create an Azure Database server. 最後に、[OK] をクリックします。Finally, click OK.

  5. Web API を作成します。Create your Web API.

    注意

    Web API 用のコードをまだ準備していない場合は、チュートリアル 「Getting Started with ASP.NET Web API 2 (C#)」 (ASP.NET Web API 2 の概要 (C#)) をご覧ください。If you don't already have code ready for a Web API, try the tutorial Getting Started with ASP.NET Web API 2 (C#).

  6. Web API を PowerApps に接続するには、その動作が記述された Swagger ファイルが必要です。To connect our Web API to PowerApps, we'll need a Swagger file that describes its operations. オンライン エディターを使用して独自の OpenAPI を記述することもできますが、このチュートリアルでは Swashbuckle というオープン ソース ツールを使用します。You could write an OpenAPI of our own using the online editor, but for this tutorial, you'll use an open-source tool named Swashbuckle. [ツール] > [NuGet パッケージ マネージャー] > [パッケージ マネージャー コンソール] の順にクリックして、Visual Studio プロジェクトに Swashbuckle NuGet パッケージをインストールし、[パッケージ マネージャー コンソール] に Install-Package Swashbuckle のコマンドを入力します。Install the Swashbuckle Nuget package in your Visual Studio project by clicking Tools > NuGet Package Manager > Package Manager Console, and then, in the Package Manager Console, type the command Install-Package Swashbuckle.

    Install-Package Swashbuckle

    ヒント

    Swashbuckle のインストール後に Web API アプリケーションを実行すると、URL http://<your root URL>/swagger/docs/v1 に OpenAPI ファイルが生成されます。When you run your Web API application after installing Swashbuckle, an OpenAPI file will now be generated at the URL http://<your root URL>/swagger/docs/v1. 生成されたユーザー インターフェイスは http://<your root URL>/swagger にもあります。A generated user interface is also available at http://<your root URL>/swagger.

  7. Web API の準備ができたら Azure に発行します。When your Web API is ready, publish it to Azure. Visual Studio から発行するには、ソリューション エクスプ ローラーで Web プロジェクトを右クリックし、[発行...] をクリックし、[発行] ダイアログ ボックスのプロンプトの指示に従います。To publish from Visual Studio, right-click on the web project in Solution Explorer, click Publish..., and then follow the prompts in the Publish dialog.
  8. https://<azure-webapp-url>/swagger/docs/v1 に移動して OpenAPI JSON を取得します。Retrieve the OpenAPI JSON by navigating to https://<azure-webapp-url>/swagger/docs/v1. 内容を JSON ファイルとして保存します。Save the content as a JSON file. ブラウザーによっては、空のテキスト ファイルにテキストをコピーして貼り付ける必要があります。Depending on your browser, you may need to copy and paste the text into an empty text file.

    重要

    操作 ID が重複する OpenAPI ドキュメントは無効です。An OpenAPI document with duplicate operation IDs is invalid. サンプル C# テンプレートを使用している場合、操作 ID Values_Get は、2 回繰り返されます。If you are using the sample C# template, the operation ID Values_Get is repeated twice. これは、1 つのインスタンスを Value_Get に変更し再発行することで、修正することができます。You can correct this by changing one instance to Value_Get and re-publishing.

    このチュートリアルからサンプルの OpenAPI をダウンロードすることも可能です。You can also download a sample OpenAPI from this tutorial. (// で開始される) コメントは、使用前に必ず削除するようにしてください。Be sure to remove the comments (starting with //) before using it.

Azure Active Directory 認証を設定するSet up Azure Active Directory authentication

これから Azure に 2 つの Azure Active Directory (AAD) アプリケーションを作成します。You will now create two Azure Active Directory (AAD) applications in Azure. これを行う方法の例については、Azure Resource Manager のチュートリアルをご覧ください。For an example of how to do this, see the Azure Resource Manager tutorial.

重要

いずれのアプリも同じディレクトリに配置する必要があります。Both apps must be in the same directory.

1 番目の AAD アプリケーション: Web API をセキュリティで保護するFirst AAD application: Securing the Web API

1 番目の AAD アプリケーションは、Web API をセキュリティで保護するために使用します。The first AAD application is used to secure the Web API. webAPI と名前を付けます。Name it webAPI. 次の値を使用して、前述のリンクのチュートリアル (「Azure Active Directory で認証を有効にする」セクションのみ) の手順に従います。Follow the above linked tutorial steps (just the section titled "Enable authentication in Azure Active Directory") with the following values:

  • サインオン URL: https://login.windows.netSign-on URL: https://login.windows.net
  • 返信 URL: https://<your-root-url>/.auth/login/aad/callbackReply URL: https://<your-root-url>/.auth/login/aad/callback
  • クライアント キーは必要ありません。There is no need for a client key.
  • すべてのアクセス許可は委任する必要はありません。There is no need to delegate any permissions.
  • 重要Important! アプリケーション ID を書き留めておきます。Note the application ID. これは後で使用します。You will need it later.

2 番目の AAD アプリケーション: カスタム コネクタをセキュリティで保護し、委任されたアクセス許可を取得するSecond AAD application: Securing the custom connector and delegated access

2 番目の AAD アプリケーションは、カスタム コネクタの登録をセキュリティで保護し、1 番目のアプリケーションで保護された Web API に委任されたアクセスを取得します。The second AAD application is used to secure the custom connector registration and acquire delegated access to the Web API protected by the first application. これを webAPI-customAPI と命名します。Name this one webAPI-customAPI .

  • サインオン URL: https://login.windows.netSign-on URL: https://login.windows.net
  • 返信 URL: https://msmanaged-na.consent.azure-apim.net/redirectReply URL: https://msmanaged-na.consent.azure-apim.net/redirect
  • Web API に委任されたアクセスを取得するためにアクセス許可を追加します。Add permissions to have delegated access to Web API.
  • このアプリケーション用に後でアプリケーション ID が必要となるので、それを書き留めておきます。You need the application ID of this application later as well, so note it.
  • クライアント キーを生成し、それを安全な場所に保存します。Generate a client key and store is somewhere safe. このキーは後で使用します。We need this key later.

Azure Web アプリに認証を追加するAdd authentication to your Azure Web App

  1. Azure Portal にサインインし、最初のセクションで展開した Web アプリを検索します。Sign in to the Azure portal and then find your Web App that you deployed in the first section.
  2. [設定] をクリックして、[認証/承認] を選択します。Click Settings, and then select Authentication / Authorization.
  3. [App Service 認証] をオンにし、[Azure Active Directory] を選択します。Turn on App Service Authentication and then select Azure Active Directory. 次のブレードで、[Express] を選択します。On the next blade, select Express.
  4. [既存の AD アプリを選択する] をクリックし、前に作成した webAPI AAD アプリケーションを選択します。Click Select Existing AD App, and select the webAPI AAD application you created earlier.

これで Web アプリケーションの認証に AAD を使用できます。You should now be able to use AAD to authenticate your web application.

Microsoft Flow にカスタム コネクタを追加するAdd the custom connector to Microsoft Flow

  1. OpenAPI を変更し、securityDefintions オブジェクトと Web アプリケーションに使用する AAD 認証を追加します。Modify your OpenAPI to add the securityDefintions object and AAD authentication used for the Web App. OpenAPI の host プロパティのセクションは次のようになります。The section of your OpenAPI with the host property should look like this:
// File header should be above here...

"host": "<your-root-url>",
"schemes": [
    "https"         //Make sure this is https!
],
"securityDefinitions": {
    "AAD": {
        "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. Microsoft Flow を参照し、「Microsoft Flow でカスタム コネクタを登録して使用する」の説明に従ってカスタム コネクタを追加します。Browse to Microsoft Flow, and add a custom connector as described in Register and use custom connectors in Microsoft Flow.
  2. OpenAPI をアップロードすると、Web API に AAD 認証を使用していることがウィザードによって自動的に検出されます。Once you have uploaded your OpenAPI, the wizard auto-detects that you are using AAD authentication for your Web API.
  3. カスタム コネクタに AAD 認証を構成します。Configure the AAD authentication for the custom connector.

    • クライアント ID: webAPI-CustomAPI のクライアント IDClient ID: Client ID of webAPI-CustomAPI
    • シークレット: webAPI CustomAPI のクライアント キーSecret: Client key of webAPI-CustomAPI
    • ログイン URL: https://login.windows.netLogin URL: https://login.windows.net
    • ResourceUri: webAPI のクライアント IDResourceUri: Client ID of webAPI
  4. [作成] をクリックして、カスタム コネクタへの接続を作成します。Click Create and creating a connection to the custom connector.

次のステップNext Steps

Azure Resource Manager カスタム コネクタのチュートリアルをご覧ください。Walk through the Azure Resource Manager custom connector tutorial.