Podstawy autoryzacji

Autoryzacja (czasami skracana jako AuthZ) służy do ustawiania uprawnień, które umożliwiają ocenę dostępu do zasobów lub funkcji. Natomiast uwierzytelnianie (czasami skracane jako AuthN) koncentruje się na udowodnieniu, że jednostka taka jak użytkownik lub usługa jest rzeczywiście tym, kim są.

Autoryzacja może obejmować określanie funkcjonalności, zasobów lub danych, do których może uzyskiwać dostęp jednostka. Autoryzacja określa również, co można zrobić z danymi. Ta akcja autoryzacji jest często nazywana kontrolą dostępu.

Uwierzytelnianie i autoryzacja to pojęcia, które nie są ograniczone tylko do użytkowników. Usługi lub aplikacje demona są często tworzone, aby wysyłać żądania dotyczące zasobów jako siebie, a nie w imieniu określonego użytkownika. W tym artykule termin "jednostka" jest używany do odwoływania się do użytkownika lub aplikacji.

Metody autoryzacji

Istnieje kilka typowych podejść do obsługi autoryzacji. Kontrola dostępu oparta na rolach jest obecnie najczęstszym podejściem korzystającym z Platforma tożsamości Microsoft.

Uwierzytelnianie jako autoryzacja

Prawdopodobnie najprostszą formą autoryzacji jest udzielenie lub odmowa dostępu na podstawie tego, czy jednostka wysyłająca żądanie została uwierzytelniona. Jeśli osoba żądający może udowodnić, że jest tym, kim jest, może uzyskać dostęp do chronionych zasobów lub funkcji.

Listy kontroli dostępu

Autoryzacja przy użyciu list kontroli dostępu (ACL) obejmuje utrzymywanie jawnych list określonych jednostek, które nie mają dostępu do zasobu lub funkcji. Listy ACL zapewniają dokładniejszy dostęp do uwierzytelniania jako autoryzacji, ale stają się trudne do zarządzania w miarę zwiększania się liczby jednostek.

Kontrola dostępu oparta na rolach

Kontrola dostępu oparta na rolach (RBAC) jest prawdopodobnie najbardziej typowym podejściem do wymuszania autoryzacji w aplikacjach. W przypadku korzystania z kontroli dostępu opartej na rolach role są definiowane w celu opisania rodzajów działań, które może wykonywać jednostka. Deweloper aplikacji udziela dostępu do ról, a nie poszczególnym jednostkom. Administrator może następnie przypisywać role do różnych jednostek, aby kontrolować, które mają dostęp do zasobów i funkcji.

W zaawansowanych implementacjach kontroli dostępu opartej na rolach role mogą być mapowane na kolekcje uprawnień, gdzie uprawnienie opisuje szczegółową akcję lub działanie, które można wykonać. Role są następnie konfigurowane jako kombinacje uprawnień. Oblicz ogólny zestaw uprawnień dla jednostki, łącząc uprawnienia przyznane różnym rolom, do których jest przypisana jednostka. Dobrym przykładem tego podejścia jest implementacja RBAC, która zarządza dostępem do zasobów w subskrypcjach platformy Azure.

Uwaga

Kontrola dostępu oparta na rolach aplikacji różni się od kontroli dostępu opartej na rolach platformy Azure i kontroli dostępu opartej na rolach firmy Microsoft. Role niestandardowe platformy Azure i wbudowane role są częścią kontroli dostępu opartej na rolach platformy Azure, która ułatwia zarządzanie zasobami platformy Azure. Kontrola dostępu oparta na rolach firmy Microsoft umożliwia zarządzanie zasobami firmy Microsoft Entra.

Kontrola dostępu oparta na atrybutach

Kontrola dostępu oparta na atrybutach (ABAC) to bardziej precyzyjny mechanizm kontroli dostępu. W tym podejściu reguły są stosowane do jednostki, zasobów, do których uzyskuje się dostęp, i bieżącego środowiska. Reguły określają poziom dostępu do zasobów i funkcji. Przykładem może być zezwolenie tylko użytkownikom, którzy są menedżerami w celu uzyskania dostępu do plików zidentyfikowanych za pomocą tagu metadanych "menedżerowie tylko w godzinach pracy" w godzinach 9:00 – 5pm w dniach roboczych. W takim przypadku dostęp jest określany przez sprawdzenie atrybutu (status as manager) użytkownika, atrybutu (tagu metadanych w pliku) zasobu, a także atrybutu środowiska (bieżący czas).

Jedną z zalet abAC jest to, że można uzyskać bardziej szczegółową i dynamiczną kontrolę dostępu za pomocą ocen reguł i warunków bez konieczności tworzenia dużej liczby określonych ról i przypisań RBAC.

Jedną z metod osiągnięcia kontroli ABAC przy użyciu identyfikatora Entra firmy Microsoft jest użycie grup dynamicznych. Grupy dynamiczne umożliwiają administratorom dynamiczne przypisywanie użytkowników do grup na podstawie określonych atrybutów użytkownika z żądanymi wartościami. Na przykład można utworzyć grupę Autorzy, w której wszyscy użytkownicy z tytułem zadania Autor są dynamicznie przypisywani do grupy Autorzy. Grupy dynamiczne mogą być używane w połączeniu z kontrolą dostępu opartą na rolach w celu autoryzacji, w której mapujesz role na grupy i dynamicznie przypiszesz użytkowników do grup.

Usługa Azure ABAC to przykład rozwiązania ABAC, które jest obecnie dostępne. Usługa Azure ABAC bazuje na kontroli dostępu opartej na rolach platformy Azure przez dodanie warunków przypisywania ról na podstawie atrybutów w kontekście określonych akcji.

Implementowanie autoryzacji

Logika autoryzacji jest często implementowana w aplikacjach lub rozwiązaniach, w których wymagana jest kontrola dostępu. W wielu przypadkach platformy deweloperskie aplikacji oferują oprogramowanie pośredniczące lub inne rozwiązania interfejsu API, które upraszczają implementację autoryzacji. Przykłady obejmują użycie atrybutu AuthorizeAttribute w ASP.NET lub route Guards w usłudze Angular.

W przypadku metod autoryzacji, które opierają się na informacjach o uwierzytelnionej jednostce, aplikacja ocenia informacje wymieniane podczas uwierzytelniania. Na przykład przy użyciu informacji podanych w tokenie zabezpieczającym. Jeśli planujesz używanie informacji z tokenów na potrzeby autoryzacji, zalecamy przestrzeganie tych wskazówek dotyczących prawidłowego zabezpieczania aplikacji za pośrednictwem weryfikacji oświadczeń. W obszarze Aby uzyskać informacje, które nie znajdują się w tokenie zabezpieczającym, aplikacja może wykonywać dodatkowe wywołania do zasobów zewnętrznych.

Nie jest to absolutnie konieczne, aby deweloperzy osadzali logikę autoryzacji w całości w swoich aplikacjach. Zamiast tego dedykowane usługi autoryzacji mogą służyć do scentralizowanej implementacji autoryzacji i zarządzania nią.

Następne kroki