Udostępnij za pośrednictwem


Skonfiguruj niestandardowego dostawcę roszczeń dla zdarzenia wystawiania tokenu

W tym artykule opisano sposób konfigurowania niestandardowego dostawcy żądań dla wydarzenia rozpoczęcia wystawiania tokenu. Korzystając z istniejącego interfejsu API REST Azure Functions, zarejestrujesz niestandardowe rozszerzenie uwierzytelniania i dodasz atrybuty, które oczekujesz, że zostaną przeanalizowane z tego interfejsu API REST. Aby przetestować niestandardowe rozszerzenie uwierzytelniania, zarejestrujesz przykładową aplikację OpenID Connect, aby uzyskać token i wyświetlić oświadczenia.

Wymagania wstępne

Krok 1. Rejestrowanie niestandardowego rozszerzenia uwierzytelniania

Teraz skonfigurujesz niestandardowe rozszerzenie uwierzytelniania, które będzie używane przez identyfikator Entra firmy Microsoft do wywoływania funkcji platformy Azure. Niestandardowe rozszerzenie uwierzytelniania zawiera informacje o punkcie końcowym REST API, oświadczeniach, które analizuje z tego REST API, oraz o sposobie, w jaki można się uwierzytelnić w tym REST API. Wykonaj następujące kroki, aby zarejestrować niestandardowe rozszerzenie uwierzytelniania w aplikacji Azure Functions.

Uwaga

Można mieć maksymalnie 100 niestandardowych zasad rozszerzenia.

Rejestrowanie niestandardowego rozszerzenia uwierzytelniania

  1. Zaloguj się do witryny Azure Portal jako co najmniej administrator aplikacji i administrator uwierzytelniania.
  2. Wyszukaj i wybierz pozycję Microsoft Entra ID i wybierz pozycję Aplikacje dla przedsiębiorstw.
  3. Wybierz pozycję Niestandardowe rozszerzenia uwierzytelniania, a następnie wybierz pozycję Utwórz rozszerzenie niestandardowe.
  4. W obszarze Podstawy wybierz typ zdarzenia TokenIssuanceStart i wybierz pozycję Dalej.
  5. W Konfiguracji punktu końcowego wypełnij następujące właściwości:
    • Nazwa — nazwa niestandardowego rozszerzenia uwierzytelniania. Na przykład wydarzenie wystawienia tokenu.
    • Docelowy adres URL - Adres URL funkcji platformy Azure. Przejdź do strony Przegląd swojej aplikacji Azure Function, a następnie wybierz utworzoną funkcję. Na stronie Przegląd funkcji wybierz pozycję Pobierz adres URL funkcji i użyj ikony kopiowania, aby skopiować customauthenticationextension_extension (klucz systemowy) URL.
    • Opis — opis niestandardowych rozszerzeń uwierzytelniania.
  6. Wybierz Dalej.
  7. W sekcji Uwierzytelnianie interfejsu API wybierz opcję Utwórz nową rejestrację aplikacji, aby utworzyć rejestrację aplikacji reprezentującą Twoją aplikację funkcji.
  8. Nadaj aplikacji nazwę, na przykład interfejs API zdarzeń uwierzytelniania Azure Functions.
  9. Wybierz Dalej.
  10. W obszarze Oświadczenia wprowadź atrybuty, które oczekujesz, że niestandardowe rozszerzenie uwierzytelniania będzie analizowane z interfejsu API REST i zostanie scalone z tokenem. Dodaj następujące oświadczenia:
    • Data urodzenia
    • Role niestandardowe
    • ApiVersion
    • Identyfikator korelacji
  11. Wybierz pozycję Dalej, a następnie utwórz, co spowoduje zarejestrowanie niestandardowego rozszerzenia uwierzytelniania i skojarzonej rejestracji aplikacji.
  12. Zanotuj Identyfikator aplikacji w sekcji Uwierzytelnianie API, który jest wymagany do konfiguracji uwierzytelniania funkcji platformy Azure w aplikacji funkcji platformy Azure.

Po utworzeniu niestandardowego rozszerzenia uwierzytelniania należy udzielić uprawnień do interfejsu API. Rozszerzenie uwierzytelniania niestandardowego używa client_credentials, aby uwierzytelnić się w aplikacji funkcji Azure, korzystając z uprawnienia Receive custom authentication extension HTTP requests.

  1. Otwórz stronę Podgląd dla nowego niestandardowego rozszerzenia uwierzytelniania. Zanotuj identyfikator aplikacji w obszarze Uwierzytelnianie interfejsu API, ponieważ będzie on potrzebny podczas dodawania dostawcy tożsamości.

  2. W obszarze Uwierzytelnianie interfejsu API wybierz pozycję Udziel uprawnień.

  3. Nowe okno zostanie otwarte, a po zalogowaniu się poprosi o uprawnienia do odbierania niestandardowych żądań HTTP rozszerzenia uwierzytelniania. Dzięki temu rozszerzenie uwierzytelniania niestandardowego może uwierzytelniać się za pośrednictwem interfejsu API. Wybierz pozycję Zaakceptuj.

    Zrzut ekranu przedstawiający sposób udzielania zgody administratora.

Krok 2. Konfigurowanie aplikacji OpenID Connect w celu odbierania wzbogaconych tokenów

Aby uzyskać token i przetestować niestandardowe rozszerzenie uwierzytelniania, możesz użyć https://jwt.ms aplikacji. Jest to aplikacja internetowa należąca do firmy Microsoft, która wyświetla zdekodowana zawartość tokenu (zawartość tokenu nigdy nie opuszcza przeglądarki).

2.1 Rejestrowanie testowej aplikacji internetowej

Wykonaj następujące kroki, aby zarejestrować aplikację internetową jwt.ms :

  1. Na stronie głównej w witrynie Azure Portal wybierz pozycję Microsoft Entra ID.

  2. Wybierz pozycję Rejestracje aplikacji> Nowa rejestracja.

  3. Wprowadź nazwę aplikacji. Na przykład Moja aplikacja testowa.

  4. W obszarze Obsługiwane typy kont wybierz opcję Konta tylko w tym katalogu organizacyjnym.

  5. Na liście rozwijanej Wybierz platformę w polu Identyfikator URI przekierowania wybierz pozycję Sieć Web , a następnie wprowadź w https://jwt.ms polu tekstowym Adres URL.

  6. Wybierz pozycję Zarejestruj, aby ukończyć rejestrację aplikacji.

    Zrzut ekranu przedstawiający, jak wybrać obsługiwany typ konta i URI przekierowania.

  7. Na stronie Przegląd rejestracji aplikacji skopiuj identyfikator aplikacji (klienta). Identyfikator aplikacji jest nazywany {App_to_enrich_ID} w kolejnych krokach. W Microsoft Graph jest ona odniesiona przez właściwość appId.

    Zrzut ekranu przedstawiający sposób kopiowania identyfikatora aplikacji.

2.2 Włączanie przepływu niejawnego

Aplikacja testowa jwt.ms korzysta z implicitnego przepływu. Włącz niejawny przepływ w rejestracji Moja Aplikacja Testowa.

Ważny

Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Przepływ uwierzytelniania używany do testowania w tej procedurze wymaga bardzo wysokiego poziomu zaufania w aplikacji i niesie ze sobą ryzyko, które nie występują w innych przepływach. Takie podejście nie powinno być używane do uwierzytelniania użytkowników w aplikacjach produkcyjnych (dowiedz się więcej).

  1. W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
  2. W obszarze Niejawne udzielanie uprawnień i przepływy hybrydowe zaznacz pole wyboru Tokeny ID (używane dla przepływów niejawnych i hybrydowych).
  3. Wybierz pozycję Zapisz.

2.3 Włączanie aplikacji do polityki mapowania roszczeń

Zasady mapowania oświadczeń są wykorzystywane do wyboru atrybutów, które są zwracane przez niestandardowe rozszerzenie uwierzytelniania i mapowane na token. Aby umożliwić zwiększanie tokenów, należy jednoznacznie włączyć rejestrację aplikacji w celu akceptowania zmapowanych roszczeń.

  1. W rejestracji aplikacji Mój test, pod Zarządzanie, wybierz pozycję Manifest.
  2. W manifeście znajdź acceptMappedClaims atrybut i ustaw wartość na true.
  3. Ustaw opcję requestedAccessTokenVersion na 2.
  4. Wybierz Zapisz, aby zapisać zmiany.

Poniższy fragment kodu JSON przedstawia sposób konfigurowania tych właściwości.

{
	"id": "22222222-0000-0000-0000-000000000000",
	"acceptMappedClaims": true,
	"requestedAccessTokenVersion": 2,  
    ...
}

Ostrzeżenie

Nie należy ustawiać właściwości acceptMappedClaims na true dla aplikacji wielodostępnych, co umożliwia złośliwym użytkownikom tworzenie polityk mapowania oświadczeń dla aplikacji. Zamiast tego skonfiguruj niestandardowy klucz podpisywania.

Przejdź do następnego kroku Przydziel niestandardowego dostawcę oświadczeń do aplikacji.

Krok 3: Przypisz niestandardowego dostawcę oświadczeń do swojej aplikacji

Aby wystawiać tokeny z informacjami napływającymi z niestandardowego rozszerzenia uwierzytelniania, musisz przypisać aplikacji niestandardowego dostawcę oświadczeń. Jest to oparte na odbiorcy tokenu, więc dostawca musi być przypisany do aplikacji klienckiej, aby odbierać żądania w tokenie identyfikatora, oraz do aplikacji zasobów w celu odbierania żądań w tokenie dostępu. Niestandardowy dostawca oświadczeń opiera się na niestandardowym rozszerzeniu uwierzytelniania, który został skonfigurowany z odbiornikiem zdarzeń rozpoczęcia wystawiania tokenu. Możesz wybrać, czy wszystkie oświadczenia, czy tylko ich część od niestandardowego dostawcy, są mapowane na token.

Uwaga

Można utworzyć tylko 250 unikatowych zadań pomiędzy aplikacjami a rozszerzeniami niestandardowymi. Jeśli chcesz zastosować to samo wywołanie rozszerzenia niestandardowego do wielu aplikacji, zalecamy w tym celu użycie interfejsu API Microsoft Graph authenticationEventListeners do utworzenia odbiorników dla tych aplikacji. Nie jest to obsługiwane w witrynie Azure Portal.

Wykonaj następujące kroki, aby połączyć aplikację My Test z niestandardowym rozszerzeniem uwierzytelniania:

Aby przypisać niestandardowe rozszerzenie uwierzytelniania jako źródło niestandardowego dostawcy oświadczeń;

  1. Na stronie głównej w witrynie Azure Portal wybierz pozycję Microsoft Entra ID.

  2. Wybierz pozycjęAplikacje dla przedsiębiorstw, a następnie w obszarze Zarządzaj wybierz pozycję Wszystkie aplikacje. Znajdź i wybierz pozycję Moja aplikacja testowa z listy.

  3. Na stronie Przegląd aplikacji Moja aplikacja testowa przejdź do pozycji Zarządzaj i wybierz pozycję Logowanie jednokrotne.

  4. W obszarze Atrybuty i oświadczenia wybierz pozycję Edytuj.

    Zrzut ekranu przedstawiający sposób konfigurowania oświadczeń aplikacji.

  5. Rozwiń menu Ustawienia zaawansowane.

  6. Obok Dostawca oświadczeń niestandardowych wybierz Konfiguruj.

  7. Rozwiń listę rozwijaną dostawcę oświadczeń niestandardowych, a następnie wybierz wcześniej utworzone zdarzenie wystawiania tokenu.

  8. Wybierz pozycję Zapisz.

Następnie przyporządkuj atrybuty z niestandardowego dostawcy roszczeń, które powinny zostać uwzględnione w tokenie jako roszczenia.

  1. Wybierz pozycję Dodaj nowe oświadczenie , aby dodać nowe oświadczenie. Podaj nazwę oświadczenia, które chcesz wydać, na przykład DateOfBirth.

  2. W obszarze Źródło wybierz pozycję Atrybut i wybierz pozycję customClaimsProvider.DateOfBirth z listy rozwijanej Atrybut źródłowy .

    Zrzut ekranu przedstawiający sposób dodawania mapowania atrybutów do aplikacji.

  3. Wybierz pozycję Zapisz.

  4. Powtórz ten proces, aby dodać atrybuty customClaimsProvider.customRoles, customClaimsProvider.apiVersion i customClaimsProvider.correlationId, oraz odpowiednią nazwę. Dobrym pomysłem jest dopasowanie nazwy oświadczenia do nazwy atrybutu.

Krok 4. Ochrona funkcji platformy Azure

Rozszerzenie niestandardowego uwierzytelniania Microsoft Entra używa przepływu serwer-serwer do uzyskania tokenu dostępu, który jest wysyłany w nagłówku HTTP Authorization do funkcji Azure. Podczas publikowania funkcji na platformie Azure, zwłaszcza w środowisku produkcyjnym, należy zweryfikować token wysłany w nagłówku autoryzacji.

Aby chronić funkcję Azure, wykonaj następujące kroki w celu zintegrowania uwierzytelniania Microsoft Entra, co pozwoli na weryfikację przychodzących tokenów za pomocą rejestracji w aplikacji Azure Functions authentication events API. Wybierz jedną z następujących zakładek na podstawie typu dzierżawy.

Uwaga

Jeśli aplikacja funkcji platformy Azure jest hostowana w innej dzierżawie platformy Azure niż dzierżawa, w której zarejestrowano niestandardowe rozszerzenie uwierzytelniania, wybierz kartę Open ID Connect.

4.1 Korzystanie z dostawcy tożsamości Microsoft Entra

Wykonaj poniższe kroki, aby dodać firmę Microsoft Entra jako dostawcę tożsamości do aplikacji funkcji platformy Azure.

  1. W witrynie Azure Portal znajdź i wybierz wcześniej opublikowaną aplikację funkcji.

  2. W obszarze Ustawienia wybierz pozycję Uwierzytelnianie.

  3. Wybierz Dodaj dostawcę tożsamości.

  4. Wybierz pozycję Microsoft jako dostawcę tożsamości.

  5. Wybierz Workforce jako typ dzierżawy.

  6. W obszarze Rejestracja aplikacji wybierz Wybierz istniejącą rejestrację aplikacji w tym katalogu dla typu rejestracji aplikacji, a następnie wybierz rejestrację aplikacji Azure Functions authentication events API, którą utworzyłeś wcześniej, podczas rejestrowania niestandardowego dostawcy oświadczeń.

  7. Wprowadź następujący adres URL wystawcy, https://login.microsoftonline.com/{tenantId}/v2.0, gdzie {tenantId} jest identyfikatorem najemcy dla twojego zespołu.

  8. W obszarze Wymaganie aplikacji klienckiej wybierz pozycję Zezwalaj na żądania z określonych aplikacji klienckich i wprowadź wartość 99045fe1-7639-4a75-9d4a-577b6ca3810f.

  9. Pod Wymagania najemcy, wybierz Zezwalaj na żądania od określonych dzierżawców i wprowadź identyfikator dzierżawcy Twojej firmy/organizacji.

  10. W obszarze Żądania nieuwierzytelnione wybierz pozycję HTTP 401 Niezautoryzowany dla dostawcy tożsamości.

  11. Usuń zaznaczenie opcji Magazyn tokenów.

  12. Wybierz pozycję Dodaj , aby dodać uwierzytelnianie do funkcji platformy Azure.

    Zrzut ekranu przedstawiający sposób dodawania uwierzytelniania do aplikacji funkcjonalnej w tenantcie roboczym.

4.2 Używanie dostawcy tożsamości OpenID Connect

Jeśli skonfigurowano dostawcę tożsamości firmy Microsoft, pomiń ten krok. W przeciwnym razie, jeśli funkcja platformy Azure jest hostowana w innej dzierżawie niż ta, w której zarejestrowano Twoje niestandardowe rozszerzenie uwierzytelniania, wykonaj następujące kroki, aby ochronić funkcję:

Tworzenie wpisu tajnego klienta

  1. Na stronie głównej witryny Azure Portal wybierz pozycję Microsoft Entra ID> Rejestracje aplikacji.
  2. Wybierz aplikację rejestracji interfejsu API zdarzeń uwierzytelniania usługi Azure Functionsutworzoną wcześniej.
  3. Wybierz Certyfikaty i sekrety>Sekrety klienta>Nowy sekret klienta.
  4. Wybierz wygaśnięcie wpisu tajnego lub określ okres istnienia niestandardowego, dodaj opis i wybierz pozycję Dodaj.
  5. Zapisz wartość wpisu tajnego do użycia w kodzie aplikacji klienckiej. Po opuszczeniu tej strony wartość klucza tajnego nie jest nigdy wyświetlana ponowna.

Dodaj dostawcę tożsamości OpenID Connect do aplikacji funkcji platformy Azure.

  1. Znajdź i wybierz wcześniej opublikowaną aplikację funkcyjną.

  2. W obszarze Ustawienia wybierz pozycję Uwierzytelnianie.

  3. Wybierz pozycję Dodaj dostawcę tożsamości.

  4. Wybierz pozycję OpenID Connect jako dostawcę tożsamości.

  5. Podaj nazwę, taką jak Contoso Microsoft Entra ID.

  6. W obszarze wpisu metadanych wprowadź następujący adres URL jako adres URL dokumentu. Zastąp element identyfikatorem {tenantId} dzierżawy firmy Microsoft Entra.

    https://login.microsoftonline.com/{tenantId}/v2.0/.well-known/openid-configuration
    
  7. W sekcji Rejestracje aplikacji wprowadź identyfikator aplikacji (identyfikator klienta) rejestracji aplikacji API zdarzeń uwierzytelniania Azure Functions, którą utworzyłeś wcześniej.

  8. Wróć do funkcji platformy Azure w obszarze Rejestracja aplikacji wprowadź klucz tajny klienta.

  9. Usuń zaznaczenie opcji Token store.

  10. Wybierz pozycję Dodaj , aby dodać dostawcę tożsamości OpenID Connect.

Krok 5. Testowanie aplikacji

Aby przetestować niestandardowego dostawcę oświadczeń, wykonaj następujące kroki:

  1. Otwórz nową prywatną przeglądarkę i przejdź do podanego adresu URL, aby się zalogować.

    https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize?client_id={App_to_enrich_ID}&response_type=id_token&redirect_uri=https://jwt.ms&scope=openid&state=12345&nonce=12345
    
  2. Zastąp {tenantId} identyfikatorem dzierżawcy, nazwą dzierżawcy lub jedną ze zweryfikowanych nazw domen. Na przykład contoso.onmicrosoft.com.

  3. Zastąp element {App_to_enrich_ID} identyfikatorem klienta aplikacji Moja aplikacja testowa.

  4. Po zalogowaniu zostanie wyświetlony Twój odszyfrowany token w miejscu https://jwt.ms. Sprawdź, czy oświadczenia z funkcji platformy Azure są prezentowane w zdekodowanym tokenie, na przykład DateOfBirth.

Zobacz też