Azure Blob Depolama ile parolasız bağlantılar kullanmak için bir uygulamayı geçirme
Azure hizmetlerine yönelik uygulama isteklerinin kimlik doğrulaması, hesap erişim anahtarları veya parolasız bağlantılar gibi yapılandırmalar kullanılarak yapılmalıdır. Ancak, mümkün olduğunda uygulamalarınızda parolasız bağlantılara öncelik vermelisiniz. Parola veya gizli anahtar kullanan geleneksel kimlik doğrulama yöntemleri, güvenlik riskleri ve karmaşıklıklar oluşturur. Parolasız bağlantılara geçmenin avantajları hakkında daha fazla bilgi edinmek için Azure services hub'ı için parolasız bağlantılar'ı ziyaret edin.
Aşağıdaki öğreticide, parolasız bağlantılar kullanarak var olan bir uygulamanın nasıl bağlanacak şekilde geçirilir açıklanmaktadır. Erişim anahtarları, bağlantı dizesi veya gizli dizi tabanlı başka bir yaklaşım kullanıyor olmanız fark etmeksizin bu geçiş adımları geçerli olmalıdır.
Rolleri ve kullanıcıları yerel geliştirme kimlik doğrulaması için yapılandırma
Yerel olarak geliştirme yaparken blob verilerine erişen kullanıcı hesabının doğru izinlere sahip olduğundan emin olun. Blob verilerini okumak ve yazmak için Depolama Blob Verileri Katkıda Bulunanı gerekir. Kendinize bu rolü atamak için Kullanıcı Erişimi Yöneticisi rolüne veya Microsoft.Authorization/roleAssignments/write eylemini içeren başka bir role atanmalısınız. Azure portalı, Azure CLI veya Azure PowerShell'i kullanarak kullanıcıya Azure RBAC rolleri atayabilirsiniz. Rol atamaları için kullanılabilir kapsamlar hakkında daha fazla bilgiyi kapsam genel bakış sayfasından öğrenebilirsiniz.
Bu senaryoda, En Az Ayrıcalık İlkesi'ni izlemek için depolama hesabı kapsamındaki kullanıcı hesabınıza izinler atayacaksınız. Bu uygulama kullanıcılara yalnızca gereken minimum izinleri verir ve daha güvenli üretim ortamları oluşturur.
Aşağıdaki örnek, depolama hesabınızdaki blob verilerine hem okuma hem de yazma erişimi sağlayan Depolama Blob Verileri Katkıda Bulunanı rolünü kullanıcı hesabınıza atar.
Önemli
Çoğu durumda rol atamasının Azure'a yayılması bir veya iki dakika sürer, ancak nadir durumlarda sekiz dakikaya kadar sürebilir. Kodunuzu ilk kez çalıştırdığınızda kimlik doğrulama hataları alıyorsanız, birkaç dakika bekleyin ve yeniden deneyin.
Azure portalında ana arama çubuğunu veya sol gezintiyi kullanarak depolama hesabınızı bulun.
Depolama hesabına genel bakış sayfasında sol taraftaki menüden Erişim denetimi (IAM) öğesini seçin.
Erişim denetimi (IAM) sayfasında Rol atamaları sekmesini seçin.
Üst menüden + Ekle'yi seçin ve ardından açılan menüden Rol ataması ekle'yi seçin.
Sonuçları istenen role göre filtrelemek için arama kutusunu kullanın. Bu örnek için Depolama Blobu Veri Katkıda Bulunanı'nı arayın ve eşleşen sonucu seçin ve ardından İleri'yi seçin.
Erişim ata'nın altında Kullanıcı, grup veya hizmet sorumlusu'na tıklayın ve ardından + Üye seç'e tıklayın.
İletişim kutusunda Microsoft Entra kullanıcı adınızı (genellikle user@domain e-posta adresiniz) arayın ve iletişim kutusunun alt kısmındaki Seç'i seçin.
Son sayfaya gitmek için Gözden geçir + ata'yı seçin ve ardından işlemi tamamlamak için Gözden geçir + yeniden ata'yı seçin.
Parolasız bağlantıları kullanmak için oturum açın ve uygulama kodunu geçirin
Yerel geliştirme için, rolü atadığınız Microsoft Entra hesabıyla kimliğinizin doğrulanmış olduğundan emin olun. Azure CLI veya Azure PowerShell gibi popüler geliştirme araçlarıyla kimlik doğrulaması yapabilirsiniz. Kimlik doğrulaması yapabileceğiniz geliştirme araçları farklı dillerde farklılık gösterir.
Aşağıdaki komutu kullanarak Azure CLI aracılığıyla Azure'da oturum açın:
az login
Ardından, parolanızı parolasız bağlantıları kullanacak şekilde güncelleştirin.
.NET uygulamasında kullanmak
DefaultAzureCredential
için paketini yükleyinAzure.Identity
:dotnet add package Azure.Identity
Dosyanızın en üstüne aşağıdaki kodu ekleyin:
using Azure.Identity;
Kodunuzda Azure Blob Depolama bağlanmak için bir
BlobServiceClient
oluşturan konumları belirleyin. Kodunuzu aşağıdaki örnekle eşleşecek şekilde güncelleştirin:DefaultAzureCredential credential = new(); BlobServiceClient blobServiceClient = new( new Uri($"https://{storageAccountName}.blob.core.windows.net"), credential);
URI'nizdeki depolama hesabı adını güncelleştirdiğinden
BlobServiceClient
emin olun. Depolama hesabı adını Azure portalının genel bakış sayfasında bulabilirsiniz.
Uygulamayı yerel olarak çalıştırma
Bu kod değişikliklerini yaptıktan sonra uygulamanızı yerel olarak çalıştırın. Yeni yapılandırma, Azure CLI, Visual Studio veya IntelliJ gibi yerel kimlik bilgilerinizi almalıdır. Azure'da yerel geliştirici kullanıcınıza atadığınız roller, uygulamanızın Azure hizmetine yerel olarak bağlanmasına olanak tanır.
Azure barındırma ortamını yapılandırma
Uygulamanız parolasız bağlantıları kullanacak şekilde yapılandırıldıktan ve yerel olarak çalıştırıldıktan sonra aynı kod Azure'a dağıtıldıktan sonra Azure hizmetlerinde kimlik doğrulaması yapabilir. Aşağıdaki bölümlerde, yönetilen kimlik kullanarak Azure Blob Depolama bağlanmak için dağıtılan bir uygulamanın nasıl yapılandırılacağı açıklanmaktadır.
Yönetilen kimliği oluşturma
Azure portalını veya Azure CLI'yi kullanarak kullanıcı tarafından atanan bir yönetilen kimlik oluşturabilirsiniz. Uygulamanız diğer hizmetlerde kimlik doğrulaması yapmak için bu kimliği kullanır.
- Azure portalının üst kısmında Yönetilen kimlikler'i arayın. Yönetilen Kimlikler sonucunu seçin.
- Yönetilen Kimliklere genel bakış sayfasının üst kısmındaki + Oluştur'u seçin.
- Temel Bilgiler sekmesinde aşağıdaki değerleri girin:
- Abonelik: İstediğiniz aboneliği seçin.
- Kaynak Grubu: İstediğiniz kaynak grubunu seçin.
- Bölge: Konumunuza yakın bir bölge seçin.
- Ad: Kimliğiniz için MigrationIdentity gibi tanınabilir bir ad girin.
- Sayfanın alt kısmındaki Gözden geçir ve oluştur'u seçin.
- Doğrulama denetimleri tamamlandığında Oluştur'u seçin. Azure, kullanıcı tarafından atanan yeni bir kimlik oluşturur.
Kaynak oluşturulduktan sonra, yönetilen kimliğin ayrıntılarını görüntülemek için Kaynağa git'i seçin.
Yönetilen kimliği web uygulamanızla ilişkilendirme
Web uygulamanızı oluşturduğunuz yönetilen kimliği kullanacak şekilde yapılandırmanız gerekir. Azure portalını veya Azure CLI'yı kullanarak kimliği uygulamanıza atayın.
Bir kimliği uygulamanızla ilişkilendirmek için Azure portalında aşağıdaki adımları tamamlayın. Bu adımlar aşağıdaki Azure hizmetleri için de geçerlidir:
- Azure Spring Apps
- Azure Container Apps
- Azure sanal makineleri
- Azure Kubernetes Service
Web uygulamanızın genel bakış sayfasına gidin.
Sol gezinti bölmesinden Kimlik'i seçin.
Kimlik sayfasında Kullanıcı tarafından atanan sekmesine geçin.
Kullanıcı tarafından atanan yönetilen kimlik ekle açılır öğesini açmak için + Ekle'yi seçin.
Kimliği oluşturmak için daha önce kullandığınız aboneliği seçin.
MigrationIdentity öğesini ada göre arayın ve arama sonuçlarından seçin.
Kimliği uygulamanızla ilişkilendirmek için Ekle'yi seçin.
Yönetilen kimliğe rol atama
Ardından, depolama hesabınıza erişmek için oluşturduğunuz yönetilen kimliğe izin vermeniz gerekir. Yerel geliştirme kullanıcınızda yaptığınız gibi yönetilen kimliğe bir rol atayarak izinler verin.
Depolama hesabına genel bakış sayfanıza gidin ve sol gezinti bölmesinden Erişim Denetimi (IAM) öğesini seçin.
Rol ataması ekle'yi seçin
Rol arama kutusunda, bloblar için veri işlemlerini yönetmek için kullanılan yaygın bir rol olan Depolama Blobu Veri Katkıda Bulunanı'nı arayın. Kullanım örneğiniz için uygun olan rolü atayabilirsiniz. Listeden Depolama Blob Verileri Katkıda Bulunanı'nı seçin ve İleri'yi seçin.
Rol ataması ekle ekranında, Erişim ata seçeneği için Yönetilen kimlik'i seçin. Ardından +Üye seç'i seçin.
Açılır menüde, ada göre oluşturduğunuz yönetilen kimliği arayın ve sonuçlardan seçin. Açılır menüyü kapatmak için Seç'i seçin.
Rol atamasını tamamlamak için Gözden geçir ve ata'yı seçene kadar birkaç kez İleri'yi seçin.
Uygulama kodunu güncelleştirme
Uygulama kodunuzu Azure'a dağıtıldığında oluşturduğunuz belirli yönetilen kimliği aramak için yapılandırmanız gerekir. Bazı senaryolarda, uygulama için yönetilen kimliği açıkça ayarlamak, diğer ortam kimliklerinin yanlışlıkla algılanmasını ve otomatik olarak kullanılmasını da önler.
Yönetilen kimliğe genel bakış sayfasında, istemci kimliği değerini panonuza kopyalayın.
Dile özgü aşağıdaki değişiklikleri uygulayın:
Bir
DefaultAzureCredentialOptions
nesne oluşturun ve öğesineDefaultAzureCredential
geçirin. ManagedIdentityClientId özelliğini istemci kimliği olarak ayarlayın.DefaultAzureCredential credential = new( new DefaultAzureCredentialOptions { ManagedIdentityClientId = managedIdentityClientId });
Yapılandırma güncelleştirmelerinin uygulanması için bu değişikliği yaptıktan sonra kodunuzu Azure'a yeniden dağıtın.
Uygulamayı test etme
Güncelleştirilmiş kodu dağıttığınızda tarayıcıda barındırılan uygulamanıza göz atın. Uygulamanızın depolama hesabına başarıyla bağlanabilmesi gerekir. Rol atamalarının Azure ortamınızda yayılmasının birkaç dakika sürebileceğini unutmayın. Uygulamanız artık geliştiricilerin uygulamadaki gizli dizileri yönetmek zorunda kalmadan hem yerel hem de üretim ortamında çalışacak şekilde yapılandırılmıştır.
Sonraki adımlar
Bu öğreticide, bir uygulamayı parolasız bağlantılara geçirmeyi öğrendiniz.
Bu makalede ele alınan kavramları daha ayrıntılı incelemek için aşağıdaki kaynakları okuyabilirsiniz:
- Microsoft Entra Id kullanarak bloblara erişimi yetkilendirme
- .NET Core hakkında daha fazla bilgi için bkz. 10 dakika içinde .NET kullanmaya başlama.