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 w 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órej udzielono użytkownikowi lub jednostce usługi, co może 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:
Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji w chmurze.
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.
Przejdź do pozycji Aplikacje tożsamości>> Rejestracje aplikacji a następnie wybierz aplikację, w której chcesz zdefiniować role aplikacji.
W obszarze zarządzanie wybierz pozycję Role aplikacji, a następnie wybierz pozycję Utwórz rolę aplikacji.
W okienku Tworzenie roli aplikacji wprowadź ustawienia roli. W poniższej tabeli opisano każde ustawienie i ich parametry.
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ępneapplications
dla 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 Wybierz pozycję Zastosuj, aby zapisać zmiany.
Gdy rola aplikacji jest ustawiona na Włączone, wszyscy użytkownicy, aplikacje lub grupy, którym przypisano, mają rolę aplikacji dołączoną 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 zachowują rolę aplikacji uwzględniona w tokenach, ale nie ma ona wpływu, ponieważ nie jest już aktywnie przypisywana.
Przypisywanie właściciela aplikacji
Zanim będzie można przypisać role aplikacji do aplikacji, musisz przypisać siebie jako właściciela aplikacji.
- W rejestracji aplikacji w obszarze Zarządzanie wybierz pozycję Właściciele i Dodaj właścicieli.
- 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 upewnij się, że na liście właściciela zostanie wyświetlona wartość Wybierz i właścicieli aplikacji.
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żna przypisać rolę aplikacji do aplikacji klienckiej przy użyciu centrum administracyjnego firmy Microsoft Entra lub programowo przy użyciu programu Microsoft Graph. Przypisywanie roli aplikacji do aplikacji nie powinno być mylone 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:
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji w chmurze.
- Przejdź do pozycji Aplikacje tożsamości>> Rejestracje aplikacji a następnie wybierz pozycję Wszystkie aplikacje.
- 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ę.
- Wybierz aplikację, do której chcesz przypisać rolę aplikacji.
- Wybierz przycisk Uprawnienia API>Dodaj uprawnienie.
- Wybierz kartę Moje interfejsy API, a następnie wybierz aplikację, dla której zdefiniowano role aplikacji.
- W obszarze Uprawnienie wybierz role, które chcesz przypisać.
- Wybierz przycisk Dodaj uprawnienia, aby ukończyć dodawanie ról.
Nowo dodane role powinny być wyświetlane w okienku uprawnień interfejsu API rejestracji aplikacji.
Wyrażanie zgody administratora
Ponieważ są to uprawnienia aplikacji, a nie uprawnienia delegowane, administrator musi wyrazić zgodę na używanie ról aplikacji przypisanych do aplikacji.
- W okienku uprawnień interfejsu API rejestracji aplikacji wybierz pozycję Udziel zgody administratora dla <nazwy> dzierżawy.
- 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. W zależności od scenariusza te przypisane role aplikacji są uwzględniane w różnych tokenach wystawionych dla aplikacji. Na przykład w przypadku aplikacji, która loguje użytkowników, oświadczenia ról są uwzględniane w tokenie identyfikatora. Gdy aplikacja wywołuje interfejs API, oświadczenia ról są uwzględniane w tokenie dostępu.
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.
Deweloperzy wolą używać ról aplikacji, gdy chcą 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 aplikacje SaaS często przypisują grupy do ról aplikacji z tych samych powodów, co umożliwia aprowizację 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żna przypisywać 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 mają przypisane role w oświadczeniu roles
.
Aby przypisać użytkowników i grupy do ról przy użyciu centrum administracyjnego firmy Microsoft Entra:
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji w chmurze.
- 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.
- Przejdź do aplikacji dla przedsiębiorstw usługi Identity>Applications>.
- 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ę.
- Wybierz aplikację, w której chcesz przypisać użytkowników lub grupę zabezpieczeń do ról.
- W obszarze Zarządzanie wybierz pozycję Użytkownicy i grupy.
- Wybierz pozycję Dodaj użytkownika, aby otworzyć okienko Dodawanie przypisania.
- 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. Wybierz przycisk Wybierz, aby kontynuować.
- Wybierz pozycję Wybierz rolę w okienku Dodawanie przypisania. Zostaną wyświetlone wszystkie role zdefiniowane dla aplikacji.
- Wybierz rolę i wybierz przycisk Wybierz.
- 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.
- Przykłady kodu w usłudze GitHub
- Dokumentacja referencyjna
- Wideo: Implementowanie autoryzacji w aplikacjach przy użyciu Platforma tożsamości Microsoft (1:01:15)