Dodawanie ról aplikacji do aplikacji i odbieranie ich w tokenie

Kontrola dostępu oparta na rolach (RBAC) to popularny mechanizm wymuszania autoryzacji w aplikacjach. Kontrola dostępu oparta na rolach umożliwia administratorom udzielanie uprawnień do ról, a nie określonym użytkownikom lub grupom. Administrator może następnie przypisywać role do różnych użytkowników i grup, aby kontrolować, kto ma dostęp do zawartości i funkcji.

Dzięki użyciu kontroli dostępu opartej na rolach i oświadczeniach ról aplikacji deweloperzy mogą bezpiecznie wymuszać autoryzację w swoich aplikacjach przy mniejszym nakładzie pracy.

Innym podejściem jest użycie grup i oświadczeń grup firmy Microsoft, jak pokazano w przykładzie kodu active-directory-aspnetcore-webapp-openidconnect-v2 w usłudze GitHub. Grupy i role aplikacji firmy Microsoft nie wykluczają się wzajemnie; mogą być używane razem w celu zapewnienia jeszcze bardziej szczegółowej kontroli dostępu.

Deklarowanie ról dla aplikacji

Role aplikacji można definiować przy użyciu centrum administracyjnego firmy Microsoft Entra podczas procesu rejestracji aplikacji. Role aplikacji są definiowane podczas rejestracji aplikacji reprezentującej usługę, aplikację lub interfejs API. Gdy użytkownik loguje się do aplikacji, identyfikator Entra firmy Microsoft emituje roles oświadczenie dla każdej roli, którą przyznano użytkownikowi lub jednostce usługi. Może to służyć do implementowania autoryzacji opartej na oświadczeniach. Role aplikacji można przypisać do użytkownika lub grupy użytkowników. Role aplikacji można również przypisać do jednostki usługi dla innej aplikacji lub do jednostki usługi dla tożsamości zarządzanej.

Obecnie, jeśli dodasz jednostkę usługi do grupy, a następnie przypiszesz rolę aplikacji do tej grupy, identyfikator Entra firmy Microsoft nie dodaje roles oświadczenia do tokenów, które występują.

Role aplikacji są deklarowane przy użyciu interfejsu użytkownika ról aplikacji w centrum administracyjnym firmy Microsoft Entra:

Liczba dodanych ról w stosunku do limitów manifestu aplikacji wymuszanych przez identyfikator Entra firmy Microsoft. Aby uzyskać informacje na temat tych limitów, zobacz sekcję Limity manifestu manifestu firmy Microsoft Entra.

Interfejs użytkownika ról aplikacji

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

Aby utworzyć rolę aplikacji przy użyciu interfejsu użytkownika centrum administracyjnego firmy Microsoft Entra:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej Administracja istrator aplikacji w chmurze.

  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikony Ustawienia w górnym menu, aby przełączyć się do dzierżawy zawierającej rejestrację aplikacji z menu Katalogi i subskrypcje.

  3. Przejdź do pozycji Aplikacje tożsamości>> Rejestracje aplikacji a następnie wybierz aplikację, w której chcesz zdefiniować role aplikacji.

  4. W obszarze zarządzanie wybierz pozycję Role aplikacji, a następnie wybierz pozycję Utwórz rolę aplikacji.

    An app registration's app roles pane in the Azure portal

  5. W okienku Tworzenie roli aplikacji wprowadź ustawienia roli. W poniższej tabeli opisano każde ustawienie i ich parametry.

    An app registration's app roles create context pane in the Azure portal

    Pole opis Przykład
    Nazwa wyświetlana Nazwa wyświetlana roli aplikacji wyświetlana w środowiskach zgody administratora i przypisywania aplikacji. Ta wartość może zawierać spacje. Survey Writer
    Dozwolone typy składowych Określa, czy tę rolę aplikacji można przypisać do użytkowników, aplikacji, czy obu tych ról.

    Jeśli są dostępne applicationsdla programu , role aplikacji są wyświetlane jako uprawnienia aplikacji w sekcji Zarządzanie uprawnieniami > interfejsu API w sekcji> Zarządzanie aplikacją Dodaj uprawnienie > Moje interfejsy > API Wybierz uprawnienia aplikacji interfejsu API>.
    Users/Groups
    Wartość Określa wartość oświadczenia ról, że aplikacja powinna oczekiwać w tokenie. Wartość powinna być dokładnie zgodna z ciągiem, do których odwołuje się kod aplikacji. Wartość nie może zawierać spacji. Survey.Create
    Opis Bardziej szczegółowy opis roli aplikacji wyświetlany podczas przypisywania aplikacji administratora i środowisk wyrażania zgody. Writers can create surveys.
    Czy chcesz włączyć tę rolę aplikacji? Określa, czy rola aplikacji jest włączona. Aby usunąć rolę aplikacji, usuń zaznaczenie tego pola wyboru i zastosuj zmianę przed podjęciem próby wykonania operacji usuwania. To ustawienie steruje użyciem i dostępnością roli aplikacji, a jednocześnie może tymczasowo lub trwale ją wyłączyć bez całkowitego usunięcia. Sprawdzane
  6. Wybierz pozycję Zastosuj, aby zapisać zmiany.

Gdy rola aplikacji jest ustawiona na włączoną, wszyscy użytkownicy, aplikacje lub grupy, do których przypisano tę rolę, dołączają je do swoich tokenów. Mogą to być tokeny dostępu, gdy aplikacja jest interfejsem API wywoływanym przez aplikację lub tokeny identyfikatorów, gdy aplikacja loguje się użytkownika. Jeśli zostanie ustawiona wartość wyłączona, stanie się ona nieaktywna i nie będzie już można jej przypisać. Wszyscy poprzedni przypisani nadal będą mieć rolę aplikacji dołączona do swoich tokenów, ale nie ma ona wpływu, ponieważ nie jest już aktywnie przypisywana.

Przypisywanie właściciela aplikacji

Jeśli jeszcze tego nie zrobiono, musisz przypisać siebie jako właściciela aplikacji.

  1. W rejestracji aplikacji w obszarze Zarządzanie wybierz pozycję Właściciele i Dodaj właścicieli.
  2. W nowym oknie znajdź i wybierz właścicieli, które chcesz przypisać do aplikacji. Wybrani właściciele są wyświetlani w prawym panelu. Po zakończeniu potwierdź polecenie Wybierz. Właściciele aplikacji będą teraz wyświetlani na liście właściciela.

Uwaga

Upewnij się, że zarówno aplikacja interfejsu API, jak i aplikacja, którą chcesz dodać, aby mieć właściciela, w przeciwnym razie interfejs API nie będzie wyświetlany podczas żądania uprawnień interfejsu API.

Przypisywanie ról aplikacji do aplikacji

Po dodaniu ról aplikacji w aplikacji możesz przypisać rolę aplikacji do aplikacji klienckiej przy użyciu centrum administracyjnego firmy Microsoft Entra lub programowo przy użyciu programu Microsoft Graph. Nie należy tego mylić z przypisywaniem ról do użytkowników.

Podczas przypisywania ról aplikacji do aplikacji tworzone są uprawnienia aplikacji. Uprawnienia aplikacji są zwykle używane przez aplikacje demona lub usługi zaplecza, które muszą uwierzytelniać i wykonywać autoryzowane wywołania interfejsu API jako samych siebie bez interakcji użytkownika.

Aby przypisać role aplikacji do aplikacji przy użyciu centrum administracyjnego firmy Microsoft Entra:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej Administracja istrator aplikacji w chmurze.
  2. Przejdź do pozycji Aplikacje tożsamości>> Rejestracje aplikacji a następnie wybierz pozycję Wszystkie aplikacje.
  3. Wybierz pozycję Wszystkie aplikacje, aby wyświetlić listę wszystkich aplikacji. Jeśli aplikacja nie jest wyświetlana na liście, użyj filtrów w górnej części listy Wszystkie aplikacje, aby ograniczyć listę, lub przewiń listę w dół, aby znaleźć aplikację.
  4. Wybierz aplikację, do której chcesz przypisać rolę aplikacji.
  5. Wybierz przycisk Uprawnienia API>Dodaj uprawnienie.
  6. Wybierz kartę Moje interfejsy API, a następnie wybierz aplikację, dla której zdefiniowano role aplikacji.
  7. W obszarze Uprawnienia wybierz role, które chcesz przypisać.
  8. Wybierz przycisk Dodaj uprawnienia uzupełnij role.

Nowo dodane role powinny być wyświetlane w okienku uprawnień interfejsu API rejestracji aplikacji.

Ponieważ są to uprawnienia aplikacji, a nie uprawnienia delegowane, administrator musi wyrazić zgodę na używanie ról aplikacji przypisanych do aplikacji.

  1. W okienku uprawnień interfejsu API rejestracji aplikacji wybierz pozycję Udziel zgody administratora dla <nazwy> dzierżawy.
  2. Po wyświetleniu monitu o wyrażenie zgody na żądane uprawnienia wybierz pozycję Tak .

Kolumna Stan powinna odzwierciedlać, że zgoda została udzielona dla <nazwy> dzierżawy.

Scenariusz użycia ról aplikacji

Jeśli wdrażasz logikę biznesową roli aplikacji, która loguje użytkowników w scenariuszu aplikacji, najpierw zdefiniuj role aplikacji w Rejestracje aplikacji. Następnie administrator przypisuje je do użytkowników i grup w okienku Aplikacje dla przedsiębiorstw. Te przypisane role aplikacji są dołączane do dowolnego tokenu wystawionego dla aplikacji.

Jeśli implementujesz logikę biznesową roli aplikacji w scenariuszu w interfejsie API wywoływania aplikacji, masz dwie rejestracje aplikacji. Jedna rejestracja aplikacji dotyczy aplikacji, a druga rejestracja aplikacji dotyczy interfejsu API. W takim przypadku zdefiniuj role aplikacji i przypisz je do użytkownika lub grupy w rejestracji aplikacji interfejsu API. Gdy użytkownik uwierzytelnia się w aplikacji i żąda tokenu dostępu w celu wywołania interfejsu API, oświadczenie dla ról jest zawarte w tokenie. Następnym krokiem jest dodanie kodu do internetowego interfejsu API w celu sprawdzenia, czy te role są wywoływane przez interfejs API.

Aby dowiedzieć się, jak dodać autoryzację do internetowego interfejsu API, zobacz Chroniony internetowy interfejs API: Weryfikowanie zakresów i ról aplikacji.

Role aplikacji a grupy

Chociaż możesz użyć ról aplikacji lub grup do autoryzacji, kluczowe różnice między nimi mogą mieć wpływ na to, które zdecydujesz się użyć w danym scenariuszu.

Role aplikacji Grupy
Są one specyficzne dla aplikacji i są zdefiniowane w rejestracji aplikacji. Przenoszą się z aplikacją. Nie są one specyficzne dla aplikacji, ale dzierżawy firmy Microsoft Entra.
Role aplikacji są usuwane po usunięciu rejestracji aplikacji. Grupy pozostają nienaruszone, nawet jeśli aplikacja zostanie usunięta.
Podane w oświadczeniu roles . Podane w groups oświadczeniu.

Deweloperzy mogą używać ról aplikacji do kontrolowania, czy użytkownik może logować się do aplikacji lub czy aplikacja może uzyskać token dostępu dla internetowego interfejsu API. Aby rozszerzyć tę kontrolę zabezpieczeń na grupy, deweloperzy i administratorzy mogą również przypisywać grupy zabezpieczeń do ról aplikacji.

Role aplikacji są preferowane przez deweloperów, gdy chcą samodzielnie opisać i kontrolować parametry autoryzacji w swojej aplikacji. Na przykład aplikacja używająca grup autoryzacji spowoduje przerwanie w następnej dzierżawie, ponieważ zarówno identyfikator grupy, jak i nazwa mogą być inne. Aplikacja korzystająca z ról aplikacji pozostaje bezpieczna. W rzeczywistości przypisywanie grup do ról aplikacji jest popularne w aplikacjach SaaS z tych samych powodów, co umożliwia aprowizowanie aplikacji SaaS w wielu dzierżawach.

Przypisywanie użytkowników i grup do ról firmy Microsoft Entra

Po dodaniu ról aplikacji w aplikacji możesz przypisać użytkowników i grupy do ról firmy Microsoft Entra. Przypisywanie użytkowników i grup do ról można wykonać za pomocą interfejsu użytkownika portalu lub programowo przy użyciu programu Microsoft Graph. Gdy użytkownicy przypisani do różnych ról logują się do aplikacji, ich tokeny będą miały przypisane role w oświadczeniu roles .

Aby przypisać użytkowników i grupy do ról przy użyciu centrum administracyjnego firmy Microsoft Entra:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej Administracja istrator aplikacji w chmurze.
  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikony Ustawienia w górnym menu, aby przełączyć się do dzierżawy zawierającej rejestrację aplikacji z menu Katalogi i subskrypcje.
  3. Przejdź do aplikacji dla przedsiębiorstw usługi Identity>Applications>.
  4. Wybierz pozycję Wszystkie aplikacje, aby wyświetlić listę wszystkich aplikacji. Jeśli aplikacja nie jest wyświetlana na liście, użyj filtrów w górnej części listy Wszystkie aplikacje, aby ograniczyć listę, lub przewiń listę w dół, aby znaleźć aplikację.
  5. Wybierz aplikację, w której chcesz przypisać użytkowników lub grupę zabezpieczeń do ról.
  6. W obszarze Zarządzanie wybierz pozycję Użytkownicy i grupy.
  7. Wybierz pozycję Dodaj użytkownika, aby otworzyć okienko Dodawanie przypisania.
  8. Wybierz selektor Użytkownicy i grupy w okienku Dodawanie przypisania. Zostanie wyświetlona lista użytkowników i grup zabezpieczeń. Możesz wyszukać określonego użytkownika lub określoną grupę i wybrać wielu użytkowników i wiele grup z listy.
  9. Po wybraniu użytkowników i grup wybierz przycisk Wybierz, aby kontynuować.
  10. Wybierz pozycję Wybierz rolę w okienku Dodawanie przypisania. Zostaną wyświetlone wszystkie role zdefiniowane dla aplikacji.
  11. Wybierz rolę i wybierz przycisk Wybierz.
  12. Wybierz przycisk Przypisz, aby zakończyć przypisywanie użytkowników i grup do aplikacji.

Upewnij się, że dodani użytkownicy i grupy są wyświetlane na liście Użytkownicy i grupy .

Następne kroki

Dowiedz się więcej o rolach aplikacji z następującymi zasobami.