Samouczek: przypisywanie ról niestandardowych za pomocą funkcji i programu Microsoft Graph (wersja zapoznawcza)
W tym artykule pokazano, jak za pomocą funkcji wysyłać zapytania do programu Microsoft Graph i przypisywać role niestandardowe do użytkownika na podstawie członkostwa w grupie Entra ID.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Wdrażanie statycznej aplikacji internetowej.
- Utwórz rejestrację aplikacji Entra firmy Microsoft.
- Konfigurowanie uwierzytelniania niestandardowego przy użyciu identyfikatora Entra firmy Microsoft.
- Skonfiguruj funkcję bezserwerową, która wysyła zapytanie do członkostwa w grupie Entra ID użytkownika i zwraca listę ról niestandardowych.
Uwaga
Ten samouczek wymaga użycia funkcji do przypisywania ról. Zarządzanie rolami opartymi na funkcjach jest obecnie dostępne w wersji zapoznawczej. Poziom uprawnień wymagany do ukończenia tego samouczka to "User.Read.All".
W interfejsie API aplikacji istnieje funkcja o nazwie GetRoles . Ta funkcja używa tokenu dostępu użytkownika do wykonywania zapytania o identyfikator entra z programu Microsoft Graph. Jeśli użytkownik jest członkiem dowolnych grup zdefiniowanych w aplikacji, odpowiednie role niestandardowe są mapowane na użytkownika.
Wymagania wstępne
Wymaganie | Komentarze |
---|---|
Aktywne konto platformy Azure | Jeśli go nie masz, możesz bezpłatnie utworzyć konto. |
Uprawnienia Microsoft Entra | Aby utworzyć aplikację Firmy Microsoft Entra, musisz mieć wystarczające uprawnienia. |
Tworzenie repozytorium GitHub
Wygeneruj repozytorium na podstawie szablonu funkcji ról. Przejdź do następującej lokalizacji, aby utworzyć nowe repozytorium.
Nadaj repozytorium nazwę my-custom-roles-app.
Wybierz pozycję Utwórz repozytorium na podstawie szablonu.
Wdrażanie statycznej aplikacji internetowej na platformie Azure
W nowym oknie przeglądarki otwórz witrynę Azure Portal.
W lewym górnym rogu wybierz pozycję Utwórz zasób.
W polu wyszukiwania wpisz statyczne aplikacje internetowe.
Wybierz pozycję Azure Static Web Apps.
Wybierz pozycję Utwórz.
Skonfiguruj statyczną aplikację internetową przy użyciu następujących informacji:
Ustawienie Wartość Uwagi Subskrypcja Wybierz subskrypcję platformy Azure. Resource group Utwórz nową grupę o nazwie my-custom-roles-app-group. Nazwisko my-custom-roles-app Typ planu Standardowa Dostosowywanie uwierzytelniania i przypisywanie ról przy użyciu funkcji wymaga planu standardowego. Region dla interfejsu API Wybierz region znajdujący się najbliżej Ciebie. W sekcji Szczegóły wdrożenia:
Ustawienie Wartość Lokalizacja źródłowa Wybierz pozycję GitHub. Organizacja Wybierz organizację, w której wygenerowano repozytorium. Repozytorium Wybierz pozycję my-custom-roles-app. Oddział Wybierz pozycję main. W sekcji Szczegóły kompilacji dodaj szczegóły konfiguracji dla tej aplikacji.
Ustawienie Wartość Uwagi Ustawienia wstępne kompilacji Wybierz Niestandardowy. Lokalizacja aplikacji Wprowadź /fronton. Ten folder zawiera aplikację frontonu. Lokalizacja interfejsu API /Api Folder w repozytorium zawierający funkcje interfejsu API. Lokalizacja wyjściowa Pozostaw to pole puste. Ta aplikacja nie ma danych wyjściowych kompilacji. Wybierz pozycję Przejrzyj i utwórz.
Wybierz pozycję Utwórz zainicjuj pierwsze wdrożenie.
Po zakończeniu procesu wybierz pozycję Przejdź do zasobu , aby otworzyć nową statyczną aplikację internetową.
W sekcji przeglądu znajdź adres URL aplikacji. Skopiuj tę wartość do edytora tekstów, aby użyć w kolejnych krokach w celu skonfigurowania uwierzytelniania Entra.
Tworzenie aplikacji Firmy Microsoft Entra
W witrynie Azure Portal wyszukaj i przejdź do pozycji Microsoft Entra ID.
Z menu Zarządzaj wybierz pozycję Rejestracje aplikacji.
Wybierz pozycję Nowa rejestracja , aby otworzyć okno Rejestrowanie aplikacji . Wprowadź następujące wartości:
Ustawienie Wartość Uwagi Nazwisko Wprowadź wartość MyStaticWebApp. Obsługiwane typy kont Wybierz pozycję Konta tylko w tym katalogu organizacyjnym. Adres URI przekierowania Wybierz pozycję Sieć Web i wprowadź adres URL wywołania zwrotnego uwierzytelniania firmy Microsoft dla statycznej aplikacji internetowej. Zastąp <YOUR_SITE_URL>
element adresem<YOUR_SITE_URL>/.auth/login/aad/callback
URL statycznej aplikacji internetowej.Ten adres URL jest skopiowany do edytora tekstów we wcześniejszym kroku. Wybierz pozycję Zarejestruj.
Po utworzeniu rejestracji aplikacji skopiuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy) w sekcji Podstawy do edytora tekstów.
Te wartości są potrzebne do skonfigurowania uwierzytelniania identyfikatora Entra w statycznej aplikacji internetowej.
Włączanie tokenów identyfikatorów
W ustawieniach rejestracji aplikacji wybierz pozycję Uwierzytelnianie w obszarze Zarządzanie.
W sekcji Niejawne udzielanie i przepływy hybrydowe wybierz pozycję Tokeny identyfikatorów (używane w przypadku przepływów niejawnych i hybrydowych).
Środowisko uruchomieniowe Static Web Apps wymaga tej konfiguracji do uwierzytelniania użytkowników.
Wybierz pozycję Zapisz.
Tworzenie wpisu tajnego klienta
W ustawieniach rejestracji aplikacji wybierz pozycję Certyfikaty i wpisy tajne w obszarze Zarządzaj.
W sekcji Klucze tajne klienta wybierz pozycję Nowy klucz tajny klienta.
W polu Opis wprowadź wartość MyStaticWebApp.
W polu Wygasa pozostaw wartość domyślną 6 miesięcy.
Uwaga
Musisz obrócić wpis tajny przed datą wygaśnięcia, generując nowy wpis tajny i aktualizując aplikację przy użyciu jej wartości.
Wybierz Dodaj.
Skopiuj wartość wpisu tajnego klienta utworzonego do edytora tekstów.
Ta wartość jest potrzebna do skonfigurowania uwierzytelniania identyfikatora Entra w statycznej aplikacji internetowej.
Konfigurowanie uwierzytelniania identyfikatora entra
W przeglądarce otwórz repozytorium GitHub zawierające wdrożona statyczną aplikację internetową.
Przejdź do pliku konfiguracji aplikacji w frontonie/staticwebapp.config.json. Ten plik zawiera następującą sekcję:
"auth": { "rolesSource": "/api/GetRoles", "identityProviders": { "azureActiveDirectory": { "userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", "registration": { "openIdIssuer": "https://login.microsoftonline.com/<YOUR_ENTRA_TENANT_ID>", "clientIdSettingName": "ENTRA_CLIENT_ID", "clientSecretSettingName": "ENTRA_CLIENT_SECRET" }, "login": { "loginParameters": [ "resource=https://graph.microsoft.com" ] } } } },
Ta konfiguracja składa się z następujących ustawień:
Właściwości opis rolesSource
Adres URL, w którym proces logowania pobiera listę dostępnych ról. W przypadku przykładowej aplikacji adres URL to /api/GetRoles
.userDetailsClaim
Adres URL schematu używanego do weryfikowania żądania logowania. openIdIssuer
Trasa logowania firmy Microsoft Entra dołączona przy użyciu identyfikatora dzierżawy. clientIdSettingName
Identyfikator klienta entra firmy Microsoft. clientSecretSettingName
Wartość wpisu tajnego klienta Entra firmy Microsoft. loginParameters
Aby uzyskać token dostępu dla programu Microsoft Graph, loginParameters
należy skonfigurować pole za pomocąresource=https://graph.microsoft.com
polecenia .Wybierz pozycję Edytuj , aby zaktualizować plik.
Zaktualizuj wartość openIdIssuer wartości
https://login.microsoftonline.com/<YOUR_ENTRA_TENANT_ID>
, zastępując<YOUR_ENTRA_TENANT_ID>
ciąg identyfikatorem katalogu (dzierżawy) identyfikatora entra firmy Microsoft.Wybierz pozycję Zatwierdź zmiany....
Wprowadź komunikat zatwierdzenia i wybierz pozycję Zatwierdź zmiany.
Zatwierdzanie tych zmian inicjuje uruchomienie funkcji GitHub Actions w celu zaktualizowania statycznej aplikacji internetowej.
Przejdź do zasobu statycznej aplikacji internetowej w witrynie Azure Portal.
Wybierz pozycję Konfiguracja na pasku menu.
W sekcji Ustawienia aplikacji dodaj następujące ustawienia:
Nazwa/nazwisko Wartość ENTRA_CLIENT_ID
Identyfikator aplikacji Entra ID (klienta). ENTRA_CLIENT_SECRET
Wartość wpisu tajnego klienta aplikacji Entra. Wybierz pozycję Zapisz.
Tworzenie ról
Otwórz rejestrację aplikacji Entra ID w witrynie Azure Portal.
W obszarze Zarządzanie wybierz pozycję Role aplikacji.
Wybierz pozycję Utwórz rolę aplikacji i wprowadź następujące wartości:
Ustawienie Wartość Display name Wprowadź wartość admin. Dozwolone typy składowych Wybierz pozycję Użytkownicy/grupy. Wartość Wprowadź wartość admin. opis Wprowadź wartość Administrator. Zaznacz pole wyboru Czy chcesz włączyć tę rolę aplikacji?
Wybierz Zastosuj.
Teraz powtórz ten sam proces dla roli o nazwie reader.
Skopiuj wartości identyfikatorów dla każdej roli i ustaw je na bok w edytorze tekstów.
Weryfikowanie ról niestandardowych
Przykładowa aplikacja zawiera funkcję interfejsu API (api/GetRoles/index.js), która wysyła zapytanie do programu Microsoft Graph w celu określenia, czy użytkownik znajduje się w wstępnie zdefiniowanej grupie.
Na podstawie członkostwa w grupach użytkownika funkcja przypisuje do użytkownika role niestandardowe. Aplikacja jest skonfigurowana do ograniczania określonych tras na podstawie tych ról niestandardowych.
W repozytorium GitHub przejdź do funkcji GetRoles znajdującej się w lokalizacji api/GetRoles/index.js.
W górnej części znajduje się
roleGroupMappings
obiekt, który mapuje niestandardowe role użytkowników na grupy Firmy Microsoft Entra.Zaznacz Edytuj.
Zaktualizuj obiekt przy użyciu identyfikatorów grup z dzierżawy firmy Microsoft Entra.
Jeśli na przykład masz grupy z identyfikatorami
6b0b2fff-53e9-4cff-914f-dd97a13bfbd6
ib6059db5-9cef-4b27-9434-bb793aa31805
, zaktualizujesz obiekt na:const roleGroupMappings = { 'admin': '6b0b2fff-53e9-4cff-914f-dd97a13bfbd6', 'reader': 'b6059db5-9cef-4b27-9434-bb793aa31805' };
Funkcja GetRoles jest wywoływana za każdym razem, gdy użytkownik zostanie pomyślnie uwierzytelniony przy użyciu identyfikatora Entra firmy Microsoft. Funkcja używa tokenu dostępu użytkownika do wykonywania zapytań dotyczących członkostwa w grupie Entra z programu Microsoft Graph. Jeśli użytkownik jest członkiem dowolnych grup zdefiniowanych w
roleGroupMappings
obiekcie, zwracane są odpowiednie role niestandardowe.W powyższym przykładzie, jeśli użytkownik jest członkiem grupy Entra ID o identyfikatorze
b6059db5-9cef-4b27-9434-bb793aa31805
reader
, otrzymuje rolę.Wybierz pozycję Zatwierdź zmiany....
Dodaj komunikat zatwierdzenia i wybierz pozycję Zatwierdź zmiany.
Wprowadzenie tych zmian inicjuje kompilację w celu zaktualizowania statycznej aplikacji internetowej.
Po zakończeniu wdrażania możesz zweryfikować zmiany, przechodząc do adresu URL aplikacji.
Zaloguj się do statycznej aplikacji internetowej przy użyciu identyfikatora Entra firmy Microsoft.
Po zalogowaniu przykładowa aplikacja wyświetla listę ról przypisanych na podstawie członkostwa w grupie Entra ID tożsamości.
W zależności od tych ról użytkownik może uzyskać dostęp do niektórych tras w aplikacji lub jest zabroniony.
Uwaga
Niektóre zapytania względem programu Microsoft Graph zwracają wiele stron danych. Jeśli jest wymagane więcej niż jedno żądanie zapytania, program Microsoft Graph zwraca @odata.nextLink
właściwość w odpowiedzi zawierającej adres URL do następnej strony wyników. Aby uzyskać więcej informacji, zobacz stronicowanie danych programu Microsoft Graph w aplikacji
Czyszczenie zasobów
Wyczyść wdrożone zasoby, usuwając grupę zasobów.
W witrynie Azure Portal wybierz pozycję Grupa zasobów z menu po lewej stronie.
Wprowadź nazwę grupy zasobów w polu Filtruj według nazwy.
Wybierz nazwę grupy zasobów używaną w tym samouczku.
Wybierz pozycję Usuń grupę zasobów z górnego menu.