PowerApps'te Web API'si için özel bağlayıcı oluşturmaBuild a custom connector for a Web API in PowerApps

Bu öğreticide, ASP.NET Web API oluşturmaya nasıl başlanacağı, ASP.NET Web API'nin Azure Web Uygulamalarında nasıl barındırılacağı, Azure Active Directory kimlik doğrulamasının nasıl etkinleştirileceği ve PowerApps'e ASP.NET Web API'nin nasıl kaydedileceği gösterilmektedir.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. Kaydedilen API'ye bağlanabilir ve uygulamanızdan API çağrısı gerçekleştirebilirsiniz.After the API is registered, you can connect to it and call it from your app.

ÖnkoşullarPrerequisites

ASP.NET Web API oluşturma ve Azure'a dağıtmaCreate an ASP.NET Web API and deploy it to Azure

  1. Visual Studio'da, yeni bir C# ASP.NET web uygulaması oluşturmak için Dosya > Yeni Proje'ye tıklayın.In Visual Studio, click File > New Project to create a new C# ASP.NET web application.

    Yeni Web Uygulaması

  2. Web API'si şablonunu seçin.Select the Web API template. Bulutta barındır seçeneğini işaretlenmiş şekilde bırakın.Leave Host in the cloud checked. Kimlik Doğrulamayı Değiştir'e tıklayın.Click Change Authentication.

    Yeni Web Projesi Şablonu

  3. Kimlik Doğrulama Yok'u seçin ve Tamam'a tıklayın.Select No Authentication, and then click OK.

    Kimlik Doğrulama Yok

  4. Yeni ASP.NET Projesi iletişim kutusunda Tamam'a tıklayın.Click OK on the New ASP.NET Project dialog. Microsoft Azure Web Uygulamasını Yapılandır iletişim kutusu görüntülenir.The Configure Microsoft Azure Web App dialog appears.

    Microsoft Azure Web Uygulamasını Yapılandır]]

    Azure hesabınızı seçin, bir Web Uygulaması adı yazın (veya varsayılan değeri bırakın) ve Azure Aboneliğinizi seçin.Select your Azure account, type a Web App name (or leave the default), and select your Azure Subscription. Bir App Service planı (aboneliğinizde bulunan bir Web Apps koleksiyonu) seçin veya oluşturun.Select or create an App Service plan (a collection of Web Apps within your subscription). Bir Kaynak grubu (aboneliğinizde bulunan bir Azure kaynakları grubu) seçin veya oluşturun.Select or create a Resource group (a grouping of Azure resources within your subscription). Web Uygulamasının dağıtılacağı bölgeyi seçin.Select the region where the Web App should be deployed. Web API'niz için gerekiyorsa bir Azure Veritabanı sunucusu seçin veya oluşturun.If required for your Web API, select or create an Azure Database server. Son olarak Tamam'a tıklayın.Finally, click OK.

  5. Web API'nizi oluşturun.Build out your Web API.

    Not: Bir Web API'si için kodunuz hazır değilse Getting Started with ASP.NET Web API 2 (C#) (ASP.NET Web API 2'yi Kullanmaya Başlama (C#)) öğreticisini deneyin.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'mizi PowerApps'e bağlamak için, API'nin işlemlerini açıklayan bir OpenAPI dosyası gerekir.To connect our Web API to PowerApps, we'll need an OpenAPI file that describes its operations. Çevrimiçi düzenleyiciyi kullanarak kendi OpenAPI'nizi yazabilirsiniz, ancak bu öğretici için Swashbuckle adlı bir açık kaynaklı aracı kullanacaksınız.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. Araçlar > NuGet Paket Yöneticisi > Paket Yöneticisi Konsolu seçeneklerine tıklayarak Swashbuckle Nuget paketini Visual Studio projenize yükleyin ve ardından Paket Yöneticisi Konsolu'na Install-Package Swashbuckle komutunu yazın.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

    İpucu: Swashbuckle'ı yükledikten sonra Web API uygulamanızı çalıştırdığınızda http://<your root URL>/swagger/docs/v1 URL'de bir OpenAPI dosyası oluşturulur.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. Ayrıca http://<your root URL>/swagger adresinde de bir kullanıcı arabirimi oluşturulur.A generated user interface is also available at http://<your root URL>/swagger.

  7. Web API'niz hazır olduğunda bunu Azure'a yayımlayın.When your Web API is ready, publish it to Azure. Visual Studio'dan yayımlamak için Çözüm Gezgini'ndeki web projesine sağ tıklayın, Yayımla... seçeneğine tıklayın ve ardından Yayımla iletişim kutusundaki istemleri izleyin.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 adresine giderek OpenAPI JSON'ı alın.Retrieve the OpenAPI JSON by navigating to https://<azure-webapp-url>/swagger/docs/v1. İçeriği JSON dosyası olarak kaydedin.Save the content as a JSON file. Tarayıcınıza bağlı olarak, metni boş bir metin dosyasına kopyalayıp yapıştırmanız gerekebilir.Depending on your browser, you may need to copy and paste the text into an empty text file.

    Önemli: Yinelenen işlem kimlikleri içeren OpenAPI belgeleri geçersizdir.Important: An OpenAPI document with duplicate operation IDs is invalid. Örnek C# şablonunu kullanıyorsanız Values_Get işlem kimliği iki kez yinelenir.If you are using the sample C# template, the operation ID Values_Get is repeated twice. Bir örneği Value_Get olarak değiştirip yeniden yayımlayarak bunu düzeltebilirsiniz.You can correct this by changing one instance to Value_Get and re-publishing. Ayrıca bu öğreticiden örnek OpenAPI dosyası da indirebilirsiniz.You can also download a sample OpenAPI file from this tutorial. Kullanmadan önce açıklamaları (// ile başlayan) kaldırdığınızdan emin olun.Be sure to remove the comments (starting with //) before using it.

Azure Active Directory kimlik doğrulamasını ayarlamaSet up Azure Active Directory authentication

Şimdi de Azure'da iki Azure Active Directory (AAD) uygulaması oluşturacaksınız.You will now create two Azure Active Directory (AAD) applications in Azure. Bunun nasıl yapılacağına ilişkin bir örnek için Azure Resource Manager öğreticisine bakın.For an example of how to do this, see the Azure Resource Manager tutorial.

Önemli Her iki uygulama da aynı dizinde olmalıdır.Important Both apps must be in the same directory.

Birinci AAD uygulaması: Web API'sinin güvenliğini sağlamaFirst AAD application: Securing the Web API

Birinci AAD uygulaması, Web API'sinin güvenliğini sağlamak için kullanılır.The first AAD application is used to secure the Web API. webAPI olarak adlandırın.Name it webAPI. Aşağıdaki değerleri kullanarak yukarıda bulunan bağlantılı öğretici adımlarını (yalnızca "Azure Active Directory'de kimlik doğrulamasını etkinleştirme" başlıklı kısım) uygulayın:Follow the above linked tutorial steps (just the section titled "Enable authentication in Azure Active Directory") with the following values:

  • Oturum Açma URL'si: https://login.windows.netSign-on URL: https://login.windows.net
  • Yanıt URL'si: https://<your-root-url>/.auth/login/aad/callbackReply URL: https://<your-root-url>/.auth/login/aad/callback
  • İstemci anahtarı gerekmez.There is no need for a client key.
  • Herhangi bir izin için temsilci seçme gerekmez.There is no need to delegate any permissions.
  • Önemli: Uygulama kimliğini not edin.Important: Note the application ID. Bu bilgiye daha sonra ihtiyacınız olacaktır.You will need it later.

İkinci AAD uygulaması: Özel bağlayıcının ve temsilci erişiminin güvenliğini sağlamaSecond AAD application: Securing the custom connector and delegated access

İkinci AAD uygulaması, özel bağlayıcı kaydının güvenliğini sağlamak ve birinci uygulama tarafından korunan Web API'sine temsilci erişimi elde etmek için kullanılır.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. Bunu webAPI-customAPI olarak adlandırın.Name this one webAPI-customAPI .

  • Oturum Açma URL'si: https://login.windows.netSign-on URL: https://login.windows.net
  • Yanıt URL'si: https://msmanaged-na.consent.azure-apim.net/redirectReply URL: https://msmanaged-na.consent.azure-apim.net/redirect
  • Web API'sine yönelik temsilci erişimine sahip olmak için izinler ekleyin.Add permissions to have delegated access to Web API.
  • Daha sonra bu uygulamanın da uygulama kimliğine ihtiyacınız olacak; not etmeyi unutmayın.You need the application ID of this application later as well, so note it.
  • İstemci anahtarı oluşturun ve güvenli bir yerde depolayın.Generate a client key and store is somewhere safe. Bu anahtara daha sonra ihtiyacımız olacak.We need this key later.

Azure Web Uygulamanıza kimlik doğrulaması eklemeAdd authentication to your Azure Web App

  1. Azure portalında oturum açın ve ardından birinci bölümde dağıttığınız Web Uygulamanızı bulun.Sign in to the Azure portal and then find your Web App that you deployed in the first section.
  2. Ayarlar'a tıklayın ve ardından Kimlik Doğrulama / Yetkilendirme'yi seçin.Click Settings, and then select Authentication / Authorization.
  3. App Service Kimlik Doğrulama'yı etkinleştirin ve Azure Active Directory'yi seçin.Turn on App Service Authentication and then select Azure Active Directory. Sonraki dikey pencerede Hızlı'yı seçin.On the next blade, select Express.
  4. Var Olan AD Uygulamasını Seç'e tıklayın ve daha önce oluşturduğunuz webAPI AAD uygulamasını seçin.Click Select Existing AD App, and select the webAPI AAD application you created earlier.

Artık web uygulamanızda kimlik doğrulaması gerçekleştirmek için AAD'yi kullanabilmeniz gerekir.You should now be able to use AAD to authenticate your web application.

Özel bağlayıcıyı PowerApps'e eklemeAdd the custom connector to PowerApps

  1. Web Uygulaması için kullanılan AAD kimlik doğrulamasını ve securityDefintions nesnesini eklemek için OpenAPI dosyanızı değiştirin.Modify your OpenAPI file to add the securityDefintions object and AAD authentication used for the Web App. OpenAPI dosyanızın host özelliğini içeren bölümü şöyle görünmelidir: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'e gidin ve PowerApps'te özel bağlayıcıları kaydetme ve kullanma bölümünde açıklandığı şekilde bir özel bağlayıcı ekleyin.Browse to PowerApps, and add a custom connector as described in Register and use custom connectors in PowerApps.
  2. OpenAPI dosyanızı karşıya yüklemenizin ardından sihirbaz, Web API'niz için AAD kimlik doğrulaması kullandığınızı otomatik olarak algılar.Once you have uploaded your OpenAPI file, the wizard auto-detects that you are using AAD authentication for your Web API.
  3. Özel bağlayıcı için AAD kimlik doğrulamasını yapılandırın.Configure the AAD authentication for the custom connector.

    • İstemci Kimliği: webAPI-CustomAPI'nin istemci kimliğiClient ID: Client ID of webAPI-CustomAPI
    • Gizli Dizi: webAPI-CustomAPI'nin istemci anahtarıSecret: Client key of webAPI-CustomAPI
    • Oturum Açma URL'si: https://login.windows.netLogin URL: https://login.windows.net
    • ResourceUri: webAPI'nin istemci kimliğiResourceUri: Client ID of webAPI
  4. Oluştur'a tıklayın ve özel bağlayıcı ile bağlantı oluşturun.Click Create and creating a connection to the custom connector.

Sonraki AdımlarNext Steps

Azure Resource Manager özel bağlayıcı öğreticisindeki adımları uygulayın.Walk through the Azure Resource Manager custom connector tutorial.