Azure Logic Apps'ten özel API'leri çağırırken kimlik doğrulaması ekleme

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:

  • Kod değişikliği yok: Kodunuzu güncelleştirmeniz veya API'nizi yeniden dağıtmanız gerekmemesi için Api'nizi Azure portalı üzerinden Microsoft Entra Id ile koruyun.

    Dekont

    Varsayılan olarak, Azure portalında seçtiğ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.

  • API'nizin kodunu güncelleştirme: Kod aracılığıyla sertifika kimlik doğrulaması, temel kimlik doğrulaması veya Microsoft Entra kimlik doğrulamasını zorunlu kılarak API'nizi koruyun.

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 uygulamanız) için iki Microsoft Entra uygulama kimliği 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 kaynağınız, Microsoft Entra kimliğinde kimlik doğrulaması yapmak için bu Microsoft Entra uygulama kimliğini kullanır. Dizininiz için bu kimliği 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ında Microsoft Entra ID'yi seçin.

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

    Bahşiş

    Dizinler arasında geçiş yapmak için profilinizi seçin ve başka bir dizin seçin. İsterseniz Genel Bakış>Dizini değiştir'i de seçebilirsiniz.

  3. Dizin menüsündeki Yönet'in altında Uygulama kayıtları> Yeni kayıt'ı seçin.

    Tüm kayıtlar listesi dizininizdeki tüm uygulama kayıtlarını gösterir. Yalnızca uygulama kayıtlarınızı görüntülemek için Sahip olunan uygulamalar'ı seçin.

    Screenshot showing Azure portal with Microsoft Entra instance,

  4. Mantıksal uygulamanızın uygulama kimliği için kullanıcıya yönelik bir ad sağlayın. Desteklenen hesap türlerini seçin. Yeniden Yönlendirme URI'si için Web'i seçin, kimlik doğrulama yanıtının döndürüleceği benzersiz bir URL sağlayın ve Kaydet'i seçin.

    Screenshot showing

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

    Screenshot showing the application identity for your logic app.

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

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

  7. Genel Bakış bölmesindeki Temel Bileşenler'in altında, 3. Bölümde mantıksal uygulamanızın "istemci kimliği" olarak kullanmak üzere Uygulama Kimliğini kopyalayın ve kaydedin.

    Screenshot showing the application (client) ID underlined.

  8. Uygulama kimliği gezinti menüsünde Sertifikalar ve gizli diziler'i seçin.

  9. İstemci gizli dizileri sekmesinde Yeni istemci gizli dizisi'ni seçin.

  10. Açıklama için gizli diziniz için bir ad girin. Süresi Dolanlar'ın altında gizli diziniz 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.

    Screenshot showing secret creation for application identity.

    Sertifikalar ve gizli diziler bölmesindeki İstemci gizli dizileri'nin altında gizli diziniz artık bir gizli dizi değeri ve gizli dizi kimliğiyle birlikte görünür.

    Screenshot showing secret value and secret ID with copy button for secret value selected.

  11. 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ğrulaması Kimlik sağlayıcısı>ekle'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.

    Web uygulamanız veya API uygulamanız için yeni oluşturduğunuz uygulama kimliği artık Kimlik sağlayıcısı bölümünde görünür:

    Screenshot showing newly created application identity for web app or API app.

    Bahşiş

    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 uygulamanızın gezinti menüsünde Kimlik Doğrulama'yı seçin.

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

    Screenshot showing newly created application identity with 'Overview' pane open.

  3. Uygulama kimliğinin Genel Bakış bölmesi açıldıktan sonra Uygulama (istemci) Kimliği ve Dizin (kiracı) Kimliği değerlerini bulun. 3. Bölümde kullanmak üzere değerleri kopyalayın ve kaydedin.

    Screenshot showing application identity's 'Overview' pane open with 'Application (client) ID' value and 'Directory (tenant) ID' value underlined.

    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/{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:

Deploy to Azure

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"
}
Özellik Zorunlu Veri Akışı Açıklaması
tenant Evet Microsoft Entra kiracısı için GUID
audience Evet 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 Evet Mantıksal uygulamanızın uygulama kimliğinden istemci kimliği olan erişim isteyen istemcinin GUID'si
secret Evet Erişim belirtecini isteyen istemcinin uygulama kimliğindeki gizli dizi veya parola
type Evet 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.

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

{
   "type": "ClientCertificate",
   "password": "<password>",
   "pfx": "<long-pfx-key>"
}
Özellik Zorunlu Veri Akışı Açıklaması
type Evet Kimlik doğrulama türü. TLS/SSL istemci sertifikaları için değeri olmalıdır ClientCertificate.
password No İstemci sertifikasına erişme parolası (PFX dosyası)
pfx Evet İ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 desendir ve bu kimlik doğrulamasını web uygulamanızı veya API uygulamanızı oluşturmak için kullanılan herhangi bir dilde kullanabilirsiniz.

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

{
   "type": "Basic",
   "username": "<username>",
   "password": "<password>"
}
Özellik Zorunlu Veri Akışı Açıklaması
type Evet Kullanmak istediğiniz kimlik doğrulama türü. Temel kimlik doğrulaması için değeri olmalıdır Basic.
username Evet Kimlik doğrulaması için kullanmak istediğiniz kullanıcı adı
password Evet 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