PowerApps에서 Web API용 사용자 지정 커넥터 빌드Build a custom connector for a Web API in PowerApps

이 자습서에서는 PowerApps에서 ASP.NET Web API 빌드를 시작하고, Azure Web Apps에서 호스트하고, Azure Active Directory 인증을 활성화한 다음 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 PowerApps. API를 등록한 후에 연결하고 앱에서 호출할 수 있습니다.After the API is registered, you can connect to it and call it from your app.

필수 조건Prerequisites

ASP.NET Web API를 만들고 Azure에 배포Create an ASP.NET Web API and deploy it to Azure

  1. Visual Studio에서 파일 > 새 프로젝트를 클릭하여 새 C# ASP.NET 웹 응용 프로그램을 만듭니다.In Visual Studio, click File > New Project to create a new C# ASP.NET web application.

    새 웹앱

  2. Web API 템플릿을 선택합니다.Select the Web API template. 클라우드의 호스트를 선택한 상태로 둡니다.Leave Host in the cloud checked. 인증 변경을 클릭합니다.Click Change Authentication.

    새 웹 프로젝트 템플릿

  3. 인증 없음을 선택한 다음 확인을 클릭합니다.Select No Authentication, and then click OK.

    인증 없음

  4. 새 ASP.NET 프로젝트 대화 상자에서 확인을 클릭합니다.Click OK on the New ASP.NET Project dialog. Microsoft Azure 웹앱 구성 대화 상자가 나타납니다.The Configure Microsoft Azure Web App dialog appears.

    Microsoft Azure 웹앱 구성]]

    Azure 계정을 선택하고, 웹앱 이름을 입력하고(또는 기본값을 그대로 적용) 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). 웹앱이 배포되어야 할 지역을 선택합니다.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. 마지막으로 확인을 클릭합니다.Finally, click OK.

  5. Web API를 빌드합니다.Build out your Web API.

    참고: Web API에 대한 코드가 아직 준비되지 않은 경우 자습서 ASP.NET Web API 2 시작(C#)을 시도하세요.Note: 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에 연결하려면 해당 작업을 설명하는 OpenAPI 파일이 필요합니다.To connect our Web API to PowerApps, we'll need an OpenAPI file that describes its operations. 온라인 편집기를 사용하여 사용자 고유의 OpenAPI를 작성할 수 있지만 이 자습서에서는 Swashbuckle이라는 오픈 소스 도구를 사용합니다.You could write an OpenAPI of your own using the online editor, but for this tutorial, you'll use an open-source tool named Swashbuckle. 도구 > NuGet 패키지 관리자 > 패키지 관리자 콘솔을 클릭한 다음 패키지 관리자 콘솔에서 Install-Package Swashbuckle 명령을 입력하여 Visual Studio 프로젝트에 Swashbuckle Nuget 패키지를 설치합니다.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 응용 프로그램을 실행할 때 이제 OpenAPI 파일이 URL http://<your root URL>/swagger/docs/v1에서 생성됩니다.Tip: 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에서 게시하려면 솔루션 탐색기에서 웹 프로젝트를 마우스 오른쪽 단추로 클릭하고, 게시...을 클릭한 다음 게시 대화 상자에 표시되는 메시지를 따릅니다.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 문서는 유효하지 않습니다.Important: An OpenAPI document with duplicate operation IDs is invalid. 샘플 C# 템플릿을 사용하는 경우 작업 ID Values_Get은 두 번 반복됩니다.If you are using the sample C# template, the operation ID Values_Get is repeated twice. 인스턴스 하나를 Value_Get으로 변경하고 다시 게시하여 이를 해결할 수 있습니다.You can correct this by changing one instance to Value_Get and re-publishing. 이 자습서에서 샘플 OpenAPI 파일을 다운로드할 수도 있습니다.You can also download a sample OpenAPI file from this tutorial. 사용하기 전에 메모를 제거하십시오(//로 시작).Be sure to remove the comments (starting with //) before using it.

Azure Active Directory 인증 설정Set up Azure Active Directory authentication

이제 Azure에서 두 개의 AAD(Azure Active Directory) 응용 프로그램을 만듭니다.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.

중요 두 앱 모두 동일한 디렉터리에 있어야 합니다.Important Both apps must be in the same directory.

첫 번째 AAD 응용 프로그램: Web API 보안 설정First AAD application: Securing the Web API

첫 번째 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.
  • 중요: 응용 프로그램 ID를 적어 둡니다.Important: Note the application ID. 나중에 필요합니다.You will need it later.

두 번째 AAD 응용 프로그램: 사용자 지정 커넥터 및 위임된 액세스 보안 설정Second AAD application: Securing the custom connector and delegated access

두 번째 AAD 응용 프로그램은 사용자 지정 커넥터 등록을 보호하고 첫 번째 응용 프로그램에 의해 보호된 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 웹앱에 인증 추가Add authentication to your Azure Web App

  1. Azure Portal에 로그인한 다음 첫 번째 섹션에서 배포한 웹앱을 찾습니다.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. 다음 블레이드에서 기본을 선택합니다.On the next blade, select Express.
  4. 기존 AD 앱 선택을 클릭하고, 앞에서 만든 webAPI AAD 응용 프로그램을 선택합니다.Click Select Existing AD App, and select the webAPI AAD application you created earlier.

이제 AAD를 사용하여 웹 응용 프로그램을 인증할 수 있습니다.You should now be able to use AAD to authenticate your web application.

PowerApps에 사용자 지정 커넥터 추가Add the custom connector to PowerApps

  1. OpenAPI 파일을 수정하여 웹앱에 사용되는 securityDefintions 개체 및 AAD 인증을 추가합니다.Modify your OpenAPI file to add the securityDefintions object and AAD authentication used for the Web App. host 속성을 사용하는 OpenAPI 파일의 섹션은 다음과 같이 표시되어야 합니다.The section of your OpenAPI file 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": "implicit",
        "authorizationUrl": "https://login.windows.net/common/oauth2/authorize",
        "scopes": {}
    }
},

// The rest of the OpenAPI document follows...
  1. PowerApps를 찾고 PowerApps에서 사용자 지정 커넥터 등록 및 사용에 설명된 대로 사용자 지정 커넥터를 추가합니다.Browse to PowerApps, and add a custom connector as described in Register and use custom connectors in PowerApps.
  2. OpenAPI 파일을 업로드하면 마법사에서 Web API에 대해 AAD 인증을 사용하고 있는지 자동 검색합니다.Once you have uploaded your OpenAPI file, 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.