Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure App Service ve Azure İşlevleri uygulamaları için yönetilen kimlik oluşturma ve bunu diğer kaynaklara erişmek için kullanma adımları gösterilmektedir.
Microsoft Entra Id'den yönetilen kimlik, uygulamanızın Azure Key Vault gibi diğer Microsoft Entra korumalı kaynaklara kolayca erişmesini sağlar. Azure platformu kimliği yönetir, bu yüzden herhangi bir gizli bilgiyi sağlamanıza veya döndürmenize gerek yoktur. Microsoft Entra Id'deki yönetilen kimlikler hakkında daha fazla bilgi için bkz . Azure kaynakları için yönetilen kimlikler.
Uygulamanıza iki tür kimlik vekleyebilirsiniz:
- Sistem tarafından atanan bir kimlik uygulamaya bağlıdır ve uygulama silinirse silinir. Bir uygulama yalnızca bir sistem tarafından atanan kimliğe sahip olabilir.
- Kullanıcı tarafından atanan kimlik ise uygulamanıza atanabilen tek başına bir Azure kaynağıdır. Bir uygulamanın kullanıcı tarafından atanan birden çok kimliği olabilir. Kullanıcı tarafından atanan bir kimlik, iki App Service uygulaması gibi birden çok Azure kaynağına atanabilir.
Yönetilen kimlik yapılandırması, yuvaya özeldir. Bir dağıtım yuvasi için yönetilen kimliği portaldan yapılandırmak için önce yuvaya gidin. Azure portalından Microsoft Entra kiracınızda web uygulamanızın veya dağıtım yuvanızın yönetilen kimliğini bulmak için, bunu doğrudan kiracınızın Genel Bakış sayfasından arayın.
Uyarı
Yönetilen kimlikler Azure Arc'ta dağıtılan uygulamalar için kullanılamaz.
Yönetilen kimlikler dizinler arası senaryoları desteklemediğinden, uygulamanız abonelikler veya kiracılar arasında geçirilirse beklendiği gibi davranmaz. Böyle bir taşıma işleminden sonra yönetilen kimlikleri yeniden oluşturmak için bkz. Aboneliği başka bir dizine taşırsam yönetilen kimlikler otomatik olarak yeniden oluşturulacak mı?. Aşağı akış kaynaklarının yeni kimliği kullanmak için erişim ilkelerinin güncelleştirilmiş olması da gerekir.
Önkoşullar
Bu makaledeki adımları gerçekleştirmek için Azure kaynaklarınız üzerinde en düşük izin kümenizin olması gerekir. İhtiyacınız olan belirli izinler senaryonuza göre değişir. Aşağıdaki tabloda en yaygın senaryolar özetlemektedir:
| Senaryo | Gerekli izin | Örnek yerleşik roller |
|---|---|---|
| Sistem tarafından atanan kimlik oluşturma |
Microsoft.Web/sites/write uygulamanın üzerinde veya Microsoft.Web/sites/slots/write yuvasının üzerinde |
Web Sitesi Katkıda Bulunanı |
| Kullanıcı tarafından atanan kimlik oluşturma |
Microsoft.ManagedIdentity/userAssignedIdentities/write kimliğin oluşturulacağı kaynak grubu üzerinden |
Yönetilen Kimlik Katılımcısı |
| Uygulamanıza kullanıcı tarafından atanan bir kimlik atayın |
Microsoft.Web/sites/write uygulama üzerinden, Microsoft.Web/sites/slots/write yuva üzerinden veya Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action kimlik üzerinden |
Web Sitesi Katkıcısı ve Yönetilen Kimlik Operatörü |
| Azure rol atamaları oluşturma |
Microsoft.Authorization/roleAssignments/write hedef kaynak kapsamının üzerinde |
Rol Tabanlı Erişim Denetimi Yöneticisi veya Kullanıcı Erişimi Yöneticisi |
Sistem tarafından atanan kimlik ekleme
Sistem tarafından atanan yönetilen kimliği etkinleştirmek için aşağıdaki yönergeleri kullanın.
Azure portalında uygulamanızın sayfasına gidin.
Soldaki menüden Ayarlar>Kimlik'i seçin.
Sistem tarafından atanan sekmesinde, Durum'u Açık olarak ayarlayın. Ardından Kaydet'i seçin.
Kullanıcı tarafından atanan kimlik ekleme
Kullanıcı tarafından atanan bir kimliğe sahip bir uygulama oluşturmak için, kimliği oluşturun ve ardından kaynak tanımlayıcısını uygulama yapılandırmanıza ekleyin.
Bu yönergelere göre kullanıcı tarafından atanan bir yönetilen kimlik kaynağı oluşturun.
Uygulamanızın sayfasının sol menüsünde Ayarlar>Kimliği'ni seçin.
Kullanıcı Ataması seçeneğini ve ardından Ekle seçeneğini seçin.
Daha önce oluşturduğunuz kimliği arayın, seçin ve ardından Ekle'yi seçin.
Bu adımları tamamladıktan sonra uygulama yeniden başlatılır.
Hedef kaynağı yapılandırma
Uygulamanızdan erişime izin vermek için hedef kaynağı yapılandırmanız gerekir. Çoğu Azure hizmeti için bir rol ataması oluşturarak hedef kaynağı yapılandırabilirsiniz.
Bazı hizmetler Azure rol tabanlı erişim denetimi dışında mekanizmalar kullanır. Bir kimlik kullanarak erişimi yapılandırmayı anlamak için her hedef kaynağın belgelerine bakın. Microsoft Entra belirteçlerini destekleyen kaynaklar hakkında daha fazla bilgi edinmek için bkz . Microsoft Entra kimlik doğrulamasını destekleyen Azure hizmetleri.
Örneğin, Azure Key Vault'ta bir gizliliğe erişmek için bir jeton talep ederseniz, yönetilen kimliğin hedef kasadaki gizliliklerle çalışabilmesini sağlayan bir rol ataması da oluşturmanız gerekir. Aksi takdirde, geçerli bir belirteç kullansanız bile Key Vault aramalarınızı reddeder. Aynı durum Azure SQL Veritabanı ve diğer hizmetler için de geçerlidir.
Önemli
Yönetilen kimlikler için arka uç hizmetleri yaklaşık 24 saat boyunca kaynak URI'sine göre bir önbellek tutar ve yönetilen kimliğin grubu veya rol üyeliğinde yapılan değişikliklerin geçerli olması bu kadar zaman alabilir. Şu anda yönetilen kimliğe ait belirtecin süresi dolmadan yenilenmeye zorlanması mümkün değildir. İzin eklemek veya kaldırmak için yönetilen kimliğin grup veya rol üyeliğini değiştirirseniz, kimliği kullanan Azure kaynağının doğru erişime sahip olması için yaklaşık 24 saat beklemeniz gerekebilir.
Grupların veya rol üyeliklerinin alternatifleri için, Yetkilendirme için yönetilen kimliklerin kullanım sınırlamaları bölümüne bakın.
Uygulama kodunda Azure hizmetlerine bağlanma
Yönetilen kimliğiyle bir uygulama, Azure SQL Veritabanı, Azure Key Vault ve Azure Depolama gibi Microsoft Entra Id'nin korunmasına yardımcı olduğu Azure kaynakları için belirteçler alabilir. Bu belirteçler, uygulamanın belirli bir kullanıcısını değil kaynağa erişen uygulamayı temsil eder.
App Service ve Azure İşlevleri, belirteç alma için dahili olarak erişilebilir bir REST uç noktası sağlar. Standart bir HTTP GET isteği kullanarak REST uç noktasına uygulamanın içinden erişebilirsiniz. İsteği her dilde genel bir HTTP istemcisiyle uygulayabilirsiniz.
.NET, JavaScript, Java ve Python için Azure Identity istemci kitaplığı bu REST uç noktası üzerinde bir soyutlama sağlar ve geliştirme deneyimini basitleştirir. Diğer Azure hizmetlerine bağlanmak, hizmete özgü istemciye kimlik bilgisi nesnesi eklemek kadar kolaydır.
Ham HTTP GET isteği sağlanan iki ortam değişkenini kullanır ve aşağıdaki örneğe benzer:
GET /MSI/token?resource=https://vault.azure.net&api-version=2019-08-01 HTTP/1.1
Host: <ip-address-:-port-in-IDENTITY_ENDPOINT>
X-IDENTITY-HEADER: <value-of-IDENTITY_HEADER>
Örnek yanıt aşağıdaki örneğe benzer olabilir:
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "eyJ0eXAi…",
"expires_on": "1586984735",
"resource": "https://vault.azure.net",
"token_type": "Bearer",
"client_id": "00001111-aaaa-2222-bbbb-3333cccc4444"
}
Bu yanıt, Microsoft Entra hizmet-hizmet erişim belirteci isteğinin yanıtıyla aynıdır. Key Vault'a erişmek için access_token değerini kasayla bağlantısı olan bir istemciye ekleyin.
REST uç noktası hakkında daha fazla bilgi için bu makalenin devamında yer alan REST uç nokta başvurusuna bakın.
Kimliği kaldır
Sistem tarafından atanan bir kimliği kaldırdığınızda, bu kimlik Microsoft Entra Id'den silinir. Uygulama kaynağını sildiğinizde sistem tarafından atanan kimlikler de Microsoft Entra Id'den otomatik olarak kaldırılır.
Uygulamanızın sayfasının sol menüsünde Ayarlar>Kimliği'ni seçin.
Kimlik türüne göre adımları izleyin:
- Sistem tarafından atanan kimlik için: Sistem tarafından atanan sekmesinde Durum'aKapalı olarak geçin. Ardından Kaydet'i seçin.
- Kullanıcı tarafından atanan kimlik için: Kullanıcı tarafından atanan sekmesini seçin, kimliğin onay kutusunu seçin ve ardından Kaldır'ı seçin. Onaylamak için Evet'i seçin.
Uyarı
Yalnızca yerel belirteç hizmetini devre dışı bırakabilecek bir uygulama ayarı da ayarlayabilirsiniz: WEBSITE_DISABLE_MSI. Ancak kimliği olduğu gibi bırakır. Araçlar, yönetilen kimliğin hâlâ açık veya etkin olduğunu gösteriyor. Sonuç olarak, bu ayarı kullanmanızı önermeyiz.
REST uç nokta başvurusu
Yönetilen kimliğe sahip bir uygulama, iki ortam değişkeni tanımlayarak bu uç noktayı kullanılabilir hale getirir:
-
IDENTITY_ENDPOINT: Yerel belirteç hizmetine URL. -
IDENTITY_HEADER: Sunucu tarafı istek sahteciliği (SSRF) saldırılarını azaltmaya yardımcı olabilecek üst bilgi. Platform değeri döndürüyor.
IDENTITY_ENDPOINT değişkeni, uygulamanızın belirteç isteğinde bulunabileceği yerel bir URL'dir. Bir kaynağın belirtecini almak için bu uç noktaya bir HTTP GET isteği gönderin. Aşağıdaki parametreleri ekleyin:
Parametre adı İçinde Açıklama resourceSoru Jeton alınması gereken kaynağın Microsoft Entra kaynak URI'si. Bu kaynak , Microsoft Entra kimlik doğrulamasını veya başka bir kaynak URI'sini destekleyen Azure hizmetlerinden biri olabilir. api-versionSoru Kullanılacak belirteç API'sinin sürümü. 2019-08-01adresini kullanın.X-IDENTITY-HEADERBaşlık Ortam değişkeninin IDENTITY_HEADERdeğeri. Bu başlık, SSRF saldırılarını azaltmaya yardımcı olmak için kullanılır.client_idSoru (İsteğe bağlı) Kullanıcı tarafından atanan kimliğin kullanılacak istemci kimliği. principal_id,mi_res_idveyaobject_idiçeren bir istekte kullanılamaz. Tüm kimlik parametreleri (client_id,principal_id,object_idvemi_res_id) atlanırsa, sistem tarafından atanan kimlik kullanılır.principal_idSoru (Opsiyonel) Kullanıcıya atanmış kimliğin kullanılacak ana kimlik numarası. object_idparametresi bunun yerine kullanılabilecek bir diğer addır.client_id,mi_res_idveyaobject_idiçeren bir istekte kullanılamaz. Tüm kimlik parametreleri (client_id,principal_id,object_idvemi_res_id) atlanırsa, sistem tarafından atanan kimlik kullanılır.mi_res_idSoru (Opsiyonel) Kullanıcıya atanan kimliğin kullanılacak Azure kaynak kimliği. principal_id,client_idveyaobject_idiçeren bir istekte kullanılamaz. Tüm kimlik parametreleri (client_id,principal_id,object_idvemi_res_id) atlanırsa, sistem tarafından atanan kimlik kullanılır.
Önemli
Kullanıcı tarafından atanan kimlikler için belirteçleri almaya çalışıyorsanız isteğe bağlı özelliklerden birini ekleyin. Aksi takdirde, belirteç hizmeti, var olabilir veya olmayabilir, sistem tarafından atanmış bir kimlik için bir belirteç almaya çalışır.
İlgili içerik
Aşağıdaki eğitimleri göz önünde bulundurun:
- Yönetilen kimlik kullanarak gizli bilgiler olmadan .NET App Service'ten SQL Veritabanı'na bağlanmak
- .NET web uygulamasından Azure hizmetlerine erişme
- Microsoft Graph'a güvenli bir .NET uygulamasından uygulama olarak erişme
- Key Vault kullanarak .NET App Service'ten Bilişsel Hizmet bağlantısının güvenliğini sağlama