Dodaj role aplikacji do swojej aplikacji i odbieraj je 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 (RBAC) oraz oświadczeń ról, deweloperzy mogą bezpiecznie wymuszać autoryzację w swoich aplikacjach przy mniejszym nakładzie pracy.
Innym podejściem jest użycie grup Microsoft Entra i oświadczeń grupowych, jak pokazano w przykładzie kodu active-directory-aspnetcore-webapp-openidconnect-v2 na GitHubie. 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 podmiot usługi do grupy, a następnie przypiszesz rolę aplikacji do tej grupy, Microsoft Entra ID nie dodaje oświadczenia roles
do tokenów, które wydaje.
Role aplikacji są deklarowane przy użyciu interfejsu użytkownika ról aplikacji w centrum administracyjnym firmy Microsoft Entra:
Liczba dodanych ról dotyczy limitów manifestu aplikacji, które są egzekwowane przez Microsoft Entra ID. Aby uzyskać informacje na temat tych limitów, zobacz sekcję Limity manifestu manifestu firmy Microsoft Entra.
Interfejs użytkownika ról aplikacji
Aby utworzyć rolę aplikacji przy użyciu interfejsu centrum administracyjnego 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 + subskrypcje.
Przejdź do Tożsamość>Aplikacje>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 w kontekstach zgody administratora i przypisywania aplikacji. Ta wartość może zawierać spacje. Survey Writer
Dozwolone typy członków Określa, czy tę rolę aplikacji można przypisać do użytkowników, aplikacji, czy obu tych ról.
Jeśli są dostępne dla, role aplikacji są wyświetlane jako uprawnienia aplikacji w sekcji Zarządzaj rejestracji aplikacjiUprawnienia interfejsu API Dodaj uprawnienie Moje interfejsy API Wybierz interfejs API Uprawnienia aplikacji. Users/Groups
Wartość Określa wartość żądania ról, którą 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świetlanej podczas przypisywania aplikacji przez administratora oraz w doświadczeniach 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 identyfikacyjne, gdy aplikacja loguje użytkownika.
Gdy rola aplikacji zostanie ustawiona na Wyłączone, stanie się nieaktywna i nie będzie już można jej przypisać. Jednak aktualne przypisania ról aplikacji do użytkowników, grup i aplikacji pozostaną bez zmian, a rola aplikacji nadal będzie przekazywać tokeny. Usuń rolę aplikacji z użytkownika, grupy lub aplikacji, aby upewnić się, że rola aplikacji jest również usuwana z tokenów.
Przypisz 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ściciela(-ów), którego(-ych) chcesz przypisać do aplikacji. Wybrani właściciele są wyświetlani w prawym panelu. Po zakończeniu potwierdź, klikając Wybierz, a właściciele aplikacji pojawią się na liście właścicieli.
Uwaga
Upewnij się, że zarówno aplikacja interfejsu API, jak i aplikacja, do której chcesz dodać uprawnienia, mają właściciela, w przeciwnym razie interfejs API nie będzie wyświetlany podczas żądania uprawnień API.
Przypisywanie ról aplikacji aplikacjom
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 tworzysz uprawnienia aplikacji. Uprawnienia aplikacji są zwykle używane przez aplikacje demona lub usługi zaplecza, które muszą uwierzytelniać i wykonywać autoryzowane żądania 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
Tożsamość Aplikacje 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 panelu uprawnień API w rejestracji aplikacji wybierz Udziel zgody administratora dla <nazwy dzierżawy>.
- Po wyświetleniu monitu o wyrażenie zgody na żądane uprawnienia wybierz pozycję Tak .
Kolumna Status powinna odzwierciedlać, że zgoda została udzielona dla najemcy o nazwie <>.
Scenariusz zastosowania ról w aplikacji
Jeśli wdrażasz logikę biznesową związaną z rolami w aplikacji, która uwzględnia logowanie użytkowników w określonym scenariuszu, najpierw zdefiniuj role aplikacji w Rejestracjach 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 ID. Gdy aplikacja wywołuje interfejs API, oświadczenia ról są uwzględniane w tokenie dostępu.
Jeśli implementujesz logikę roli aplikacji w scenariuszu, gdy aplikacja wywołuje API, 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 do wywołania interfejsu API, atrybut ról jest zawarty 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ę za pomocą aplikacji. | Nie są one specyficzne dla aplikacji, ale dla przydziału Microsoft Entra. |
Role aplikacji są usuwane, gdy usunięta zostaje rejestracja aplikacji. | Grupy pozostają nienaruszone, nawet jeśli aplikacja zostanie usunięta. |
Podane w roszczeniu roles . |
Podane w groups żądaniu. |
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 do autoryzacji będzie nie działać poprawnie w innym środowisku, ponieważ zarówno identyfikator grupy, jak i nazwa mogą się różnić. 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 pozwala na udostępnienie aplikacji SaaS w wielu dzierżawach.
Przypisywanie użytkowników i grup do ról Microsoft Entra
Po dodaniu ról aplikacji do swojej aplikacji możesz przypisywać użytkowników i grupy do ról 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, w ich tokenach znajdują się przypisane role w ramach roszczenia 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 w menu Katalogi + subskrypcje.
- Przejdź do Identity>Applications>Enterprise 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 opcję 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)