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:
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.
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.
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.
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.
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.
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.
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.
Uygulama kayıtları listesinden yeni uygulama kimliğinizi seçin.
Uygulama kimliği gezinti menüsünden Genel Bakış'ı seçin.
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.
Uygulama kimliği gezinti menüsünde Sertifikalar ve gizli diziler'i seçin.
İstemci gizli dizileri sekmesinde Yeni istemci gizli dizisi'ni seçin.
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.
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.
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
Azure portalında web uygulamanızı veya API uygulamanızı bulun ve seçin.
Ayarlar altında Kimlik Doğrulaması Kimlik sağlayıcısı>ekle'yi seçin.
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.
Şimdi web uygulamanız veya API uygulamanız için aşağıdaki gibi bir uygulama kimliği oluşturun:
Uygulama kayıt türü için Yeni uygulama kaydı oluştur'u seçin.
Ad için uygulama kimliğiniz için bir ad belirtin.
Desteklenen hesap türleri için senaryonuza uygun hesap türlerini seçin.
Erişimi kısıtla için Kimlik doğrulaması gerektir'i seçin.
Kimliği Doğrulanmamış istekler için senaryonuza göre seçeneğini belirleyin.
İş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:
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
Web uygulamanızın gezinti menüsünde Kimlik Doğrulama'yı seçin.
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.
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.
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:
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.
Mantıksal uygulama tanımınızı kod görünümünde açın.
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.