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 identyfikator entra firmy Microsoft w celu zwrócenia tokenu 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 Entra firmy Microsoft z aplikacjami kolejek, jeśli 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żywanie konta Microsoft Entra z portalem, programem PowerShell lub interfejsem wiersza polecenia platformy Azure

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 jest zalecana w przypadku większości scenariuszy programowania.
  • Biblioteka Microsoft Authentication Library (MSAL) może być odpowiednia dla niektórych zaawansowanych scenariuszy.

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 kod jest uruchomiony na platformie Azure, jednostka zabezpieczeń może być tożsamością zarządzaną dla zasobów platformy Azure, jednostki usługi lub użytkownika lub 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ę klienta tożsamości platformy Azure jest hermetyzowany w poświadczeniach tokenu. Następnie możesz użyć poświadczeń tokenu, aby uzyskać obiekt klienta usługi do użycia w wykonywaniu autoryzowanych operacji w usłudze 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. DomyślnieAzureCredential próbuje pobrać poświadczenia tokenu sekwencyjnie, próbując wykonać kilka różnych typów poświadczeń. Wartość domyślnaAzureCredential działa zarówno w środowisku projektowym, jak i na platformie Azure.

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

Język .NET Java JavaScript Python Go
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 jednostek usługi dla deweloperów Uwierzytelnianie aplikacji platformy .NET w usługach platformy Azure podczas programowania lokalnego przy użyciu jednostek usługi Uwierzytelnianie platformy Azure przy użyciu jednostki usługi Uwierzytelnianie aplikacji JS w usługach platformy Azure przy użyciu jednostki usługi Uwierzytelnianie aplikacji języka Python w usługach platformy Azure podczas programowania lokalnego przy użyciu jednostek usługi Zestaw Azure SDK dla języka Go z 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
Omówienie 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 Dowiedz się więcej na temat biblioteki 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 specyficznego dla pojedynczego konta magazynu i usługi identyfikator zasobu jest używany do uzyskiwania tokenu na potrzeby autoryzowania żądań tylko do określonego 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 magazynu.

Chmura Identyfikator zasobu
Globalny platformy Azure https://<account-name>.queue.core.windows.net
Azure Government https://<account-name>.queue.core.usgovcloudapi.net
Azure w Chinach — 21Vianet https://<account-name>.queue.core.chinacloudapi.cn

Możesz również podać identyfikator zasobu, który ma zastosowanie do dowolnego konta magazynu, 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
Globalny platformy Azure
Azure Government
Azure w Chinach — 21Vianet
https://storage.azure.com/

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

Firma Microsoft Entra autoryzuje prawa dostępu do zabezpieczonych zasobów za pośrednictwem kontroli dostępu opartej na rolach platformy Azure. 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ń firmy Microsoft Entra może być użytkownikiem, grupą, jednostką usługi aplikacji lub tożsamością zarządzaną dla zasobów platformy 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 włączenie szczegółowego dostępu do zasobów kolejki lub uproszczenie uprawnień w przypadku dużej liczby przypisań ról dla 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ć wbudowane role. 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

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żna ją przypisać na poziomie subskrypcji, grupy zasobów, konta magazynu lub kolejki.

Zakres zasobu

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 pod nimi zasoby.

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 magazynu 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 magazynu w grupie zasobów.
  • Subskrypcja. W tym zakresie przypisanie roli ma zastosowanie do wszystkich kolejek we wszystkich kontach magazynu we wszystkich grupach zasobów w subskrypcji.
  • Grupa zarządzania. W tym zakresie przypisanie roli ma zastosowanie do wszystkich kolejek we wszystkich kontach magazynu we wszystkich grupach zasobów we wszystkich 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, Współautor i Współautor konta magazynu, umożliwiają podmiotowi zabezpieczeń zarządzanie kontem magazynu, ale nie zapewniają dostępu do danych kolejki w ramach tego konta za pośrednictwem identyfikatora Microsoft Entra. Jeśli jednak rola zawiera wartość Microsoft.Storage/storageAccounts/listKeys/action, użytkownik, któremu przypisano tę rolę, może uzyskać dostęp do danych na koncie magazynu za pośrednictwem autoryzacji klucza współdzielonego z kluczami 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 dla usługi Azure Storage dla usług danych i usługi zarządzania, zobacz sekcję Storage w temacie Role wbudowane platformy Azure dla kontroli dostępu opartej na rolach platformy Azure. 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 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 witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure 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).

Uwaga

Autoryzacja z kluczem udostępnionym nie jest zalecana, ponieważ może być mniej bezpieczna. Aby uzyskać optymalne zabezpieczenia, wyłącz autoryzację za pośrednictwem klucza współdzielonego dla konta magazynu, zgodnie z opisem w temacie Zapobieganie autoryzacji klucza współdzielonego dla konta usługi Azure Storage.

Korzystanie z kluczy dostępu i parametry połączenia powinno być ograniczone do początkowego sprawdzania koncepcji 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

Witryna Azure Portal może używać konta Microsoft Entra lub kluczy dostępu do konta w celu uzyskania dostępu do danych kolejki na koncie usługi Azure Storage. Który schemat autoryzacji używany w witrynie Azure Portal zależy od przypisanych ról platformy Azure.

Podczas próby uzyskania dostępu do danych kolejki witryna Azure Portal najpierw sprawdza, czy przypisano ci rolę platformy Azure za pomocą polecenia Microsoft.Storage/storageAccounts/listkeys/action. Jeśli przypisano ci rolę z tą akcją, w witrynie Azure Portal jest używany klucz konta do uzyskiwania dostępu do danych kolejki za pośrednictwem autoryzacji 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 witryny Azure Portal przy użyciu konta Microsoft Entra, musisz mieć uprawnienia dostępu do danych kolejki, a także uprawnienia do nawigowania po zasobach konta magazynu w witrynie Azure Portal. Wbudowane role udostępniane przez usługę Azure Storage udzielają dostępu do zasobów kolejki, ale nie udzielają uprawnień do zasobów konta magazynu. Z tego powodu dostęp do portalu wymaga również przypisania roli usługi Azure Resource Manager, takiej jak rola czytelnika, z zakresem obejmującym poziom konta magazynu lub wyższym. Rola Czytelnik przyznaje najbardziej ograniczone uprawnienia, ale inna rola Azure Resource Manager, która przyznaje 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:

Następne kroki