Udostępnij za pośrednictwem


Autoryzowanie dostępu do kolejek przy użyciu identyfikatora Entra firmy Microsoft

Usługa Azure Storage obsługuje używanie identyfikatora Entra firmy Microsoft do autoryzacji żądań do kolejkowania danych. Za pomocą identyfikatora Entra firmy Microsoft możesz użyć kontroli dostępu opartej na rolach (RBAC) platformy Azure, aby udzielić uprawnień jednostce zabezpieczeń, która może być użytkownikiem, grupą lub jednostką usługi aplikacji. Podmiot zabezpieczeń jest uwierzytelniany przez Microsoft Entra ID, aby zwrócić token OAuth 2.0. Token może następnie służyć do autoryzowania żądania względem usługi Kolejki.

Autoryzacja za pomocą identyfikatora Entra firmy Microsoft zapewnia doskonałe zabezpieczenia i łatwość użycia w przypadku autoryzacji klucza współdzielonego. Firma Microsoft zaleca używanie autoryzacji Microsoft Entra w aplikacjach kolejkowych, gdy tylko jest to możliwe, aby zapewnić dostęp z minimalnymi wymaganymi uprawnieniami.

Autoryzacja za pomocą identyfikatora Entra firmy Microsoft jest dostępna dla wszystkich kont magazynu ogólnego przeznaczenia we wszystkich regionach publicznych i chmurach krajowych. Tylko konta magazynu utworzone za pomocą modelu wdrażania usługi Azure Resource Manager obsługują autoryzację firmy Microsoft Entra.

Omówienie identyfikatora Entra firmy Microsoft dla kolejek

Gdy podmiot zabezpieczeń (użytkownik, grupa lub aplikacja) próbuje uzyskać dostęp do zasobu kolejki, żądanie musi być autoryzowane, chyba że jest to kolejka dostępna dla dostępu anonimowego. W przypadku identyfikatora Entra firmy Microsoft dostęp do zasobu jest procesem dwuetapowym:

  1. Najpierw tożsamość podmiotu zabezpieczeń jest uwierzytelniana i zwracany jest token OAuth 2.0.

    Krok uwierzytelniania wymaga, aby aplikacja zażądała tokenu dostępu OAuth 2.0 w czasie wykonywania. Jeśli aplikacja działa z poziomu jednostki platformy Azure, takiej jak maszyna wirtualna platformy Azure, zestaw skalowania maszyn wirtualnych lub aplikacja usługi Azure Functions, może używać tożsamości zarządzanej do uzyskiwania dostępu do danych kolejki.

  2. Następnie token jest przekazywany jako część żądania do usługi Kolejki i używany przez usługę do autoryzowania dostępu do określonego zasobu.

    Krok autoryzacji wymaga przypisania co najmniej jednej roli RBAC platformy Azure do podmiotu zabezpieczeń wysyłającego żądanie. Aby uzyskać więcej informacji, zobacz Przypisywanie ról platformy Azure na potrzeby praw dostępu.

Użyj konta Microsoft Entra z portalem, programem PowerShell lub Azure CLI

Aby dowiedzieć się, jak uzyskać dostęp do danych w witrynie Azure Portal przy użyciu konta Microsoft Entra, zobacz Dostęp do danych w witrynie Azure Portal. Aby dowiedzieć się, jak wywoływać polecenia programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure przy użyciu konta Microsoft Entra, zobacz Dostęp do danych za pomocą programu PowerShell lub interfejsu wiersza polecenia platformy Azure.

Używanie identyfikatora Entra firmy Microsoft do autoryzowania dostępu w kodzie aplikacji

Aby autoryzować dostęp do usługi Azure Storage przy użyciu identyfikatora Entra firmy Microsoft, możesz użyć jednej z następujących bibliotek klienckich do uzyskania tokenu OAuth 2.0:

Biblioteka klienta tożsamości platformy Azure

Biblioteka klienta tożsamości platformy Azure upraszcza proces uzyskiwania tokenu dostępu OAuth 2.0 do autoryzacji przy użyciu identyfikatora Entra firmy Microsoft za pośrednictwem zestawu Azure SDK. Najnowsze wersje bibliotek klienckich usługi Azure Storage dla platformy .NET, Java, Python, JavaScript i Go są zintegrowane z bibliotekami tożsamości platformy Azure dla każdego z tych języków, aby zapewnić prosty i bezpieczny sposób uzyskiwania tokenu dostępu do autoryzacji żądań usługi Azure Storage.

Zaletą biblioteki klienta tożsamości platformy Azure jest możliwość użycia tego samego kodu w celu uzyskania tokenu dostępu niezależnie od tego, czy aplikacja działa w środowisku deweloperów, czy na platformie Azure. Biblioteka klienta usługi Azure Identity zwraca token dostępu dla podmiotu zabezpieczeń. Gdy Twój kod działa na platformie Azure, jednostka zabezpieczeń może mieć postać tożsamości zarządzanej dla zasobów Azure, konta usługi lub użytkownika bądź grupy. W środowisku projektowym biblioteka klienta udostępnia token dostępu dla użytkownika lub jednostki usługi na potrzeby testowania.

Token dostępu zwrócony przez bibliotekę klientów tożsamości Azure jest zamknięty w poświadczeniu tokenu. Następnie możesz użyć poświadczenia tokenu, aby uzyskać obiekt klienta usługi do użycia w wykonywaniu autoryzowanych operacji na Azure Storage. Prostym sposobem uzyskania tokenu dostępu i poświadczeń tokenu jest użycie klasy DefaultAzureCredential udostępnianej przez bibliotekę klienta tożsamości platformy Azure. DefaultAzureCredential próbuje pobrać poświadczenia tokenu sekwencyjnie, próbując kilka różnych rodzajów poświadczeń. DefaultAzureCredential działa zarówno w środowisku deweloperskim, jak i w Azure.

Poniższa tabela zawiera dodatkowe informacje dotyczące autoryzowania dostępu do danych w różnych scenariuszach:

Język .NET Jawa JavaScript Pyton Idź
Omówienie uwierzytelniania za pomocą identyfikatora Entra firmy Microsoft Jak uwierzytelniać aplikacje platformy .NET za pomocą usług platformy Azure Uwierzytelnianie platformy Azure przy użyciu języka Java i tożsamości platformy Azure Uwierzytelnianie aplikacji JavaScript na platformie Azure przy użyciu zestawu Azure SDK Uwierzytelnianie aplikacji języka Python na platformie Azure przy użyciu zestawu Azure SDK
Uwierzytelnianie przy użyciu głównych usług deweloperskich Uwierzytelnianie aplikacji platformy .NET w usługach platformy Azure podczas programowania lokalnego przy użyciu jednostek usługi Uwierzytelnianie Azure przy użyciu pryncypału usługi Uwierzytelnianie aplikacji JS w usługach platformy Azure przy użyciu jednostki usługi Uwierzytelniaj aplikacje Python do usług Azure podczas lokalnego programowania przy użyciu pryncypałów usługi Uwierzytelnianie w Azure SDK dla Go przez jednostkę usługi
Uwierzytelnianie przy użyciu kont deweloperów lub użytkowników Uwierzytelnianie aplikacji platformy .NET w usługach platformy Azure podczas programowania lokalnego przy użyciu kont deweloperów Uwierzytelnianie platformy Azure przy użyciu poświadczeń użytkownika Uwierzytelnianie aplikacji JS w usługach platformy Azure przy użyciu kont deweloperskich Uwierzytelnianie aplikacji języka Python w usługach platformy Azure podczas programowania lokalnego przy użyciu kont deweloperów Uwierzytelnianie platformy Azure za pomocą zestawu Azure SDK dla języka Go
Uwierzytelnianie z aplikacji hostowanych na platformie Azure Uwierzytelnianie aplikacji hostowanych na platformie Azure do zasobów platformy Azure przy użyciu zestawu Azure SDK dla platformy .NET Uwierzytelnianie aplikacji Java hostowanych na platformie Azure Uwierzytelnianie aplikacji JavaScript hostowanych na platformie Azure do zasobów platformy Azure przy użyciu zestawu Azure SDK dla języka JavaScript Uwierzytelnianie aplikacji hostowanych na platformie Azure do zasobów platformy Azure przy użyciu zestawu Azure SDK dla języka Python Uwierzytelnianie za pomocą zestawu Azure SDK dla języka Go przy użyciu tożsamości zarządzanej
Uwierzytelnianie z aplikacji lokalnych Uwierzytelnianie w zasobach platformy Azure z aplikacji platformy .NET hostowanych lokalnie Uwierzytelnianie lokalnych aplikacji JavaScript w zasobach platformy Azure Uwierzytelnianie w zasobach platformy Azure z aplikacji języka Python hostowanych lokalnie
Przegląd biblioteki klienta tożsamości Biblioteka klienta tożsamości platformy Azure dla platformy .NET Biblioteka klienta tożsamości platformy Azure dla języka Java Biblioteka klienta tożsamości platformy Azure dla języka JavaScript Biblioteka klienta tożsamości platformy Azure dla języka Python Biblioteka klienta tożsamości platformy Azure dla języka Go

Biblioteka uwierzytelniania firmy Microsoft (MSAL)

Chociaż firma Microsoft zaleca korzystanie z biblioteki klienta tożsamości platformy Azure, jeśli to możliwe, biblioteka MSAL może być odpowiednia do użycia w niektórych zaawansowanych scenariuszach. Aby uzyskać więcej informacji, zobacz Informacje o MSAL.

Jeśli używasz biblioteki MSAL do uzyskania tokenu OAuth na potrzeby dostępu do usługi Azure Storage, musisz podać identyfikator zasobu Entra firmy Microsoft. Identyfikator zasobu Entra firmy Microsoft wskazuje odbiorców, dla których można użyć tokenu wystawionego do zapewnienia dostępu do zasobu platformy Azure. W przypadku usługi Azure Storage identyfikator zasobu może być specyficzny dla pojedynczego konta magazynu lub może mieć zastosowanie do dowolnego konta magazynu.

Po podaniu identyfikatora zasobu, który jest unikalny dla jednego konta magazynu i związanej z nim usługi, identyfikator ten jest używany do uzyskania tokenu, który pozwala na autoryzację żądań wyłącznie do tego konkretnego konta i usługi. W poniższej tabeli wymieniono wartość używaną dla identyfikatora zasobu na podstawie chmury, z którą pracujesz. Zastąp wartość <account-name> nazwą konta magazynowania.

Chmura Identyfikator zasobu
Globalna platforma Azure https://<account-name>.queue.core.windows.net
Azure Government (usługi chmury dla administracji publicznej) https://<account-name>.queue.core.usgovcloudapi.net
Azure (Chiny) — 21Vianet https://<account-name>.queue.core.chinacloudapi.cn

Możesz również podać identyfikator zasobu, który ma zastosowanie do dowolnego konta magazynowego, jak pokazano w poniższej tabeli. Ten identyfikator zasobu jest taki sam dla wszystkich chmur publicznych i suwerennych i służy do uzyskiwania tokenu do autoryzowania żądań do dowolnego konta magazynu.

Chmura Identyfikator zasobu
Globalna platforma Azure
Azure Government (usługi chmury dla administracji publicznej)
Azure (Chiny) — 21Vianet
https://storage.azure.com/

Przypisywanie ról platformy Azure na potrzeby praw dostępu

Microsoft Entra upoważnia do korzystania z zasobów objętych ochroną przez Azure RBAC (kontrola dostępu oparta na rolach). Usługa Azure Storage definiuje zestaw wbudowanych ról RBAC obejmujących typowe zestawy uprawnień używanych do uzyskiwania dostępu do danych kolejek. Można również zdefiniować role niestandardowe na potrzeby dostępu do danych kolejki. Aby dowiedzieć się więcej na temat przypisywania ról platformy Azure na potrzeby dostępu do kolejek, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych w kolejce.

Podmiot zabezpieczeń Microsoft Entra może być użytkownikiem, grupą, głównym podmiotem usługi aplikacji lub tożsamością zarządzaną dla zasobów Azure. Role RBAC przypisane do podmiotu zabezpieczeń określają uprawnienia, które będzie miał podmiot zabezpieczeń. Aby dowiedzieć się więcej na temat przypisywania ról platformy Azure na potrzeby dostępu do kolejek, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych w kolejce

W niektórych przypadkach może być konieczne umożliwienie szczegółowego dostępu do zasobów kolejki lub uproszczenie uprawnień, gdy mamy dużą liczbę przypisań ról do zasobu magazynu. Do konfigurowania warunków przypisań ról można użyć kontroli dostępu opartej na atrybutach platformy Azure (Azure ABAC). Możesz użyć warunków z rolą niestandardową lub wybrać role wbudowane. Aby uzyskać więcej informacji na temat konfigurowania warunków dla zasobów usługi Azure Storage przy użyciu funkcji ABAC, zobacz Autoryzowanie dostępu do kolejek przy użyciu warunków przypisywania ról platformy Azure. Aby uzyskać szczegółowe informacje na temat obsługiwanych warunków operacji danych w kolejce, zobacz Akcje i atrybuty warunków przypisywania ról platformy Azure dla kolejek platformy Azure.

Uwaga / Notatka

Podczas tworzenia konta usługi Azure Storage nie masz automatycznie przypisanych uprawnień dostępu do danych za pośrednictwem identyfikatora Entra firmy Microsoft. Aby uzyskać dostęp do usługi Queue Storage, musisz jawnie przypisać sobie rolę platformy Azure. Możesz przypisać ją na poziomie subskrypcji, grupy zasobów, konta przechowywania lub kolejki.

Zakres zasobów

Przed przypisaniem roli RBAC platformy Azure do podmiotu zabezpieczeń określ zakres dostępu, który powinien mieć podmiot zabezpieczeń. Najlepsze rozwiązania określają, że zawsze najlepiej przyznać tylko najwęższy możliwy zakres. Role RBAC platformy Azure zdefiniowane w szerszym zakresie są dziedziczone przez zasoby znajdujące się pod nimi.

Dostęp do zasobów kolejki platformy Azure można ograniczyć na następujących poziomach, począwszy od najwęższego zakresu:

  • Pojedyncza kolejka. W tym zakresie przypisanie roli ma zastosowanie do komunikatów w kolejce oraz do właściwości i metadanych kolejki.
  • Konto przechowywania. W tym zakresie przypisanie roli ma zastosowanie do wszystkich kolejek i ich komunikatów.
  • grupa zasobów. W tym zakresie przypisanie roli ma zastosowanie do wszystkich kolejek we wszystkich kontach pamięci masowej w grupie zasobów.
  • Subskrypcja. W ramach tego zakresu przypisanie roli ma zastosowanie do wszystkich kolejek na wszystkich kontach magazynu we wszystkich grupach zasobów w subskrypcji.
  • Grupa zarządzania. W tym zakresie przypisanie roli dotyczy wszystkich kolejek na kontach magazynowych, w grupach zasobów i subskrypcjach w grupie zarządzania.

Aby uzyskać więcej informacji na temat zakresu przypisań ról RBAC platformy Azure, zobacz Omówienie zakresu kontroli dostępu opartej na rolach platformy Azure.

Wbudowane role platformy Azure dla kolejek

Kontrola dostępu oparta na rolach platformy Azure udostępnia kilka wbudowanych ról umożliwiających autoryzowanie dostępu do danych w kolejce przy użyciu identyfikatora Entra firmy Microsoft i protokołu OAuth. Oto kilka przykładów ról, które zapewniają uprawnienia do zasobów danych w usłudze Azure Storage:

Aby dowiedzieć się, jak przypisać wbudowaną rolę platformy Azure do podmiotu zabezpieczeń, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych w kolejce. Aby dowiedzieć się, jak wyświetlić listę ról RBAC platformy Azure i ich uprawnień, zobacz Wyświetlanie listy definicji ról platformy Azure.

Aby uzyskać więcej informacji na temat sposobu definiowania ról wbudowanych dla usługi Azure Storage, zobacz Omówienie definicji ról. Aby uzyskać informacje na temat tworzenia ról niestandardowych platformy Azure, zobacz Role niestandardowe platformy Azure.

Tylko role jawnie zdefiniowane dla dostępu do danych zezwalają podmiotowi zabezpieczeń na dostęp do danych kolejki. Wbudowane role, takie jak Właściciel, Kontrybutor i Kontrybutor konta magazynu, umożliwiają podmiotowi zabezpieczeń zarządzanie kontem magazynu, ale nie zapewniają dostępu do danych kolejki w ramach tego konta poprzez Microsoft Entra ID. Jednak jeśli rola zawiera Microsoft.Storage/storageAccounts/listKeys/action, użytkownikowi, któremu przypisano tę rolę, można uzyskać dostęp do danych na koncie magazynu za pomocą autoryzacji za pomocą klucza współdzielonego oraz kluczy dostępu do konta. Aby uzyskać więcej informacji, zobacz Wybieranie sposobu autoryzowania dostępu do danych w kolejce w witrynie Azure Portal.

Aby uzyskać szczegółowe informacje na temat wbudowanych ról platformy Azure dotyczących Azure Storage, zarówno dla usług danych, jak i zarządzania, zobacz sekcję Storage w temacie Role wbudowane platformy Azure dla kontroli dostępu opartej na rolach platformy Azure (RBAC). Ponadto aby uzyskać informacje o różnych typach ról, które zapewniają uprawnienia na platformie Azure, zobacz Role platformy Azure, Role firmy Microsoft Entra i klasyczne role administratora subskrypcji.

Ważne

Propagacja przypisań ról platformy Azure może potrwać do 30 minut.

Uprawnienia dostępu do operacji danych

Aby uzyskać szczegółowe informacje na temat uprawnień wymaganych do wywoływania określonych operacji usługi kolejki, zobacz sekcję Uprawnienia do wywoływania operacji danych.

Uzyskiwanie dostępu do danych przy użyciu konta Microsoft Entra

Dostęp do danych kolejki za pośrednictwem portalu Azure, programu PowerShell lub Azure CLI można autoryzować przy użyciu konta Microsoft Entra użytkownika lub przy użyciu kluczy dostępu do konta (autoryzacja klucza współużytkowanego).

Ostrzeżenie

Autoryzacja z kluczem udostępnionym nie jest zalecana, ponieważ może być mniej bezpieczna. Aby zapewnić optymalną ochronę, wyłącz autoryzację za pośrednictwem klucza współdzielonego dla konta usługi Azure Storage, jak opisano w Zapobieganie autoryzacji klucza współdzielonego dla konta usługi Azure Storage.

Korzystanie z kluczy dostępu i ciągów połączenia powinno być ograniczone do początkowych aplikacji koncepcyjnych lub prototypów programistycznych, które nie uzyskują dostępu do danych produkcyjnych ani poufnych. W przeciwnym razie klasy uwierzytelniania oparte na tokenach dostępne w zestawie Azure SDK powinny być zawsze preferowane podczas uwierzytelniania w zasobach platformy Azure.

Firma Microsoft zaleca, aby klienci używali identyfikatora Entra firmy Microsoft lub sygnatury dostępu współdzielonego (SAS), aby autoryzować dostęp do danych w usłudze Azure Storage. Aby uzyskać więcej informacji, zobacz Autoryzacja operacji na potrzeby dostępu do danych.

Dostęp do danych z witryny Azure Portal

Portal Azure może używać albo konta Microsoft Entra, albo kluczy dostępu do konta, aby uzyskać dostęp do danych kolejki na koncie usługi Azure Storage. Który schemat autoryzacji portal Azure używa, zależy od przypisanych ról platformy Azure.

Podczas próby uzyskania dostępu do danych kolejki portal Azure najpierw sprawdza, czy przypisano ci rolę Azure z uprawnieniami Microsoft.Storage/storageAccounts/listkeys/action. Jeśli przypisano ci rolę z tą akcją, portal Azure używa klucza konta do uzyskiwania dostępu do danych kolejki poprzez autoryzację klucza współdzielonego. Jeśli nie przypisano ci roli z tą akcją, witryna Azure Portal próbuje uzyskać dostęp do danych przy użyciu konta Microsoft Entra.

Aby uzyskać dostęp do danych kolejki z portalu Azure przy użyciu konta Microsoft Entra, musisz mieć uprawnienia dostępu do danych kolejki oraz uprawnienia do nawigowania po zasobach konta magazynu w portalu Azure. Wbudowane role dostarczane przez usługę Azure Storage zapewniają dostęp do zasobów kolejki, ale nie zapewniają uprawnień do zasobów konta magazynowego. Z tego powodu dostęp do portalu wymaga również przypisania roli w usłudze Azure Resource Manager, takiej jak rola Czytelnik, na poziomie konta magazynu lub wyższym. Rola Czytelnik przyznaje najbardziej ograniczone uprawnienia, ale inna rola usługi Azure Resource Manager, która umożliwia dostęp do zasobów zarządzania kontami magazynu, jest również akceptowalna. Aby dowiedzieć się więcej na temat przypisywania uprawnień do użytkowników na potrzeby dostępu do danych w witrynie Azure Portal przy użyciu konta Microsoft Entra, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych w kolejce.

Witryna Azure Portal wskazuje, który schemat autoryzacji jest używany podczas przechodzenia do kolejki. Aby uzyskać więcej informacji na temat dostępu do danych w portalu, zobacz Wybieranie sposobu autoryzowania dostępu do danych w kolejce w witrynie Azure Portal.

Dostęp do danych z poziomu programu PowerShell lub interfejsu wiersza polecenia platformy Azure

Interfejs wiersza polecenia platformy Azure i program PowerShell obsługują logowanie przy użyciu poświadczeń firmy Microsoft Entra. Po zalogowaniu sesja jest uruchamiana w ramach tych poświadczeń. Aby dowiedzieć się więcej, zobacz jeden z następujących artykułów:

Dalsze kroki