Autorizace přístupu k frontám pomocí ID Microsoft Entra

Azure Storage podporuje použití Microsoft Entra ID k autorizaci požadavků na data fronty. S ID Microsoft Entra můžete pomocí řízení přístupu na základě role v Azure (Azure RBAC) udělit oprávnění k objektu zabezpečení, což může být uživatel, skupina nebo instanční objekt aplikace. Instanční objekt zabezpečení je ověřený pomocí ID Microsoft Entra pro vrácení tokenu OAuth 2.0. Token se pak dá použít k autorizaci požadavku vůči službě Queue.

Autorizace pomocí Microsoft Entra ID poskytuje vynikající zabezpečení a snadné použití prostřednictvím autorizace sdíleného klíče. Microsoft doporučuje používat autorizaci Microsoft Entra s aplikacemi fronty, pokud je to možné, abyste zajistili přístup s minimálními požadovanými oprávněními.

Autorizace s ID Microsoft Entra je k dispozici pro všechny účty úložiště pro obecné účely ve všech veřejných oblastech a národních cloudech. Autorizace Microsoft Entra podporují pouze účty úložiště vytvořené pomocí modelu nasazení Azure Resource Manager.

Přehled ID Microsoft Entra pro fronty

Když se objekt zabezpečení (uživatel, skupina nebo aplikace) pokusí o přístup k prostředku fronty, musí být požadavek autorizovaný, pokud není fronta dostupná pro anonymní přístup. S ID Microsoft Entra je přístup k prostředku dvoustupňový proces:

  1. Nejprve se ověří identita objektu zabezpečení a vrátí se token OAuth 2.0.

    Krok ověřování vyžaduje, aby aplikace požadovala přístupový token OAuth 2.0 za běhu. Pokud aplikace běží z entity Azure, jako je virtuální počítač Azure, škálovací sada virtuálních počítačů nebo aplikace Azure Functions, může pro přístup k datům fronty použít spravovanou identitu .

  2. Dále se token předá jako součást požadavku službě Queue a služba ho používá k autorizaci přístupu k zadanému prostředku.

    Krok autorizace vyžaduje přiřazení jedné nebo více rolí Azure RBAC k objektu zabezpečení, který žádost provede. Další informace najdete v tématu Přiřazení rolí Azure pro přístupová práva.

Použití účtu Microsoft Entra s portálem, PowerShellem nebo Azure CLI

Další informace o přístupu k datům na webu Azure Portal pomocí účtu Microsoft Entra najdete v tématu Přístup k datům z webu Azure Portal. Informace o tom, jak volat příkazy Azure PowerShellu nebo Azure CLI pomocí účtu Microsoft Entra, najdete v tématu Přístup k datům z PowerShellu nebo Azure CLI.

Autorizace přístupu v kódu aplikace pomocí ID Microsoft Entra

Pokud chcete autorizovat přístup ke službě Azure Storage pomocí ID Microsoft Entra, můžete k získání tokenu OAuth 2.0 použít jednu z následujících klientských knihoven:

  • Pro většinu vývojových scénářů se doporučuje klientská knihovna Azure Identity.
  • Knihovna MSAL (Microsoft Authentication Library) může být vhodná pro určité pokročilé scénáře.

Klientská knihovna Azure Identity

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 sady 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ů azure Storage.

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 objekt zabezpečení. Když je váš kód spuštěný v Azure, může být instanční objekt spravovanou identitou pro prostředky Azure, instanční objekt nebo uživatele nebo skupinu. Ve vývojovém prostředí poskytuje klientská knihovna přístupový token pro uživatele nebo instanční objekt 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 Storage. Jednoduchý způsob, jak získat přístupový token a přihlašovací údaje tokenu, je použít DefaultAzureCredential třídy, která je poskytována klientskou knihovnou Azure Identity. DefaultAzureCredential se pokusí získat přihlašovací údaje tokenu postupným pokusem o několik různých typů přihlašovacích údajů. DefaultAzureCredential funguje ve vývojovém prostředí i v Azure.

Následující tabulka odkazuje na další informace pro autorizaci přístupu k datům v různých scénářích:

Jazyk .NET Java JavaScript Python Přejít
Přehled ověřování pomocí Microsoft Entra ID Ověřování aplikací .NET pomocí služeb Azure Ověřování Azure s využitím Javy a identity Azure Ověřování javascriptových aplikací v Azure pomocí sady Azure SDK Ověřování aplikací v Pythonu do Azure pomocí sady Azure SDK
Ověřování pomocí instančních objektů pro vývojáře Ověřování aplikací .NET ve službách Azure během místního vývoje pomocí instančních objektů Ověřování Azure pomocí instančního objektu Ověřování aplikací JS do služeb Azure pomocí instančního objektu Ověřování aplikací Pythonu ve službách Azure během místního vývoje pomocí instančních objektů Ověřování pomocí sady Azure SDK for Go pomocí instančního objektu
Ověřování pomocí vývojářských nebo uživatelských účtů Ověřování aplikací .NET ve službách Azure během místního vývoje pomocí vývojářských účtů Ověřování Azure pomocí přihlašovacích údajů uživatele Ověřování aplikací JS do služeb Azure s využitím vývojových účtů Ověřování aplikací Pythonu ve službách Azure během místního vývoje pomocí vývojářských účtů Ověřování Azure pomocí sady Azure SDK for Go
Ověřování z aplikací hostovaných v Azure Ověřování aplikací hostovaných v Azure v prostředcích Azure pomocí sady Azure SDK pro .NET Ověřování aplikací Java hostovaných v Azure Ověřování javascriptových aplikací hostovaných v Azure v prostředcích Azure pomocí sady Azure SDK pro JavaScript Ověřování aplikací hostovaných v Azure v prostředcích Azure pomocí sady Azure SDK pro Python Ověřování pomocí sady Azure SDK for Go s využitím spravované identity
Ověřování z místních aplikací Ověřování prostředků Azure z aplikací .NET hostovaných místně Ověřování místních javascriptových aplikací pro prostředky Azure Ověřování prostředků Azure z aplikací Pythonu hostovaných místně
Přehled klientské knihovny identit Klientská knihovna Azure Identity pro .NET Klientská knihovna Azure Identity pro Javu Klientská knihovna Azure Identity pro JavaScript Klientská knihovna Azure Identity pro Python Klientská knihovna Azure Identity pro Go

Microsoft Authentication Library (MSAL)

I když Microsoft doporučuje používat klientskou knihovnu Azure Identity, pokud je to možné, může být knihovna MSAL vhodná pro použití v určitých pokročilých scénářích. Další informace naleznete v tématu Informace o msAL.

Když k získání tokenu OAuth pro přístup ke službě Azure Storage použijete MSAL, musíte zadat ID prostředku Microsoft Entra. ID prostředku Microsoft Entra označuje cílovou skupinu, pro kterou je možné použít token vystavený k poskytnutí přístupu k prostředku Azure. V případě služby Azure Storage může být ID prostředku specifické pro jeden účet úložiště nebo se může vztahovat na jakýkoli účet úložiště.

Pokud zadáte ID prostředku, které je specifické pro jeden účet úložiště a službu, ID prostředku se použije k získání tokenu pro autorizaci požadavků pouze na zadaný účet a službu. Následující tabulka uvádí hodnotu, která se má použít pro ID prostředku na základě cloudu, se kterým pracujete. Nahraďte <account-name> názvem vašeho účtu úložiště.

Cloud ID zdroje
Globální azure https://<account-name>.queue.core.windows.net
Azure Government https://<account-name>.queue.core.usgovcloudapi.net
Azure (Čína) 21Vianet https://<account-name>.queue.core.chinacloudapi.cn

Můžete také zadat ID prostředku, které platí pro jakýkoli účet úložiště, jak je znázorněno v následující tabulce. Toto ID prostředku je stejné pro všechny veřejné a suverénní cloudy a slouží k získání tokenu pro autorizaci požadavků na jakýkoli účet úložiště.

Cloud ID zdroje
Globální azure
Azure Government
Azure (Čína) 21Vianet
https://storage.azure.com/

Přiřazení rolí Azure pro přístupová práva

Microsoft Entra autorizuje přístupová práva k zabezpečeným prostředkům prostřednictvím Azure RBAC. Azure Storage definuje sadu předdefinovaných rolí RBAC, které zahrnují běžné sady oprávnění používaných pro přístup k datům fronty. Můžete také definovat vlastní role pro přístup k datům fronty. Další informace o přiřazování rolí Azure pro přístup k frontě najdete v tématu Přiřazení role Azure pro přístup k datům fronty.

Objekt zabezpečení Microsoft Entra může být uživatel, skupina, instanční objekt aplikace nebo spravovaná identita pro prostředky Azure. Role RBAC přiřazené k objektu zabezpečení určují oprávnění, která bude mít objekt zabezpečení. Další informace o přiřazování rolí Azure pro přístup k frontě najdete v tématu Přiřazení role Azure pro přístup k datům fronty.

V některých případech může být potřeba povolit jemně odstupňovaný přístup k prostředkům fronty nebo zjednodušit oprávnění, pokud máte velký počet přiřazení rolí pro prostředek úložiště. Ke konfiguraci podmínek přiřazení rolí můžete použít řízení přístupu na základě atributů Azure (Azure ABAC). Podmínky můžete použít s vlastní rolí nebo vybrat předdefinované role. Další informace o konfiguraci podmínek pro prostředky úložiště Azure pomocí ABAC najdete v tématu Autorizace přístupu k frontám pomocí podmínek přiřazení rolí Azure. Podrobnosti o podporovaných podmínkách operací s daty fronty najdete v tématu Akce a atributy podmínek přiřazení rolí Azure pro fronty Azure.

Poznámka:

Při vytváření účtu Azure Storage nemáte automaticky přiřazená oprávnění pro přístup k datům přes Microsoft Entra ID. Pro přístup ke službě Queue Storage musíte explicitně přiřadit roli Azure. Můžete ho přiřadit na úrovni předplatného, skupiny prostředků, účtu úložiště nebo fronty.

Obor prostředku

Před přiřazením role Azure RBAC k objektu zabezpečení určete rozsah přístupu, který má mít objekt zabezpečení. Osvědčené postupy určují, že je vždy nejlepší udělit pouze nejužší možný rozsah. Role Azure RBAC definované v širším rozsahu jsou zděděné prostředky pod nimi.

Přístup k prostředkům fronty Azure můžete vymezit na následujících úrovních, počínaje nejužším oborem:

  • Jednotlivé fronty. V tomto oboru se přiřazení role vztahuje na zprávy ve frontě a na vlastnosti a metadata fronty.
  • Účet úložiště. V tomto oboru se přiřazení role vztahuje na všechny fronty a jejich zprávy.
  • Požadovaná skupina prostředků. V tomto oboru se přiřazení role vztahuje na všechny fronty ve všech účtech úložiště ve skupině prostředků.
  • Předplatné. V tomto oboru se přiřazení role vztahuje na všechny fronty ve všech účtech úložiště ve všech skupinách prostředků v předplatném.
  • Skupina pro správu. V tomto oboru se přiřazení role vztahuje na všechny fronty ve všech účtech úložiště ve všech skupinách prostředků ve všech předplatných ve skupině pro správu.

Další informace o rozsahu přiřazení rolí Azure RBAC najdete v tématu Vysvětlení oboru pro Azure RBAC.

Předdefinované role Azure pro fronty

Azure RBAC poskytuje několik předdefinovaných rolí pro autorizaci přístupu k datům fronty pomocí Microsoft Entra ID a OAuth. Mezi příklady rolí, které poskytují oprávnění k datovým prostředkům ve službě Azure Storage, patří:

Informace o přiřazení předdefinované role Azure k objektu zabezpečení najdete v tématu Přiřazení role Azure pro přístup k datům fronty. Informace o tom, jak vypsat role Azure RBAC a jejich oprávnění, najdete v tématu Výpis definic rolí Azure.

Další informace o tom, jak jsou definované předdefinované role pro Azure Storage, najdete v tématu Vysvětlení definic rolí. Informace o vytváření vlastních rolí Azure najdete v tématu Vlastní role Azure.

Přístup k datům umožňují přístup k datům fronty pouze role explicitně definované pro objekt zabezpečení. Předdefinované role, jako je Vlastník, Přispěvatel a Přispěvatel účtů úložiště, umožňují objekt zabezpečení spravovat účet úložiště, ale neposkytují přístup k datům fronty v rámci tohoto účtu prostřednictvím ID Microsoft Entra. Pokud ale role zahrnuje Microsoft.Storage/storageAccounts/listKeys/action, může uživatel, kterému je tato role přiřazena, přistupovat k datům v účtu úložiště prostřednictvím autorizace sdíleného klíče pomocí přístupových klíčů účtu. Další informace najdete v tématu Volba způsobu autorizace přístupu k datům fronty na webu Azure Portal.

Podrobné informace o předdefinovaných rolích Azure pro Azure Storage pro datové služby i službu pro správu najdete v části Úložiště v předdefinovaných rolích Azure pro Azure RBAC. Další informace o různých typech rolí, které poskytují oprávnění v Azure, najdete v tématech Role Azure, Role Microsoft Entra a klasické role správce předplatného.

Důležité

Rozšíření přiřazení rolí Azure může trvat až 30 minut.

Přístupová oprávnění pro operace s daty

Podrobnosti o oprávněních potřebných k volání konkrétních operací služby Queue naleznete v tématu Oprávnění pro volání datových operací.

Přístup k datům pomocí účtu Microsoft Entra

Přístup k datům ve frontě prostřednictvím webu Azure Portal, PowerShellu nebo Azure CLI je možné autorizovat buď pomocí účtu Microsoft Entra uživatele, nebo pomocí přístupových klíčů účtu (autorizace sdíleného klíče).

Upozornění

Autorizace pomocí sdíleného klíče se nedoporučuje, protože může být méně zabezpečená. Pokud chcete zajistit optimální zabezpečení, zakažte autorizaci prostřednictvím sdíleného klíče pro váš účet úložiště, jak je popsáno v části Zabránění autorizaci sdíleného klíče pro účet služby Azure Storage.

Použití přístupových klíčů a připojovací řetězec by mělo být omezené na počáteční testování konceptů aplikací nebo prototypů vývoje, které nepřistupují k produkčním nebo citlivým datům. Jinak by se při ověřování prostředků Azure měly vždy upřednostňovat třídy ověřování založené na tokenech, které jsou dostupné v sadě Azure SDK.

Microsoft doporučuje, aby klienti k autorizaci přístupu k datům ve službě Azure Storage používali buď ID Microsoft Entra, nebo sdílený přístupový podpis (SAS). Další informace najdete v tématu Autorizace operací pro přístup k datům.

Přístup k datům z webu Azure Portal

Azure Portal může použít váš účet Microsoft Entra nebo přístupové klíče účtu pro přístup k datům fronty v účtu úložiště Azure. 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 fronty, Azure Portal nejprve zkontroluje, jestli máte přiřazenou roli Azure s 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 fronty prostřednictvím autorizace sdíleného klíče. Pokud jste k této akci nepřiřadili roli, azure Portal se pokusí o přístup k datům pomocí účtu Microsoft Entra.

Pokud chcete získat přístup k datům fronty z webu Azure Portal pomocí účtu Microsoft Entra, potřebujete oprávnění pro přístup k datům fronty a také potřebujete oprávnění k procházení prostředků účtu úložiště na webu Azure Portal. Předdefinované role poskytované službou Azure Storage udělují přístup k prostředkům fronty, ale neudělují oprávnění k prostředkům účtu úložiště. Z tohoto důvodu se pro přístup k portálu vyžaduje také přiřazení role Azure Resource Manageru, jako je role Čtenář, s rozsahem vymezeným na úroveň účtu úložiště nebo vyšší. Role Čtenář uděluje nejomezenější oprávnění, ale je možné použít také jinou roli Azure Resource Manageru, která uděluje přístup k prostředkům pro správu účtu úložiště. Další informace o přiřazování oprávnění uživatelům pro přístup k datům na webu Azure Portal pomocí účtu Microsoft Entra najdete v tématu Přiřazení role Azure pro přístup k datům fronty.

Azure Portal označuje, které schéma autorizace se používá při přechodu do fronty. Další informace o přístupu k datům na portálu najdete v tématu Volba způsobu autorizace přístupu k datům fronty na webu Azure Portal.

Přístup k datům z PowerShellu nebo Azure CLI

Azure CLI a PowerShell podporují přihlášení pomocí přihlašovacích údajů Microsoft Entra. Po přihlášení se vaše relace spustí pod těmito přihlašovacími údaji. Další informace najdete v jednom z následujících článků:

Další kroky