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.
REST üzerinden Azure Dosyalar OAuth, REST API tabanlı erişim için Microsoft Entra Id kullanarak OAuth kimlik doğrulama protokolü aracılığıyla kullanıcılar ve uygulamalar için Azure dosya paylaşımlarına yönetici düzeyinde okuma ve yazma erişimi sağlar. Kullanıcılar, gruplar, Azure portalı gibi birinci taraf hizmetler ve REST arabirimleri kullanan üçüncü taraf hizmetler ve uygulamalar artık Azure dosya paylaşımlarındaki verilere erişmek için bir Microsoft Entra hesabıyla OAuth kimlik doğrulaması ve yetkilendirme kullanabilir. REST API'lerini çağıran PowerShell cmdlet'leri ve Azure CLI komutları, Azure dosya paylaşımlarına erişmek için OAuth'u da kullanabilir. Ek ayrıcalığı kullanma amacınızı belirtmek için REST API'yi açık bir üst bilgi kullanarak çağırmanız gerekir. Bu, Azure PowerShell ve Azure CLI erişimi için de geçerlidir.
Önemli
Bu makalede, belirli müşteri kullanım örnekleri için Azure dosya paylaşımlarına yönetici düzeyinde erişimin nasıl etkinleştirileceği açıklanmaktadır. Son kullanıcılar için kimlik tabanlı kimlik doğrulaması hakkında daha genel bir makale arıyorsanız bkz. SMB erişimi için Azure Dosyalar kimlik tabanlı kimlik doğrulamasına genel bakış.
Şunun için geçerlidir:
| Yönetim modeli | Faturalama modeli | Medya katmanı | Yedeklilik | Küçük ve Orta Büyüklükteki İşletme (SMB) | Ağ Dosya Sistemi (NFS) |
|---|---|---|---|---|---|
| Microsoft.Storage | Sağlanan versiyon 2 | HDD (standart) | Yerel (LRS) |
|
|
| Microsoft.Storage | Sağlanan versiyon 2 | HDD (standart) | Bölge (ZRS) |
|
|
| Microsoft.Storage | Sağlanan versiyon 2 | HDD (standart) | Coğrafi (GRS) |
|
|
| Microsoft.Storage | Sağlanan versiyon 2 | HDD (standart) | GeoZone (GZRS) |
|
|
| Microsoft.Storage | Tahsis edilen v1 | SSD (üst düzey) | Yerel (LRS) |
|
|
| Microsoft.Storage | Tahsis edilen v1 | SSD (üst düzey) | Bölge (ZRS) |
|
|
| Microsoft.Storage | Kullandıkça ödeme yap | HDD (standart) | Yerel (LRS) |
|
|
| Microsoft.Storage | Kullandıkça ödeme yap | HDD (standart) | Bölge (ZRS) |
|
|
| Microsoft.Storage | Kullandıkça ödeme yap | HDD (standart) | Coğrafi (GRS) |
|
|
| Microsoft.Storage | Kullandıkça ödeme yap | HDD (standart) | GeoZone (GZRS) |
|
|
Sınırlamalar
Microsoft Entra ID ile dosya verileri işlemlerini yetkilendirme yalnızca REST API 2022-11-02 ve sonraki sürümleri için desteklenir.
FileService ve FileShare kaynaklarını yöneten Azure Dosyalar REST veri düzlemi API'leri için REST desteği üzerinden Azure Dosyalar OAuth, REST API 2024-11-04 ve sonraki sürümleriyle kullanılabilir.
Bkz. Azure Depolama için sürüm oluşturma.
Müşteri kullanım örnekleri
REST API arabirimi üzerinden Azure Dosyalar ile OAuth kimlik doğrulaması ve yetkilendirmesi aşağıdaki senaryolarda müşterilere yararlı olabilir.
Uygulama geliştirme ve hizmet tümleştirmesi
OAuth kimlik doğrulaması ve yetkilendirmesi, geliştiricilerin Microsoft Entra Id'den kullanıcı veya uygulama kimliklerini kullanarak Azure Depolama REST API'lerine erişen uygulamalar oluşturmasına olanak tanır.
Müşteriler ve iş ortakları, bir müşteri depolama hesabına güvenli ve şeffaf bir şekilde gerekli erişimi yapılandırmak için birinci taraf ve üçüncü taraf hizmetleri de etkinleştirebilir.
Azure portalı, PowerShell ve CLI, AzCopy ve Depolama Gezgini gibi DevOps araçları kullanıcının kimliğini kullanarak verileri yöneterek depolama erişim anahtarlarını yönetme veya dağıtma gereksinimini ortadan kaldırır.
Yönetilen kimlikler
Yedekleme, geri yükleme veya denetim amacıyla dosya paylaşımı verilerine erişim gerektiren uygulamaları ve yönetilen kimlikleri olan müşteriler OAuth kimlik doğrulaması ve yetkilendirmesinden yararlanabilir. Her kimlik için dosya ve dizin düzeyinde izinlerin zorunlu olması karmaşıklığı artırır ve belirli iş yükleriyle uyumlu olmayabilir. Örneğin müşteriler, dosyaya özgü izinler dikkate alınmadan tüm dosyalara salt okunur erişimle Azure dosya paylaşımlarına erişmek için bir yedekleme çözümü hizmeti yetkilendirmek isteyebilir.
Depolama hesabı anahtarı değiştirme
Microsoft Entra ID, paylaşılan anahtar erişimi üzerinden üstün güvenlik ve kullanım kolaylığı sağlar. Depolama hesabı anahtarı erişimini OAuth kimlik doğrulaması ve yetkilendirme ile değiştirerek tümünü okuma/tümünü yazma ayrıcalıklarıyla Azure Dosya paylaşımlarına erişebilirsiniz. Bu yaklaşım ayrıca belirli kullanıcı erişimini daha iyi denetleme ve izleme olanağı sunar.
Veri işlemleri için ayrıcalıklı erişim ve erişim izinleri
REST üzerinden Azure Dosyalar OAuth özelliğini kullanmak için kullanıcıya, gruba veya hizmet sorumlusuna atanan RBAC rolüne eklenmesi gereken ek izinler vardır. Bu özelliğin bir parçası olarak iki yeni veri eylemi kullanıma sunulmuştur:
Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action
Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action
OAuth ile REST API'yi çağıran kullanıcıların, grupların veya hizmet ilkelerinin, veri erişimine izin veren role readFileBackupSemantics ya da writeFileBackupSemantics eylemi atanmış olması gerekir. Bu, bu özelliği kullanmak için bir gereksinimdir. Belirli Dosya hizmeti işlemlerini çağırmak için gereken izinler hakkında ayrıntılı bilgi için bkz. Veri işlemlerini çağırma izinleri.
Bu özellik, bu yeni eylemleri içeren iki yeni yerleşik rol sağlar.
| Rol | Veri eylemleri |
|---|---|
| Depolama Dosyası Verilerine Ayrıcalıklı Erişimci | Microsoft.Storage/storageAccounts/fileServices/fileShares/files/readMicrosoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action |
| Depolama Dosya Verisi Ayrıcalıklı Katılımcı | Microsoft.Storage/storageAccounts/fileServices/fileShares/files/readMicrosoft.Storage/storageAccounts/fileServices/fileShares/files/writeMicrosoft.Storage/storageAccounts/fileServices/fileShares/files/deleteMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action |
Bu yeni roller, mevcut Depolama Dosyası Verileri SMB Paylaşım Okuyucusu ve Depolama Dosyası Verileri SMB Paylaşımı Yükseltilmiş Katkıda Bulunan yerleşik rollerine benzer, ancak bazı farklılıklar vardır:
Yeni roller, OAuth erişimi için gereken ek veri eylemlerini içerir.
Depolama Dosyası Verileri Ayrıcalıklı Okuyucu veya Depolama Dosyası Verileri Ayrıcalıklı Katkıda Bulunan rolleri atanmış kullanıcı, grup veya hizmet sorumlusu OAuth kullanarak FilesREST Data API'sini çağırdığında, kullanıcı, grup veya hizmet sorumlusu şunlara sahip olacaktır:
- Depolama Dosyası Verileri Ayrıcalıklı Okuyucusu: Ayarlanan dosya/dizin düzeyi NTFS izinlerinden bağımsız olarak, tüm yapılandırılmış depolama hesapları için paylaşımlardaki tüm verilere tam okuma erişimi.
- Depolama Dosyası Verileri Ayrıcalıklı Katkıda Bulunanı: Ayarlanan dosya/dizin düzeyi NTFS izinlerinden bağımsız olarak, tüm yapılandırılmış depolama hesapları için paylaşımlardaki tüm verilere tam okuma, yazma, değiştirme, erişim silme.
Bu özel izinler ve rollerle, sistem tüm dosya/dizin düzeyi izinlerini atlar ve dosya paylaşımı verilerine erişime izin verir.
Yeni roller ve veri eylemleriyle bu özellik, depolama hesabındaki tüm dosya paylaşımları altındaki dosya ve klasörlerdeki tüm izinlerin yerini alan depolama hesabı genelinde ayrıcalıklar sağlar. Ancak, yeni roller yalnızca veri hizmetlerine erişim izinleri içerir. Bunlar, dosya paylaşımı yönetim hizmetlerine (dosya paylaşımları üzerindeki eylemler) erişme izni içermez. Bu özelliği kullanmak için erişim izinlerinizin olduğundan emin olun:
- depolama hesabı
- dosya paylaşımı yönetim hizmetleri
- veri hizmetleri (dosya paylaşımındaki veriler)
Yönetim hizmetlerine erişim sağlayan birçok yerleşik rol vardır. Ayrıca uygun izinlere sahip özel roller de oluşturabilirsiniz . Rol tabanlı erişim denetimi hakkında daha fazla bilgi edinmek için bkz. Azure RBAC. Yerleşik rollerin nasıl tanımlandığı hakkında daha fazla bilgi için bkz . Rol tanımlarını anlama.
Dosya paylaşımı kaynak türü için ilgili RBAC kapsamının kontrol düzleminde shares ve veri düzleminde fileshares kullanıldığını unutmayın. RBAC kapsamında veya veri eylem dizelerinde bulunan shares bir dosya paylaşımı kaynak kimliği kullanmayı denerseniz, bu işlem çalışmaz. RBAC atamaları kapsamında kullanmanız fileshares gerekir, örneğin:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/fileServices/default/fileshares/<share-name>
Önemli
Yol Microsoft.Storage/storageAccounts/fileServices/* veya daha üst kapsam için tanımlanan joker karakter kullanım örnekleri, bu yeni veri eylemi aracılığıyla verilen ek erişimi ve izinleri otomatik olarak devralır. Azure Dosyalar'a istenmeyen veya fazla ayrıcalıklı erişimi önlemek için, kullanıcıların ve uygulamaların ek ayrıcalığı kullanma amaçlarını açıkça belirtmelerini gerektiren ek denetimler uyguladık. Ayrıca, müşterilerin kullanıcı RBAC rol atamalarını gözden geçirmelerini ve uygun veri erişim yönetimi sağlamak için joker karakter kullanımını açık izinlerle değiştirmelerini kesinlikle öneririz.
Uygulama kodundaki dosya verilerine erişimi yetkilendirme
Azure Identity istemci kitaplığı, Azure SDKaracılığıyla Microsoft Entra Id ile yetkilendirme için OAuth 2.0 erişim belirteci alma işlemini basitleştirir. .NET, Java, Python, JavaScript ve Go için Azure Depolama istemci kitaplıklarının en son sürümleri, Azure dosya hizmetinden gelen isteklerin yetkilendirmesi için bir erişim belirteci almak üzere basit ve güvenli bir araç sağlamak üzere bu dillerin her biri için Azure Kimlik kitaplıklarıyla tümleşir.
Azure Identity istemci kitaplığının avantajlarından biri, uygulamanızın geliştirme ortamında veya Azure'da çalıştığına bakılmaksızın erişim belirtecini almak için aynı kodu kullanmanıza olanak tanır. Azure Identity istemci kitaplığı, güvenlik sorumlusu için bir erişim belirteci döndürür. Kodunuz Azure'da çalışırken, güvenlik sorumlusu Azure kaynakları, hizmet sorumlusu veya kullanıcı veya grup için yönetilen bir kimlik olabilir. Geliştirme ortamında, istemci kitaplığı test amacıyla bir kullanıcı veya hizmet sorumlusu için bir erişim belirteci sağlar.
Azure Identity istemci kitaplığı tarafından döndürülen erişim belirteci, bir belirteç kimlik bilgisi içinde kapsüllenmiştir. Ardından, Azure Dosyalar hizmetinde yetkili işlemleri gerçekleştirirken kullanmak üzere bir hizmet istemci nesnesi almak için belirteç kimlik bilgilerini kullanabilirsiniz.
Aşağıdaki kod örneği, Microsoft Entra Id kullanarak bir istemci nesnesini yetkilendirmeyi ve dizin ve dosya düzeyinde işlemleri gerçekleştirmeyi gösterir. Bu örnekte, dosya paylaşımının zaten var olduğu varsayılır.
using Azure.Core;
using Azure.Identity;
using Azure.Storage.Files.Shares;
using Azure.Storage.Files.Shares.Models;
namespace FilesOAuthSample
{
internal class Program
{
static async Task Main(string[] args)
{
string tenantId = "";
string appId = "";
string appSecret = "";
string entraEndpoint = "";
string accountUri = "https://<storage-account-name>.file.core.windows.net/";
string shareName = "test-share";
string directoryName = "test-directory";
string fileName = "test-file";
TokenCredential tokenCredential = new ClientSecretCredential(
tenantId,
appId,
appSecret,
new TokenCredentialOptions()
{
AuthorityHost = new Uri(entraEndpoint)
});
// Set client options
ShareClientOptions clientOptions = new ShareClientOptions();
clientOptions.AllowTrailingDot = true;
clientOptions.AllowSourceTrailingDot = true;
// x-ms-file-intent=backup will automatically be applied to all APIs
// where it is required in derived clients
clientOptions.ShareTokenIntent = ShareTokenIntent.Backup;
ShareServiceClient shareServiceClient = new ShareServiceClient(
new Uri(accountUri),
tokenCredential,
clientOptions);
ShareClient shareClient = shareServiceClient.GetShareClient(shareName);
ShareDirectoryClient directoryClient = shareClient.GetDirectoryClient(directoryName);
await directoryClient.CreateAsync();
ShareFileClient fileClient = directoryClient.GetFileClient(fileName);
await fileClient.CreateAsync(maxSize: 1024);
await fileClient.GetPropertiesAsync();
}
}
}
FileREST veri düzlemi API'lerini kullanarak erişimi yetkilendirme
Azure portalı, Azure PowerShell veya Azure CLI'yı kullanarak dosya verilerine erişim yetkisi de vekleyebilirsiniz.
Azure portalı, Bir Azure depolama hesabındaki dosya verilerine erişmek için Microsoft Entra hesabınızı veya depolama hesabı erişim anahtarınızı kullanabilir. Azure portalının hangi yetkilendirme düzenini kullandığı size atanan Azure rollerine bağlıdır.
Dosya verilerine erişmeye çalıştığınızda, Azure portalı önce size Microsoft.Storage/storageAccounts/listkeys/action bir Azure rolü atanıp atanmadığını denetler. Bu eylemle size bir rol atandıysa, Azure portalı paylaşılan anahtar yetkilendirmesi aracılığıyla dosya verilerine erişmek için hesap anahtarını kullanır. Bu eylemle size bir rol atanmamışsa, Azure portalı Microsoft Entra hesabınızı kullanarak verilere erişmeyi dener.
Microsoft Entra hesabınızı kullanarak Azure portalından dosya verilerine erişmek için dosya verilerine erişim izinlerine ve azure portalındaki depolama hesabı kaynakları arasında gezinmek için izinlere de ihtiyacınız vardır. Azure tarafından sağlanan yerleşik roller dosya kaynaklarına erişim verir, ancak depolama hesabı kaynaklarına izin vermez. Bu nedenle portala erişim için, depolama hesabı düzeyinde veya daha üstünde olmak üzere Okuyucu rolü gibi bir Azure Resource Manager (ARM) rolü atanması da gereklidir. Okuyucu rolü en kısıtlayıcı izinleri verir, ancak depolama hesabı yönetim kaynaklarına erişim veren tüm ARM rolleri kabul edilebilir.
Azure portalı, bir kapsayıcıya gittiğinizde hangi yetkilendirme düzeninin kullanıldığını gösterir. Portalda veri erişimi hakkında daha fazla bilgi için bkz. Azure portalında dosya verilerine erişimi yetkilendirmeyi seçme.