Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Files OAuth přes REST umožňuje uživatelům a aplikacím přístup pro čtení a zápis na úrovni správce ke sdíleným složkám Azure prostřednictvím ověřovacího protokolu OAuth pomocí Microsoft Entra ID pro přístup na základě rozhraní REST API. Uživatelé, skupiny, služby první strany, jako je Azure Portal a služby a aplikace třetích stran využívající rozhraní REST, teď můžou pro přístup k datům ve sdílených složkách Azure používat ověřování a autorizaci OAuth s účtem Microsoft Entra. Rutiny PowerShellu a příkazy Azure CLI, které volají rozhraní REST API, můžou také používat OAuth pro přístup ke sdíleným složkám Azure. Rozhraní REST API musíte volat pomocí explicitní hlavičky, abyste označili svůj záměr použít další oprávnění. To platí také pro přístup k Azure PowerShellu a Azure CLI.
Důležité
Tento článek vysvětluje, jak povolit přístup ke sdíleným složkám Azure na úrovni správce pro konkrétní případy použití zákazníka. Pokud hledáte obecnější článek o ověřování na základě identity pro koncové uživatele, projděte si přehled ověřování na základě identity služby Azure Files pro přístup k protokolu SMB.
Vztahuje se na
| Model správy | Model fakturace | Mediální vrstva | Přebytečnost | Malé a střední podniky (MSP) | Síťový souborový systém (NFS) |
|---|---|---|---|---|---|
| Microsoft.Storage | Zajištěno v2 | HDD (standard) | Místní (LRS) |
|
|
| Microsoft.Storage | Zajištěno v2 | HDD (standard) | Zóna (ZRS) |
|
|
| Microsoft.Storage | Zajištěno v2 | HDD (standard) | Geografie (GRS) |
|
|
| Microsoft.Storage | Zajištěno v2 | HDD (standard) | GeoZone (GZRS) |
|
|
| Microsoft.Storage | Poskytnuto v1 | SSD (Premium) | Místní (LRS) |
|
|
| Microsoft.Storage | Poskytnuto v1 | SSD (Premium) | Zóna (ZRS) |
|
|
| Microsoft.Storage | Platba dle skutečné spotřeby | HDD (standard) | Místní (LRS) |
|
|
| Microsoft.Storage | Platba dle skutečné spotřeby | HDD (standard) | Zóna (ZRS) |
|
|
| Microsoft.Storage | Platba dle skutečné spotřeby | HDD (standard) | Geografie (GRS) |
|
|
| Microsoft.Storage | Platba dle skutečné spotřeby | HDD (standard) | GeoZone (GZRS) |
|
|
Omezení
Autorizace operací s daty souborů s ID Microsoft Entra je podporována pouze pro rozhraní REST API verze 2022-11-02 a novější.
Podpora azure Files OAuth přes REST pro rozhraní API roviny dat AZURE Files, která spravují prostředky FileService a FileShare, je k dispozici s rozhraním REST API verze 2024–11-04 a novějšími.
Podívejte se na Správa verzí pro Azure Storage.
Zákaznické případy použití
Ověřování a autorizace OAuth pomocí služby Azure Files přes rozhraní REST API můžou zákazníkům přinést výhody v následujících scénářích.
Vývoj aplikací a integrace služeb
Ověřování a autorizace OAuth umožňují vývojářům vytvářet aplikace, které přistupují k rozhraním REST API služby Azure Storage pomocí identit uživatelů nebo aplikací z Microsoft Entra ID.
Zákazníci a partneři můžou také povolit služby třetích stran, aby bezpečně a transparentně nakonfigurovali potřebný přístup k účtu úložiště zákazníka.
Nástroje DevOps jako portál Azure, PowerShell, příkazový řádek, AzCopy a Průzkumník úložiště můžou spravovat data pomocí identity uživatele, což eliminuje potřebu správy nebo distribuce přístupových klíčů k úložišti.
Spravované identity
Zákazníci s aplikacemi a spravovanými identitami, které vyžadují přístup k datům sdílené složky pro účely zálohování, obnovení nebo auditování, můžou využívat ověřování a autorizaci OAuth. Vynucení oprávnění na úrovni souborů a adresářů pro každou identitu zvyšuje složitost a nemusí být kompatibilní s určitými úlohami. Zákazníci například můžou chtít autorizovat službu řešení zálohování pro přístup ke sdíleným složkám Azure s přístupem jen pro čtení ke všem souborům bez ohledu na oprávnění specifická pro soubory.
Výměna klíče účtu úložiště
Microsoft Entra ID poskytuje vynikající zabezpečení a snadné použití ve srovnání s přístupem pomocí sdíleného klíče. Přístup ke klíči účtu úložiště můžete nahradit ověřováním OAuth a autorizací pro přístup ke sdíleným složkám Azure s oprávněními jen pro čtení/zápis. Tento přístup také nabízí lepší auditování a sledování přístupu konkrétních uživatelů.
Privilegovaný přístup a přístupová oprávnění pro operace s daty
Pokud chcete použít funkci Azure Files OAuth přes REST, musíte do role RBAC přiřazené uživateli, skupině nebo instančnímu objektu zahrnout další oprávnění. Jako součást této funkce se zavádějí dvě nové akce dat:
Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action
Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action
Uživatelé, skupiny nebo instanční objekty, které volají rozhraní REST API pomocí OAuth, musí mít v rámci svých povolení přiřazenou akci readFileBackupSemantics nebo writeFileBackupSemantics, která jim umožňuje přístup k datům. Toto je požadavek na použití této funkce. Podrobnosti o oprávněních potřebných k volání konkrétních operací souborové služby najdete v tématu Oprávnění pro volání datových operací.
Tato funkce poskytuje dvě nové předdefinované role, které zahrnují tyto nové akce.
| Úloha | Datové akce |
|---|---|
| Privilegovaný čtenář dat uložených souborů | Microsoft.Storage/storageAccounts/fileServices/fileShares/files/readMicrosoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action |
| Privilegovaný přispěvatel k datům úložiště souborů | 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 |
Tyto nové role se podobají stávajícím předdefinovaným rolím Čtenář sdílení SMB dat souboru úložiště a Přispěvatel s rozšířenými oprávněními sdílení SMB dat souboru úložiště, ale existují některé rozdíly:
Nové role obsahují další akce dat, které jsou potřeba pro přístup k OAuth.
Když uživatel, skupina nebo instanční objekt, kterému je přiřazena role privilegovaného čtenáře dat souborů úložiště nebo privilegovaného přispěvatele dat souborů úložiště, volá rozhraní FilesREST Data API pomocí OAuth, má uživatel, skupina nebo instanční objekt:
- Privilegovaná čtečka dat souboru úložiště: Úplný přístup ke čtení všech dat ve sdílených složkách pro všechny nakonfigurované účty úložiště bez ohledu na nastavená oprávnění NTFS na úrovni souboru nebo adresáře.
- Privilegovaný přispěvatel k datům souborů v úložišti: Poskytuje plný přístup ke čtení, zápisu a úpravě seznamů řízení přístupu (ACL) a umožňuje odstranění přístupu ke všem datům ve sdílených složkách pro všechny nakonfigurované účty úložiště, a to bez ohledu na oprávnění NTFS nastavená na úrovni souboru nebo adresáře.
Díky těmto speciálním oprávněním a rolím systém vynechá všechna oprávnění na úrovni souborů a adresářů a povolí přístup k datům sdílené složky.
Díky novým rolím a akcím dat bude tato funkce poskytovat oprávnění účtu úložiště, která nahrazují všechna oprávnění k souborům a složkám ve všech sdílených složkách v účtu úložiště. Nové role ale obsahují oprávnění pouze pro přístup k datovým službám. Nezahrnují žádná oprávnění pro přístup ke službám pro správu sdílených složek (akce u sdílených složek). Pokud chcete tuto funkci použít, ujistěte se, že máte oprávnění pro přístup:
- účet úložiště
- Služby správy sdílených složek
- datové služby (data ve sdílené složce)
Existuje mnoho předdefinovaných rolí , které poskytují přístup ke službám pro správu. Můžete také vytvořit vlastní role s příslušnými oprávněními. Další informace o řízení přístupu na základě role najdete v Azure RBAC. Další informace o tom, jak jsou definované předdefinované role, najdete v tématu Vysvětlení definic rolí.
Mějte na paměti, že pro typ prostředku sdílené složky se odpovídající obor RBAC používá shares v řídicí rovině (operace správy), zatímco fileshares se využívá v rovině dat (operace s daty). Pokud se pokusíte použít ID prostředku sdílení souborů, které obsahuje shares v oboru RBAC nebo řetězcích akcí dat, nebude fungovat. Musíte použít fileshares v oboru přiřazení RBAC, například:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/fileServices/default/fileshares/<share-name>
Důležité
Všechna použití zástupných znaků definovaná pro cestu Microsoft.Storage/storageAccounts/fileServices/* nebo vyšší obor automaticky dědí další přístup a oprávnění udělená prostřednictvím této nové datové akce. Abychom zabránili nezamýšleným nebo nadměrnému privilegovanému přístupu ke službě Azure Files, implementovali jsme další kontroly, které vyžadují, aby uživatelé a aplikace explicitně označili svůj záměr použít další oprávnění. Kromě toho důrazně doporučujeme, aby zákazníci zkontrolovali přiřazení rolí RBAC uživatelů a nahradili veškeré použití zástupných znaků explicitními oprávněními, aby zajistili správnou správu přístupu k datům.
Autorizace přístupu k datům souborů v kódu aplikace
Klientská knihovna Azure Identity zjednodušuje proces získání přístupového tokenu OAuth 2.0 pro autorizaci pomocí Microsoft Entra ID prostřednictvím Azure SDK. Nejnovější verze klientských knihoven Azure Storage pro .NET, Java, Python, JavaScript a Go se integrují s knihovnami identit Azure pro každý z těchto jazyků, které poskytují jednoduché a bezpečné prostředky pro získání přístupového tokenu pro autorizaci požadavků ze souborové služby Azure.
Výhodou klientské knihovny Azure Identity je, že umožňuje použít stejný kód k získání přístupového tokenu bez ohledu na to, jestli je vaše aplikace spuštěná ve vývojovém prostředí nebo v Azure. Klientská knihovna Azure Identity vrátí přístupový token pro bezpečnostní principal. Když váš kód běží v Azure, zabezpečovací principál může být spravovanou identitou pro prostředky Azure, služebním principálem, uživatelem nebo skupinou. Ve vývojovém prostředí poskytuje klientská knihovna přístupový token pro uživatele nebo služební účet pro účely testování.
Přístupový token vrácený klientskou knihovnou služby Azure Identity je zapouzdřen v přihlašovacích údajích tokenu. Přihlašovací údaje tokenu pak můžete použít k získání objektu klienta služby, který se použije při provádění autorizovaných operací se službou Azure Files.
Následující příklad kódu ukazuje, jak autorizovat klientský objekt pomocí Microsoft Entra ID a provádět operace na úrovni adresáře a souboru. Tento příklad předpokládá, že sdílená složka již existuje.
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();
}
}
}
Autorizace přístupu pomocí rozhraní API roviny dat FileREST
Přístup k datům souborů můžete také autorizovat pomocí webu Azure Portal, Azure PowerShellu nebo Azure CLI.
Azure Portal může pro přístup k datům souborů v účtu úložiště Azure použít buď váš účet Microsoft Entra, nebo přístupový klíč účtu úložiště. Jaké schéma autorizace používá Azure Portal, závisí na rolích Azure, které jsou vám přiřazeny.
Když se pokusíte získat přístup k datům souboru, Azure Portal nejprve zkontroluje, jestli máte přiřazenou roli Azure.Microsoft.Storage/storageAccounts/listkeys/action Pokud jste k této akci přiřadili roli, použije Azure Portal klíč účtu pro přístup k datům souborů prostřednictvím autorizace sdíleného klíče. Pokud vám k této akci nebyla přiřazena role, Azure portal se pokusí o přístup k datům pomocí vašeho účtu Microsoft Entra.
Pokud chcete získat přístup k datům souborů z webu Azure Portal pomocí účtu Microsoft Entra, potřebujete oprávnění pro přístup k datům souborů a také potřebujete oprávnění k procházení prostředků účtu úložiště na webu Azure Portal. Předdefinované role poskytované Azure udělují přístup k prostředkům souborů, ale neudělují oprávnění k prostředkům účtu úložiště. Z tohoto důvodu přístup k portálu také vyžaduje přiřazení role Azure Resource Manageru (ARM), jako je role Čtenář , vymezená na úroveň účtu úložiště nebo vyšší. Role Čtenář uděluje nejvíce omezující oprávnění, ale jakákoli role ARM, která uděluje přístup k prostředkům správy účtů úložiště, je přijatelná.
Azure Portal označuje, které schéma autorizace se používá při přechodu do kontejneru. Další informace o přístupu k datům na portálu najdete v tématu Volba způsobu autorizace přístupu k datům souborů na webu Azure Portal.