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:
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.
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:
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:
- Współautor danych kolejki usługi Storage: Służy do przyznawania uprawnień do odczytu/zapisu/usuwania do kolejek platformy Azure.
- Czytelnik danych kolejki usługi Storage: Służy do przyznawania uprawnień tylko do odczytu do kolejek platformy Azure.
- Procesor komunikatów danych kolejki usługi Storage: Służy do przyznawania uprawnień do wglądu, pobierania i usuwania do komunikatów w kolejkach usługi Azure Storage.
- Nadawca komunikatów danych kolejki usługi Storage: Służy do przyznawania uprawnień do dodawania komunikatów w kolejkach usługi 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:
- Wybieranie sposobu autoryzowania dostępu do danych w kolejce za pomocą interfejsu wiersza polecenia platformy Azure
- Uruchamianie poleceń programu PowerShell przy użyciu poświadczeń firmy Microsoft Entra w celu uzyskania dostępu do danych kolejki