Udostępnij za pośrednictwem


Omówienie kontroli dostępu

Dotyczy: ✅Microsoft FabricAzure Data Explorer

Kontrola dostępu jest oparta na uwierzytelnianiu i autoryzacji. Każde zapytanie i polecenie w zasobie usługi Azure Data Explorer, takim jak klaster lub baza danych, musi przejść testy uwierzytelniania i autoryzacji.

Kontrola dostępu jest oparta na uwierzytelnianiu i autoryzacji. Każde zapytanie i polecenie w zasobie sieci szkieletowej, takim jak baza danych, musi przejść testy uwierzytelniania i autoryzacji.

  • Uwierzytelnianie: weryfikuje tożsamość podmiotu zabezpieczeń wysyłającego żądanie
  • autoryzacji: weryfikuje podmiot zabezpieczeń, który wysyła żądanie, może wysłać to żądanie do zasobu docelowego

Uwierzytelnianie

Aby uwierzytelnić programowo, klient musi komunikować się z Identyfikator entra firmy Microsoft i zażądać tokenu dostępu specyficznego dla usługi Kusto. Następnie klient może użyć uzyskanego tokenu dostępu jako dowodu tożsamości podczas wystawiania żądań do bazy danych.

Główne scenariusze uwierzytelniania są następujące:

  • uwierzytelnianie użytkowników: służy do weryfikowania tożsamości użytkowników.
  • Uwierzytelnianie aplikacji: służy do weryfikowania tożsamości aplikacji, która musi uzyskiwać dostęp do zasobów bez interwencji człowieka przy użyciu skonfigurowanych poświadczeń.
  • uwierzytelniania on-behalf-of (OBO): umożliwia aplikacji wymianę tokenu dla danej aplikacji przy użyciu tokenu w celu uzyskania dostępu do usługi Kusto. Ten przepływ należy zaimplementować za pomocą biblioteki MSAL.
  • uwierzytelnianie jednostronicowe (SPA): umożliwia aplikacjom internetowym SPA po stronie klienta logowanie użytkowników i uzyskiwanie tokenów dostępu do bazy danych. Ten przepływ należy zaimplementować za pomocą biblioteki MSAL.

Nuta

W przypadku uwierzytelniania użytkowników i aplikacji zalecamy użycie bibliotek klienckich usługi Kusto. Jeśli potrzebujesz uwierzytelniania on-behalf-of (OBO) lub Single-Page Application (SPA), musisz użyć bibliotek MSAL bezpośrednio, ponieważ biblioteki klienckie nie obsługują tych przepływów. Aby uzyskać więcej informacji, zobacz Authentication with Microsoft Authentication Library (MSAL).

Uwierzytelnianie użytkownika

Uwierzytelnianie użytkownika odbywa się, gdy użytkownik przedstawia poświadczenia identyfikatorowi Entra firmy Microsoft lub dostawcy tożsamości, który sfederuje się z identyfikatorem Entra firmy Microsoft, takim jak usługi Active Directory Federation Services. Użytkownik otrzymuje token zabezpieczający, który można przedstawić usłudze Azure Data Explorer. Usługa Azure Data Explorer określa, czy token jest prawidłowy, czy token jest wystawiany przez zaufanego wystawcę i jakie oświadczenia zabezpieczeń zawiera token.

Usługa Azure Data Explorer obsługuje następujące metody uwierzytelniania użytkowników, w tym za pośrednictwem bibliotek klienckich usługi Kusto:

  • Interakcyjne uwierzytelnianie użytkownika przy użyciu logowania za pośrednictwem interfejsu użytkownika.
  • Uwierzytelnianie użytkownika za pomocą tokenu entra firmy Microsoft wystawionego dla usługi Azure Data Explorer.
  • Uwierzytelnianie użytkownika za pomocą tokenu Entra firmy Microsoft wystawionego dla innego zasobu, który można wymienić na token usługi Azure Data Explorer przy użyciu uwierzytelniania on-behalf-of (OBO).

Uwierzytelnianie aplikacji

Uwierzytelnianie aplikacji jest wymagane, gdy żądania nie są skojarzone z określonym użytkownikiem lub gdy żaden użytkownik nie jest dostępny do podania poświadczeń. W takim przypadku aplikacja uwierzytelnia się w usłudze Microsoft Entra ID lub federacyjnym dostawcy tożsamości przez przedstawienie informacji tajnych.

Usługa Azure Data Explorer obsługuje następujące metody uwierzytelniania aplikacji, w tym za pośrednictwem bibliotek klienckich usługi Kusto:

  • Uwierzytelnianie aplikacji przy użyciu tożsamości zarządzanej platformy Azure.
  • Uwierzytelnianie aplikacji przy użyciu certyfikatu X.509v2 zainstalowanego lokalnie.
  • Uwierzytelnianie aplikacji przy użyciu certyfikatu X.509v2 przekazanego do biblioteki klienta jako strumienia bajtów.
  • Uwierzytelnianie aplikacji przy użyciu identyfikatora aplikacji Entra firmy Microsoft i klucza aplikacji Entra firmy Microsoft. Identyfikator aplikacji i klucz aplikacji są podobne do nazwy użytkownika i hasła.
  • Uwierzytelnianie aplikacji z wcześniej uzyskanym prawidłowym tokenem firmy Microsoft Entra wystawionym w usłudze Azure Data Explorer.
  • Uwierzytelnianie aplikacji za pomocą tokenu entra firmy Microsoft wystawionego dla innego zasobu, który można wymienić na token usługi Azure Data Explorer przy użyciu uwierzytelniania on-behalf-of (OBO).

Autoryzacja

Przed wykonaniem akcji dla zasobu wszyscy uwierzytelnieni użytkownicy muszą przejść kontrolę autoryzacji. Używany jest model kontroli dostępu opartej na rolach kusto, w którym podmioty zabezpieczeń są przypisywane do co najmniej jednej roli zabezpieczeń. Autoryzacja jest udzielana tak długo, jak jedna z ról przypisanych do użytkownika pozwala im wykonać określoną akcję. Na przykład rola Użytkownik bazy danych przyznaje podmiotom zabezpieczeń prawo do odczytywania danych konkretnej bazy danych, tworzenia tabel w bazie danych i nie tylko.

Skojarzenie podmiotów zabezpieczeń z rolami zabezpieczeń można zdefiniować indywidualnie lub przy użyciu grup zabezpieczeń zdefiniowanych w identyfikatorze Entra firmy Microsoft. Aby uzyskać więcej informacji na temat przypisywania ról zabezpieczeń, zobacz omówienie ról zabezpieczeń .

Autoryzacja grupy

Autoryzację można udzielić grupom identyfikatorów Entra firmy Microsoft, przypisując do grupy co najmniej jedną rolę.

Podczas sprawdzania autoryzacji dla użytkownika lub jednostki aplikacji system najpierw wyszukuje jawne przypisanie roli, które zezwala na określoną akcję. Jeśli przypisanie roli nie istnieje, system sprawdza członkostwo podmiotu zabezpieczeń we wszystkich grupach, które mogą autoryzować akcję.

Jeśli podmiot zabezpieczeń jest członkiem grupy z odpowiednimi uprawnieniami, żądana akcja jest autoryzowana. W przeciwnym razie akcja nie przekazuje sprawdzania autoryzacji i jest niedozwolona.

Nuta

Sprawdzanie członkostwa w grupach może być intensywnie korzystające z zasobów. Ponieważ członkostwa w grupach nie zmieniają się często, wyniki sprawdzania członkostwa są buforowane. Czas trwania buforowania różni się i określa, jak szybko zmiany członkostwa w grupach są aktualizowane. Propagowanie użytkownika do grupy może potrwać do 30 minut. Usunięcie użytkownika z grupy może potrwać do trzech godzin.

Wymuszanie odświeżania członkostwa w grupie

Podmioty zabezpieczeń mogą wymusić odświeżenie informacji o członkostwie w grupie. Ta funkcja jest przydatna w scenariuszach, w których uprzywilejowane usługi dostępu just in time (JIT), takie jak Microsoft Entra Privileged Identity Management (PIM), są używane do uzyskiwania wyższych uprawnień do zasobu.

Odświeżanie dla określonej grupy

Podmioty zabezpieczeń mogą wymusić odświeżenie członkostwa w grupie dla określonej grupy. Obowiązują jednak następujące ograniczenia:

  • Można zażądać odświeżenia maksymalnie 10 razy na godzinę na jednostkę.
  • Podmiot żądający musi być członkiem grupy w momencie żądania.

Żądanie powoduje błąd, jeśli którykolwiek z tych warunków nie zostanie spełniony.

Aby ponownie sprawdzić członkostwo bieżącego podmiotu zabezpieczeń w grupie, uruchom następujące polecenie:

.clear cluster cache groupmembership with (group='<GroupFQN>')

Użyj w pełni kwalifikowanej nazwy grupy (FQN). Aby uzyskać więcej informacji, zobacz Referencing Microsoft Entra principals and groups.

Odświeżanie dla innych podmiotów zabezpieczeń

Podmiot zabezpieczeń uprzywilejowanych może zażądać odświeżenia dla innych podmiotów zabezpieczeń. Podmiot żądający musi mieć AllDatabaseMonitor dostęp do usługi docelowej. Uprzywilejowane podmioty zabezpieczeń mogą również uruchamiać poprzednie polecenie bez ograniczeń.

Aby odświeżyć członkostwo w grupie innego podmiotu zabezpieczeń, uruchom następujące polecenie:

W poniższym poleceniu zastąp <PrincipalFQN> własną w pełni kwalifikowaną nazwą podmiotu zabezpieczeń (FQN) i <GroupFQN> własną nazwą FQN grupy. Aby uzyskać więcej informacji, zobacz Referencing Microsoft Entra principals and groups.

.clear cluster cache groupmembership with (principal='<PrincipalFQN>', group='<GroupFQN>')