Autoryzuj przy użyciu Azure Active Directory

Usługa Azure Storage zapewnia integrację z usługą Azure Active Directory (Azure AD) na potrzeby autoryzacji żądań do usług obiektów blob i kolejek. Za pomocą usługi Azure AD można używać kontroli dostępu opartej na rolach (RBAC) do udzielania dostępu do zasobów obiektów blob i kolejek użytkownikom, grupom lub aplikacjom. Można przyznać uprawnienia, które są objęte zakresem danego kontenera lub kolejki.

Aby dowiedzieć się więcej na temat integracji usługi Azure AD w usłudze Azure Storage, zobacz temat autoryzowanie dostępu do obiektów blob i kolejek platformy Azure przy użyciu Azure Active Directory.

Aby uzyskać więcej informacji na temat korzyści z używania usługi Azure AD w aplikacji, zobacz Integrowanie z Azure Active Directory.

Porada

Autoryzowanie dostępu do danych obiektów blob i kolejek za pomocą usługi Azure AD zapewnia doskonałe zabezpieczenia i łatwość użycia w porównaniu z innymi opcjami autoryzacji. W przypadku korzystania z usługi Azure AD do autoryzowania żądań wysyłanych z aplikacji należy unikać zapisywania klucza dostępu do konta w kodzie, jak w przypadku autoryzacji klucza współużytkowanego. Mimo że można nadal korzystać z autoryzacji klucza współużytkowanego z aplikacjami obiektów blob i kolejkami, firma Microsoft zaleca przechodzenie do usługi Azure AD, jeśli to możliwe. Aby uzyskać więcej informacji na temat integracji usługi Azure AD w usłudze Azure Storage, zobacz temat autoryzowanie dostępu do obiektów blob i kolejek platformy Azure przy użyciu Azure Active Directory.

Uwierzytelnianie przy użyciu tokenów dostępu OAuth

Usługa Azure Storage akceptuje tokeny dostępu OAuth 2,0 z dzierżawy usługi Azure AD skojarzonej z subskrypcją, która zawiera konto magazynu. Usługa Azure Storage akceptuje tokeny dostępu dla:

  • Użytkownicy
  • Jednostki usługi
  • Tożsamości usługi zarządzanej dla zasobów platformy Azure
  • Aplikacje korzystające z uprawnień delegowanych przez użytkowników

Usługa Azure Storage uwidacznia pojedynczy zakres delegowania o nazwie user_impersonation , który umożliwia aplikacjom podejmowanie wszelkich akcji dozwolonych przez użytkownika.

Aby zażądać tokenów dla usługi Azure Storage, określ wartość https://storage.azure.com/ identyfikatora zasobu.

Aby uzyskać więcej informacji na temat żądania tokenów dostępu z usługi Azure AD dla użytkowników i podmiotów usługi, zobacz scenariusze uwierzytelniania dla usługi Azure AD.

Aby uzyskać więcej informacji na temat żądania tokenów dostępu dla zasobów skonfigurowanych przy użyciu tożsamości zarządzanych, zobacz jak używać tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej platformy Azure w celu uzyskania tokenu dostępu.

Wywoływanie operacji magazynu za pomocą tokenów OAuth

Aby wywoływać operacje obiektów blob i usługa kolejki przy użyciu tokenów dostępu OAuth, należy przekazać token dostępu do nagłówka autoryzacji za pomocą schematu Bearer i określić wersję usługi 2017-11-09 lub wyższą, jak pokazano w następującym przykładzie:

Request:
GET /container/file.txt
x-ms-version: 2017-11-09
Authorization: Bearer eyJ0eXAiO...V09ccgQ
User-Agent: PostmanRuntime/7.6.0
Accept: */*
Host: sampleoautheast2.blob.core.windows.net
accept-encoding: gzip, deflate

Response:
HTTP/1.1 200
status: 200
Content-Length: 28
Content-Type: text/plain
Content-MD5: dxG7IgOBzApXPcGHxGg5SA==
Last-Modified: Wed, 30 Jan 2019 07:21:32 GMT
Accept-Ranges: bytes
ETag: "0x8D686838F9E8BA7"
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 09f31964-e01e-00a3-8066-d4e6c2000000
x-ms-version: 2017-11-09
x-ms-creation-time: Wed, 29 Aug 2018 04:22:47 GMT
x-ms-lease-status: unlocked
x-ms-lease-state: available
x-ms-blob-type: BlockBlob
x-ms-server-encrypted: true
Date: Wed, 06 Mar 2019 21:50:50 GMT
Welcome to Azure Storage!!

Wyzwanie okaziciela

Żądanie okaziciela jest częścią protokołu OAuth 6750 i służy do odnajdywania urzędu. W przypadku żądań anonimowych lub żądań z nieprawidłowym tokenem okaziciela OAuth serwer zwróci kod stanu 401 (nieautoryzowany) za pomocą dostawcy tożsamości i informacji o zasobach. Skorzystaj z linku , aby korzystać z tych wartości podczas uwierzytelniania w usłudze Azure AD.

Usługi Azure Storage Blob i Queue zwracają wyzwanie okaziciela dla wersji 2019-12-12 i nowszych. Azure Data Lake Storage Gen2 zwraca wyzwanie okaziciela dla wersji 2017-11-09 i nowszych.

Poniżej znajduje się przykład odpowiedzi na wyzwanie okaziciela, gdy żądanie klienta nie zawiera tokenu okaziciela w żądaniu anonimowego pobierania obiektów blob:

Request:
GET /container/file.txt
x-ms-version: 2019-12-12
Host: sampleoautheast2.blob.core.windows.net

Response:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer authorization_uri=https://login.microsoftonline.com/<tenant_id>/oauth2/authorize resource_uri=https://storage.azure.com

<?xml version="1.0" encoding="utf-8"?>
<Error>
    <Code>NoAuthenticationInformation</Code>
    <Message>Server failed to authenticate the request. Please refer to the information in the www-authenticate header.
RequestId:ec4f02d7-1003-0006-21f9-c55bc8000000
Time:2020-01-08T08:01:46.2063459Z</Message>
</Error>
Parametr Opis
authorization_uri Identyfikator URI (fizyczny punkt końcowy) serwera autoryzacji. Ta wartość jest również używana jako klucz wyszukiwania, aby uzyskać więcej informacji na temat serwera z punktu końcowego odnajdywania. Klient musi sprawdzić, czy serwer autoryzacji jest zaufany. Gdy zasób jest chroniony przez usługę Azure AD, wystarczy sprawdzić, czy adres URL zaczyna się od https://login.microsoftonline.com lub do innej nazwy hosta obsługiwanej przez usługę Azure AD. Zasób specyficzny dla dzierżawy powinien zawsze zwracać identyfikator URI autoryzacji specyficznej dla dzierżawy.
resource_id Zwraca unikatowy identyfikator zasobu. Aplikacja kliencka może używać tego identyfikatora jako wartości parametru zasobu, gdy żąda tokenu dostępu do zasobu. Ważne jest, aby aplikacja kliencka mogła sprawdzić tę wartość. w przeciwnym razie złośliwa usługa może być w stanie wywołać atak podniesienia uprawnień. Zalecana strategia zapobiegania atakom polega na sprawdzeniu, czy resource_id jest zgodna z podstawą adresu URL internetowego interfejsu API, do którego uzyskuje się dostęp. https://storage.azure.comjest zazwyczaj używanym IDENTYFIKATORem zasobu usługi Azure Storage.

Zarządzanie uprawnieniami dostępu przy użyciu kontroli dostępu opartej na rolach

Usługa Azure AD obsługuje autoryzację dostępu do zasobów zabezpieczonych za pomocą RBAC. Za pomocą RBAC można przypisywać role do użytkowników, grup lub podmiotów usługi. Każda rola obejmuje zestaw uprawnień dla zasobu. Gdy rola zostanie przypisana do użytkownika, grupy lub nazwy głównej usługi, ma dostęp do tego zasobu. Prawa dostępu można przypisywać przy użyciu Azure Portal, narzędzi wiersza polecenia platformy Azure i interfejsów API zarządzania platformy Azure. Aby uzyskać więcej informacji na temat RBAC, zobacz Wprowadzenie do Access Control opartej na rolach.

W przypadku usługi Azure Storage można udzielić dostępu do danych w kontenerze lub w kolejce na koncie magazynu. Usługa Azure Storage oferuje wbudowane role RBAC do użycia z usługą Azure AD:

Aby uzyskać więcej informacji o tym, jak wbudowane role są zdefiniowane dla usługi Azure Storage, zobacz Omówienie definicji ról dla zasobów platformy Azure.

Można także definiować role niestandardowe do użycia z usługą BLOB Storage i kolejkami platformy Azure. Aby uzyskać więcej informacji, zobacz Tworzenie ról niestandardowych dla Access Control opartej na rolach na platformie Azure.

Uprawnienia do wywoływania operacji na danych obiektów blob i kolejek

W poniższych tabelach opisano uprawnienia wymagane przez użytkownika, grupę lub jednostkę usługi usługi Azure AD w celu wywołania określonych operacji usługi Azure Storage. Aby umożliwić klientowi wywołanie określonej operacji, należy się upewnić, że przypisana rola RBAC klienta oferuje odpowiednie uprawnienia do tej operacji.

Uprawnienia do Blob service operacji

Operacja Blob service Akcja RBAC
Lista kontenerów Microsoft. Storage/storageAccounts/blobServices/kontenery/Odczytaj (zakres do konta magazynu)
Ustawianie właściwości usługi BLOB Service Microsoft. Storage/storageAccounts/blobServices/Write
Pobierz właściwości usługi BLOB Service Microsoft. Storage/storageAccounts/blobServices/odczyt
Żądanie przekierowania obiektu BLOB Anonimowe
Pobierz statystyki usługi BLOB Service Microsoft. Storage/storageAccounts/blobServices/odczyt
Pobierz klucz delegowania użytkownika Microsoft. Storage/storageAccounts/blobServices/generateUserDelegationKey
Tworzenie kontenera Microsoft. Storage/storageAccounts/blobServices/kontenery/zapis
Pobierz właściwości kontenera Microsoft. Storage/storageAccounts/blobServices/kontenery/odczyt
Pobierz metadane kontenera Microsoft. Storage/storageAccounts/blobServices/kontenery/odczyt
Ustawianie metadanych kontenera Microsoft. Storage/storageAccounts/blobServices/kontenery/zapis
Pobierz listę ACL kontenerów Niedostępne za pośrednictwem uwierzytelniania OAuth
Ustawianie listy ACL kontenerów Niedostępne za pośrednictwem uwierzytelniania OAuth
Usuwanie kontenera Microsoft. Storage/storageAccounts/blobServices/kontenery/usuwanie
Kontener dzierżawy Microsoft. Storage/storageAccounts/blobServices/kontenery/zapis
Wyświetl listę obiektów BLOB Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/odczyt (zakres do kontenera)
Wstawianie obiektu blob Do tworzenia lub zastępowania: Microsoft. Storage/storageAccounts/blobServices/Containers/Blobs/Write
Aby utworzyć nowy obiekt BLOB: Microsoft. Storage/storageAccounts/blobServices/Containers/Blobs/Add/Action
Pobierz obiekt BLOB Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/odczyt
Pobieranie właściwości obiektu blob Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/odczyt
Ustawianie właściwości obiektu BLOB Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/zapis
Pobierz metadane obiektu BLOB Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/odczyt
Ustawianie metadanych obiektu BLOB Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/zapis
Dzierżawienie obiektu blob Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/zapis
Wykonywanie migawki obiektu blob Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/zapis lub
Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/Dodawanie/działanie
Kopiowanie obiektu blob W przypadku docelowego obiektu BLOB: Microsoft. Storage/storageAccounts/blobServices/Containers/Blobs/Write lub Microsoft. Storage/storageAccounts/blobServices/Containers/Blobs/Add/Action (podczas zapisywania nowego obiektu BLOB w miejscu docelowym)
Dla źródłowego obiektu BLOB w ramach tego samego konta magazynu: Microsoft. Storage/storageAccounts/blobServices/Containers/BLOB/Read
Dla źródłowego obiektu BLOB na innym koncie magazynu: dostępne jako anonimowe lub zawierają prawidłowy token SAS
Przerwij Kopiowanie obiektu BLOB Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/zapis
Usuwanie obiektu blob Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/usuwanie
Umieść blok Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/zapis
Umieść listę zablokowanych Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/zapis
Pobierz listę zablokowanych Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/odczyt
Umieść stronę Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/zapis
Pobierz zakresy stron Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/odczyt
Obiekt BLOB kopiowania przyrostowego Dla docelowego obiektu BLOB: Microsoft. Storage/storageAccounts/blobServices/Containers/Blobs/Write
Dla źródłowego obiektu BLOB: Microsoft. Storage/storageAccounts/blobServices/Containers/Blobs/Read
Dla nowego obiektu BLOB: Microsoft. Storage/storageAccounts/blobServices/Containers/Blobs/Add/Action
Dołącz blok Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/Write lub Microsoft. Storage/storageAccounts/blobServices/kontenery/obiekty blob/Dodaj/akcja

Uprawnienia do usługa kolejki operacji

Operacja usługa kolejki Akcja RBAC
Wyświetl kolejki Microsoft. Storage/storageAccounts/queueServices/Queues/Read (konto magazynu z zakresem)
Ustawianie właściwości usługi kolejki Microsoft. Storage/storageAccounts/queueServices/odczyt
Pobierz właściwości usługi kolejki Microsoft. Storage/storageAccounts/queueServices/odczyt
Żądanie kolejki inspekcji wstępnej Anonimowe
Pobierz statystyki usługi kolejki Microsoft. Storage/storageAccounts/queueServices/odczyt
Utwórz kolejkę Microsoft. Storage/storageAccounts/queueServices/Queues/Write
Usuń kolejkę Microsoft. Storage/storageAccounts/queueServices/Queues/Delete
Pobierz metadane kolejki Microsoft. Storage/storageAccounts/queueServices/Queues/Read
Ustawianie metadanych kolejki Microsoft. Storage/storageAccounts/queueServices/Queues/Write
Pobieranie listy ACL kolejki Niedostępne za pośrednictwem uwierzytelniania OAuth
Ustawianie listy ACL kolejki Niedostępne za pośrednictwem uwierzytelniania OAuth
Umieść komunikat Microsoft. Storage/storageAccounts/queueServices/Queues/messages/Add/Action lub Microsoft. Storage/storageAccounts/queueServices/Queues/messages/Write
Pobierz komunikaty Microsoft. Storage/storageAccounts/queueServices/Queues/messages/Process/Action lub (Microsoft. Storage/storageAccounts/queueServices/Queues/messages/DELETE oraz Microsoft. Storage/storageAccounts/queueServices/Queues/messages/Read)
Wgląd do wiadomości Microsoft. Storage/storageAccounts/queueServices/Queues/messages/Read
Usuń komunikat Microsoft. Storage/storageAccounts/queueServices/Queues/messages/Process/Action lub Microsoft. Storage/storageAccounts/queueServices/Queues/messages/Delete
Wyczyść komunikaty Microsoft. Storage/storageAccounts/queueServices/Queues/messages/Delete
Aktualizuj komunikat Microsoft. Storage/storageAccounts/queueServices/Queues/messages/Write

Zobacz także