Azure Logic Apps'ten özel API'leri çağırmak için Microsoft Entra kimlik doğrulaması ekleme

Şunlar için geçerlidir: Azure Logic Apps (Tüketim)

API'lerinize yapılan çağrıların güvenliğini artırmak için, Kodunuzu güncelleştirmeniz gerekmeyecek şekilde Azure portalı aracılığıyla Microsoft Entra kimlik doğrulamasını ayarlayabilirsiniz. İsterseniz, API'nizin kodu aracılığıyla kimlik doğrulamasının gerekli ve zorunlu olmasını da sağlayabilirsiniz.

Kimlik doğrulamasını aşağıdaki yollarla ekleyebilirsiniz:

Kodu değiştirmeden API'nize yapılan çağrıların kimliğini doğrulama

Bu yöntemin genel adımları şunlardır:

  1. Biri mantıksal uygulama kaynağınız ve diğeri de web uygulamanız (veya API uygulaması) için iki Microsoft Entra uygulama kimliği (uygulama kaydı) oluşturun.

  2. API'nize yapılan çağrıların kimliğini doğrulamak için mantıksal uygulamanızın Microsoft Entra uygulama kimliğiyle ilişkili hizmet sorumlusunun kimlik bilgilerini (istemci kimliği ve gizli dizi) kullanın.

  3. Mantıksal uygulamanızın iş akışı tanımına uygulama kimliklerini ekleyin.

Bölüm 1: Mantıksal uygulamanız için Microsoft Entra uygulama kimliği oluşturma

Mantıksal uygulama kaynaklarınız, Microsoft Entra ID'ye kimlik doğrulaması yapmak için bu Microsoft Entra uygulama kimliğini kullanır. Bu kimliği kiracınız için yalnızca bir kez ayarlamanız gerekir. Örneğin, her mantıksal uygulama için benzersiz kimlikler oluştursanız bile tüm mantıksal uygulamalarınız için aynı kimliği kullanmayı seçebilirsiniz. Bu kimlikleri Azure portalında ayarlayabilir veya PowerShell'i kullanabilirsiniz.

  1. Azure portalı arama kutusunda Microsoft Entra Id'yi bulun ve seçin.

  2. Web uygulamanız veya API uygulamanızla aynı kiracıda olduğunuzu onaylayın.

    İpucu

    Kiracılar arasında geçiş yapmak için Azure başlık çubuğundan profilinizi açın ve Dizini değiştir'i seçin.

  3. Kiracı kaynağı menüsünde, Yönet'in altında Uygulama kayıtları'nı seçin.

    Uygulama kayıtları sayfasında kiracınızdaki tüm uygulama kayıtları gösterilir. Yalnızca uygulama kayıtlarınızı görüntülemek için Sahip olunan uygulamalar'ı seçin.

  4. Araç çubuğundan, Yeni kayıt öğesini seçin.

    Microsoft Entra kiracısı, Uygulama kayıtları bölmesi ve Yeni kayıt için seçili komutu içeren Azure portalını gösteren ekran görüntüsü.

  5. Uygulama kaydetme sayfasında şu adımları izleyin:

    1. Ad alanında mantıksal uygulamanızın uygulama kimliği için kolay ve kullanıcıya yönelik bir ad sağlayın.

    2. Desteklenen hesap türleri'nin altında, uygulama kimliğini kullanabilen veya API'nize erişim elde eden hesap türlerini en iyi açıklayan seçeneği belirleyin.

    3. Yeniden Yönlendirme URI'si altında, platform olarak Web'i seçin. Bu seçeneğin yanında, kimlik doğrulama yanıtını döndürmek için konum için benzersiz bir URL sağlayın.

      Kimlik doğrulama yanıtının gönderileceği yerin uygulama kimliği adı ve URL'si ile bir uygulamayı kaydetme bölmesini gösteren ekran görüntüsü.

    4. İşiniz bittiğinde Kaydet'i seçin.

    Sahip olunan uygulamalar sekmesi artık oluşturduğunuz uygulama kimliğini gösterir. Bu kimlik görünmüyorsa, araç çubuğunda Yenile'yi seçin.

    Mantıksal uygulamanızın uygulama kimliğini gösteren ekran görüntüsü.

  6. Uygulama kayıtları listesinden yeni uygulama kimliğinizi seçin.

  7. Uygulama kimliği gezinti menüsünden Genel Bakış'ı seçin.

  8. Genel Bakış sayfasında, Temel Bileşenler'in altında Uygulama (istemci) Kimliğini kopyalayıp 3. Bölümde mantıksal uygulamanızın istemci kimliği olarak kullanmak üzere kaydedin.

    Uygulama (istemci) kimliğinin vurgulandığı ekran görüntüsü.

  9. Uygulama kimliği menüsündeki Yönet'in altında Sertifikalar ve gizli diziler'i seçin.

  10. İstemci gizli dizileri sayfasında Yeni istemci gizli dizisi'ni seçin.

  11. İstemci gizli dizisi ekle bölmesinde, Açıklama için gizli diziniz için bir ad belirtin. Süre Sonu için sırrınız veya gizli anahtarınız için bir süre seçin. İşiniz bittiğinde Ekle'yi seçin.

    Oluşturduğunuz gizli dizi, mantıksal uygulamanızın uygulama kimliğinin "gizli dizisi" veya parolası olarak görev yapar.

    Uygulama kimliği için gizli dizi oluşturmayı gösteren ekran görüntüsü.

    Sertifikalar ve gizli diziler sayfasındaki İstemci gizli dizileri sekmesinde gizli diziniz artık bir gizli dizi değeri ve gizli dizi kimliğiyle birlikte görünür.

    Gizli dizi değerini ve gizli dizi değerinin seçili olduğu kopyala düğmesinin gösterildiği gizli dizi kimliğini gösteren ekran görüntüsü.

  12. Gizli dizi değerini daha sonra kullanmak üzere kopyalayın. 3. Bölümde mantıksal uygulamanızı yapılandırırken, bu değeri "gizli dizi" veya parola olarak belirtirsiniz.

Bölüm 2: Web uygulamanız veya API uygulamanız için Microsoft Entra uygulama kimliği oluşturma

Web uygulamanız veya API uygulamanız zaten dağıtıldıysa, azure portalında kimlik doğrulamasını açabilir ve uygulama kimliğini oluşturabilirsiniz. Aksi takdirde, Azure Resource Manager şablonuyla dağıtım yaparken kimlik doğrulamayı açabilirsiniz.

Azure portalında dağıtılan bir web uygulaması veya API uygulaması için uygulama kimliği oluşturma

  1. Azure portalında web uygulamanızı veya API uygulamanızı bulun ve seçin.

  2. Ayarlar altında Kimlik Doğrulama>'yi seçin.

  3. Kimlik sağlayıcısı ekle bölmesi açıldıktan sonra, Temel bilgiler sekmesinde, Kimlik sağlayıcısı listesinde Microsoft'u seçerek Microsoft Entra kimliklerini kullanın ve ardından Ekle'yi seçin.

  4. Şimdi web uygulamanız veya API uygulamanız için aşağıdaki gibi bir uygulama kimliği oluşturun:

    1. Uygulama kayıt türü için Yeni uygulama kaydı oluştur'u seçin.

    2. Ad için uygulama kimliğiniz için bir ad belirtin.

    3. Desteklenen hesap türleri için senaryonuza uygun hesap türlerini seçin.

    4. Erişimi kısıtla için Kimlik doğrulaması gerektir'i seçin.

    5. Kimliği Doğrulanmamış istekler için senaryonuza göre seçeneğini belirleyin.

    6. İşiniz bittiğinde Ekle'yi seçin.

    Kimlik sağlayıcısı bölümünde, web uygulamanız veya API uygulamanız için yeni uygulama kimliği şimdi görünür:

    Web uygulaması veya API uygulaması için yeni oluşturulan uygulama kimliğini gösteren ekran görüntüsü.

    İpucu

    Uygulama kimliği görünmüyorsa, araç çubuğunda Yenile'yi seçin.

Şimdi web uygulamanız veya API uygulamanız için oluşturduğunuz uygulama kimliği için uygulama (istemci) kimliğini ve kiracı kimliğini bulmanız gerekir. Bu kimlikleri Bölüm 3'te kullanırsınız. Bu nedenle, Azure portalı için aşağıdaki adımlarla devam edin.

Azure portalında web uygulamanız veya API uygulamanız için uygulama kimliğinin istemci kimliğini ve kiracı kimliğini bulma

  1. Web uygulaması menünüzün Yönet'in altında Kimlik Doğrulaması'yı seçin.

  2. Kimlik sağlayıcısı bölümünde, daha önce oluşturduğunuz uygulama kimliğinizi bulun. Uygulama kimliği adını seçin.

    Yeni oluşturulan uygulama kimliği için açık kimlik doğrulama sayfasını gösteren ekran görüntüsü.

  3. Genel Bakış sayfasında Uygulama (istemci) kimliği ve Dizin (kiracı) kimliği değerlerini bulun. 3. Bölümde kullanmak üzere değerleri kopyalayın ve kaydedin.

    Ekran görüntüsü, web uygulaması uygulama kimliği için açılan Genel Bakış sayfasını ve uygulama (istemci) kimliği ve dizin (kiracı) kimliği için seçilen değerleri gösterir.

    Gerekirse, web uygulamanızda veya API uygulamanızın dağıtım şablonunda kiracı kimliği GUID'sini de kullanabilirsiniz. Bu GUID, belirli bir kiracınızın GUID'sidir ("kiracı kimliği") ve şu URL'de görünmelidir: https://sts.windows.net/<tenant-GUID>

Azure Resource Manager şablonuyla dağıtım yaparken kimlik doğrulamayı ayarlama

Azure Resource Manager şablonu (ARM şablonu) kullanıyorsanız, web uygulamanız veya API uygulamanız için mantıksal uygulamanızın uygulama kimliğinden farklı bir Microsoft Entra uygulama kimliği oluşturmanız gerekir. Uygulama kimliğini oluşturmak ve ardından istemci kimliğini ve kiracı kimliğini bulmak için Azure portalının 2. Bölümünde yer alan önceki adımları izleyin. Uygulamanızın dağıtım şablonunda ve ayrıca Bölüm 3'te hem istemci kimliğini hem de kiracı kimliğini kullanacaksınız.

Önemli

Web uygulamanız veya API uygulamanız için Microsoft Entra uygulama kimliğini oluştururken PowerShell'i değil Azure portalını kullanmanız gerekir. PowerShell komutu, bir web sitesinde kullanıcıları oturum açmak için gerekli izinleri ayarlamaz.

İstemci kimliğini ve kiracı kimliğini aldıktan sonra, bu kimlikleri dağıtım şablonunuzdaki web uygulamanızın veya API uygulamanızın alt kaynağı olarak ekleyin:

"resources": [
   {
      "apiVersion": "2015-08-01",
      "name": "web",
      "type": "config",
      "dependsOn": ["[concat('Microsoft.Web/sites/','parameters('webAppName'))]"],
      "properties": {
         "siteAuthEnabled": true,
         "siteAuthSettings": {
            "clientId": "<client-ID>",
            "issuer": "https://sts.windows.net/<tenant-ID>/"
         }
      }
   }
]

Boş bir web uygulamasını ve mantıksal uygulamayı Microsoft Entra kimlik doğrulamasıyla birlikte otomatik olarak dağıtmak için şablonun tamamını burada görüntüleyin veya aşağıdaki Azure'a Dağıt düğmesini seçin:

Azure’a dağıtın

Bölüm 3: Mantıksal uygulamanızdaki Yetkilendirme bölümünü doldurma

Önceki şablonda zaten bu yetkilendirme bölümü ayarlanmıştır, ancak mantıksal uygulama tanımınızı doğrudan yazarsanız, tam yetkilendirme bölümünü eklemeniz gerekir.

  1. Mantıksal uygulama tanımınızı kod görünümünde açın.

  2. HTTP eylem tanımına gidin, Yetkilendirme bölümünü bulun ve aşağıdaki özellikleri ekleyin:

{
   "tenant": "<tenant-ID>",
   "audience": "<client-ID-from-Part-2-web-app-or-API app>",
   "clientId": "<client-ID-from-Part-1-logic-app>",
   "secret": "<secret-from-Part-1-logic-app>",
   "type": "ActiveDirectoryOAuth"
}
Mülk Zorunlu Açıklama
tenant Yes Microsoft Entra kiracısının GUID'si.
audience Yes Web uygulamanızın veya API uygulamanızın uygulama kimliğinden istemci kimliği olan, erişmek istediğiniz hedef kaynağın GUID'si.
clientId Yes Erişim isteyen istemcinin GUID değeri, mantıksal uygulamanızın uygulama kimliğinden alınan istemci kimliğidir.
secret Yes Erişim belirtecini talep eden istemcinin uygulama kimliğine ait gizli anahtar veya parola.
type Yes Kimlik doğrulama türü. ActiveDirectoryOAuth kimlik doğrulaması için değeri olur ActiveDirectoryOAuth.

Örneğin:

{
   "actions": {
      "HTTP": {
         "inputs": {
            "method": "POST",
            "uri": "https://your-api-azurewebsites.net/api/your-method",
            "authentication": {
               "tenant": "tenant-ID",
               "audience": "client-ID-from-azure-ad-app-for-web-app-or-api-app",
               "clientId": "client-ID-from-azure-ad-app-for-logic-app",
               "secret": "key-from-azure-ad-app-for-logic-app",
               "type": "ActiveDirectoryOAuth"
            }
         }
      }
   }
}

Kod aracılığıyla API çağrılarının güvenliğini sağlama

Sertifika kimlik doğrulaması

Mantıksal uygulama iş akışınızdan web uygulamanıza veya API uygulamanıza gelen istekleri doğrulamak için istemci sertifikalarını kullanabilirsiniz. Kodunuzu ayarlamak için TLS karşılıklı kimlik doğrulamasını yapılandırmayı öğrenin.

Önemli

Kimlik bilgileri, gizli diziler, erişim anahtarları, bağlantı dizeleri, sertifikalar, parmak izleri ve benzer bilgiler gibi hassas ve kişisel verileri her zaman en yüksek kullanılabilir veya desteklenen güvenlik düzeyiyle koruyun ve koruyun.

Microsoft Entra Id ve Azure Key Vault kullanarak bu tür bilgileri güvenli bir şekilde depoladığınızdan emin olun. Bu bilgileri sabit kodlamayın, diğer kullanıcılarla paylaşmayın veya başkalarının erişebileceği herhangi bir yerde düz metin olarak kaydetmeyin. Gizli bilgilerin tehlikeye girmesi durumunda bu bilgileri yenilemek veya iptal etmek için bir plan oluşturun. Daha fazla bilgi için aşağıdaki kaynaklara bakın:

Yetkilendirme bölümünde aşağıdaki özellikleri ekleyin:

{
   "type": "ClientCertificate",
   "password": "<password>",
   "pfx": "<long-pfx-key>"
}
Mülk Zorunlu Açıklama
type Yes Kimlik doğrulama türü. TLS/SSL istemci sertifikaları için değeri olmalıdır ClientCertificate.
password Hayır İstemci sertifikasına (PFX dosyası) erişme parolası.
pfx Yes İstemci sertifikasının (PFX dosyası) base64 ile kodlanmış içeriği.

Temel kimlik doğrulama

Mantıksal uygulamanızdan web uygulamanıza veya API uygulamanıza gelen istekleri doğrulamak için kullanıcı adı ve parola gibi temel kimlik doğrulamasını kullanabilirsiniz. Temel kimlik doğrulaması yaygın bir desen olsa da ve bu kimlik doğrulamasını web uygulamanızı veya API uygulamanızı oluşturmak için kullanılan herhangi bir dilde kullanabilirsiniz, ancak her zaman kullanılabilir veya desteklenen en iyi kimlik doğrulama düzeyini kullanın.

Uyarı

Microsoft , kimlik doğrulaması ve yetkilendirme için aşağıdaki akışların kullanılmasını önerir:

  • OAuth 2.0 için Kaynak Sahibi Parola Kimlik Bilgileri (ROPC)

    Bu akış, uygulamada parolayla oturum açmanızı sağlar. Akış çok faktörlü kimlik doğrulaması (MFA) ile uyumsuzdur, uygulamada çok yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca diğer daha güvenli akışlar desteklenmiyorsa veya kullanılamıyorsa kullanın.

    Daha fazla bilgi için bkz. Oauth 2.0 Kaynak Sahibi Parola Kimlik Bilgileri.

  • OAuth 2.0 için örtük yetki akışı

    Bu belirteç tabanlı akış, sunucunun verileri işleme POST üzerinde daha güvenli bir denetime sahip olduğu geleneksel web uygulamalarına yöneliktir ve genellikle yetkilendirme kodu akışıyla birlikte kullanılır. Bu akışın kimlik belirteçlerini veya erişim belirteçlerini işleme ve döndürme şekli nedeniyle akış, uygulamada çok yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca diğer daha güvenli akışlar desteklenmediğinde veya kullanılabilir olmadığında kullanın.

    Daha fazla bilgi için OAuth 2.0 örtük yetki akışı bölümüne bakın.

Yetkilendirme bölümünde aşağıdaki özellikleri ekleyin:

{
   "type": "Basic",
   "username": "<username>",
   "password": "<password>"
}
Mülk Zorunlu Açıklama
type Yes Kullanmak istediğiniz kimlik doğrulama türü. Temel kimlik doğrulaması için değeri **olmalıdırBasic**.
username Yes Kimlik doğrulaması için kullanmak istediğiniz kullanıcı adı.
password Yes Kimlik doğrulaması için kullanmak istediğiniz parola.

Kod aracılığıyla Microsoft Entra kimlik doğrulaması

Varsayılan olarak, Azure portalında etkinleştirdiğiniz Microsoft Entra kimlik doğrulaması ayrıntılı yetkilendirme sağlamaz. Örneğin, bu kimlik doğrulaması API'nizi belirli bir kullanıcı veya uygulama için değil yalnızca belirli bir kiracıya kilitler.

Kod aracılığıyla mantıksal uygulamanıza API erişimini kısıtlamak için JSON web belirtecine (JWT) sahip üst bilgiyi ayıklayın. Arayanın kimliğini denetleyin ve eşleşmeyen istekleri reddedin.

Sonraki adımlar