Konfigurowanie niestandardowego dostawcy oświadczeń dla zdarzenia wystawiania tokenu

W tym artykule opisano sposób konfigurowania niestandardowego dostawcy oświadczeń dla zdarzenia rozpoczęcia wystawiania tokenu. Korzystając z istniejącego interfejsu API REST usługi Azure Functions, zarejestrujesz niestandardowe rozszerzenie uwierzytelniania i dodasz atrybuty, które będą analizowane z interfejsu API REST. Aby przetestować rozszerzenie uwierzytelniania niestandardowego, zarejestrujesz przykładową aplikację OpenID Połączenie, aby uzyskać token i wyświetlić oświadczenia.

Wymagania wstępne

  • Subskrypcja platformy Azure z możliwością tworzenia usługi Azure Functions. Jeśli nie masz istniejącego konta platformy Azure, utwórz konto bezpłatnej wersji próbnej lub skorzystaj z korzyści z subskrypcji programu Visual Studio podczas tworzenia konta.
  • Aplikacja funkcji platformy Azure z funkcją wyzwalacza HTTP skonfigurowaną dla zdarzenia uruchamiania wystawiania tokenu. Jeśli go nie masz, wykonaj kroki opisane w artykule Tworzenie funkcji wyzwalacza HTTP wyzwalacza HTTP wystawiania tokenu.
  • Podstawowa wiedza na temat pojęć omówionych w artykule Omówienie rozszerzeń uwierzytelniania niestandardowego.
  • Dzierżawa identyfikatora entra firmy Microsoft. W tym przewodniku z instrukcjami możesz użyć dzierżawy klienta lub pracowników.
    • W przypadku dzierżaw zewnętrznych użyj przepływu rejestracji i logowania użytkownika.

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. Rozszerzenie uwierzytelniania niestandardowego zawiera informacje o punkcie końcowym interfejsu API REST, oświadczeniach, które analizuje z interfejsu API REST i sposobie uwierzytelniania w interfejsie API REST. Wykonaj następujące kroki, aby zarejestrować niestandardowe rozszerzenie uwierzytelniania w aplikacji funkcji platformy Azure.

Uwaga

Można mieć maksymalnie 100 niestandardowych zasad rozszerzenia.

Rejestrowanie niestandardowego rozszerzenia uwierzytelniania

  1. Zaloguj się do witryny Azure Portal jako co najmniej Administracja istrator aplikacji i Administracja istrator 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 obszarze Konfiguracja punktu końcowego wypełnij następujące właściwości:
    • Nazwa — nazwa niestandardowego rozszerzenia uwierzytelniania. Na przykład zdarzenie wystawiania tokenu.
    • Docelowy adres URL — adres {Function_Url} URL funkcji platformy Azure. Przejdź do strony Przegląd aplikacji funkcji platformy Azure, a następnie wybierz utworzoną funkcję. Na stronie Przegląd funkcji wybierz pozycję Pobierz adres URL funkcji i użyj ikony kopiowania, aby skopiować adres URL.
    • Opis — opis niestandardowych rozszerzeń uwierzytelniania.
  6. Wybierz Dalej.
  7. W obszarze Uwierzytelnianie interfejsu API wybierz opcję Utwórz nową rejestrację aplikacji, aby utworzyć rejestrację aplikacji reprezentującą aplikację funkcji.
  8. Nadaj aplikacji nazwę, na przykład interfejs API zdarzeń uwierzytelniania usługi 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:
    • dateOfBirth
    • customRoles
    • apiVersion
    • correlationId
  11. Wybierz pozycję Dalej, a następnie utwórz, co spowoduje zarejestrowanie niestandardowego rozszerzenia uwierzytelniania i skojarzonej rejestracji aplikacji.
  12. Zanotuj identyfikator aplikacji w obszarze Uwierzytelnianie interfejsu API, który jest wymagany do ustawiania zmiennych środowiskowych w aplikacji funkcji platformy Azure.

Po utworzeniu niestandardowego rozszerzenia uwierzytelniania należy udzielić uprawnień do interfejsu API. Rozszerzenie uwierzytelniania niestandardowego używa client_credentials polecenia do uwierzytelniania w aplikacji funkcji platformy Receive custom authentication extension HTTP requests Azure przy użyciu uprawnienia.

  1. Otwórz stronę Przegląd 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. Zostanie otwarte nowe okno, a po zalogowaniu żąda uprawnień do odbierania niestandardowych żądań HTTP rozszerzenia uwierzytelniania. Dzięki temu rozszerzenie uwierzytelniania niestandardowego może uwierzytelniać się w interfejsie API. Wybierz pozycję Zaakceptuj.

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

Krok 2. Konfigurowanie aplikacji openID Połączenie do 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 pozycję 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 sposób wybierania obsługiwanego typu konta i identyfikatora URI przekierowania.

  7. Na stronie Przegląd rejestracji aplikacji skopiuj identyfikator aplikacji (klienta). Identyfikator aplikacji jest określany jako w {App_to_enrich_ID} kolejnych krokach. W programie Microsoft Graph odwołuje się do niej 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 niejawnego przepływu. Włącz niejawny przepływ w rejestracji aplikacji Mój test:

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

2.3 Włączanie aplikacji dla zasad mapowania oświadczeń

Zasady mapowania oświadczeń służą do wybierania atrybutów zwracanych z niestandardowego rozszerzenia uwierzytelniania są mapowane na token. Aby umożliwić rozszerzanie tokenów, należy jawnie włączyć rejestrację aplikacji w celu akceptowania zamapowanych oświadczeń:

  1. W obszarze Zarządzanie w obszarze Zarządzanie w obszarze Rejestracja aplikacji Mój test wybierz pozycję Manifest.
  2. W manifeście znajdź acceptMappedClaims atrybut i ustaw wartość na true.
  3. Ustaw opcję accessTokenAcceptedVersion 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,
	"accessTokenAcceptedVersion": 2,  
    ...
}

Ostrzeżenie

Nie należy ustawiać acceptMappedClaimstrue właściwości dla aplikacji wielodostępnych, co umożliwia złośliwym aktorom tworzenie zasad mapowania oświadczeń dla aplikacji. Zamiast tego skonfiguruj niestandardowy klucz podpisywania.

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

Krok 3. Przypisywanie niestandardowego dostawcy oświadczeń do aplikacji

Aby tokeny, które mają być wystawiane z oświadczeniami przychodzącymi z niestandardowego rozszerzenia uwierzytelniania, należy przypisać niestandardowego dostawcę oświadczeń do aplikacji. Jest to oparte na odbiorcach tokenów, więc dostawca musi być przypisany do aplikacji klienckiej, aby odbierać oświadczenia w tokenie identyfikatora, oraz do aplikacji zasobów w celu odbierania oświadczeń w tokenie dostępu. Niestandardowy dostawca oświadczeń opiera się na niestandardowym rozszerzeniu uwierzytelniania skonfigurowanym za pomocą odbiornika zdarzeń uruchamiania wystawiania tokenu. Możesz wybrać, czy wszystkie lub podzestaw oświadczeń, z niestandardowego dostawcy oświadczeń są mapowane na token.

Uwaga

Można tworzyć tylko 250 unikatowych przypisań między aplikacjami i rozszerzeniami niestandardowymi. Jeśli chcesz zastosować to samo wywołanie rozszerzenia niestandardowego do wielu aplikacji, zalecamy użycie interfejsu API programu Microsoft Graph authenticationEventListeners w celu utworzenia odbiorników dla wielu 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 pozycji Dostawca oświadczeń niestandardowych wybierz pozycję Konfiguruj.

  7. Rozwiń listę rozwijaną Dostawca oświadczeń niestandardowych i wybierz utworzone wcześniej zdarzenie wystawiania tokenu.

  8. Wybierz pozycję Zapisz.

Następnie przypisz atrybuty z niestandardowego dostawcy oświadczeń, który powinien zostać wystawiony w tokenie jako oświadczenia:

  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 oświadczeń 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 uwierzytelniania niestandardowego firmy Microsoft używa serwera do przepływu serwera w celu uzyskania tokenu dostępu wysyłanego w nagłówku HTTP Authorization do funkcji platformy 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ę platformy Azure, wykonaj następujące kroki, aby zintegrować uwierzytelnianie firmy Microsoft Entra, aby weryfikować tokeny przychodzące z rejestracją aplikacji interfejsu API zdarzeń uwierzytelniania usługi Azure Functions. Wybierz jedną z następujących kart 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 rozszerzenie uwierzytelniania niestandardowego, wybierz kartę Otwórz identyfikator Połączenie.

4.1 Przy użyciu dostawcy tożsamości firmy 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 pozycję Dodaj dostawcę tożsamości.

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

  5. Wybierz pozycję Pracownicy jako typ dzierżawy.

  6. W obszarze Rejestracja aplikacji wybierz pozycję Wybierz istniejącą rejestrację aplikacji w tym katalogu dla typu rejestracji aplikacji, a następnie wybierz rejestrację aplikacji interfejsu API zdarzeń uwierzytelniania usługi Azure Functions utworzoną 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 dzierżawy pracowników.

  8. W obszarze Żądania nieuwierzytelnione wybierz pozycję HTTP 401 Brak autoryzacji jako dostawca tożsamości.

  9. Usuń zaznaczenie opcji Magazyn tokenów.

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

    Zrzut ekranu przedstawiający sposób dodawania uwierzytelniania do aplikacji funkcji w dzierżawie pracowników.

4.2 Używanie dostawcy tożsamości openID Połączenie

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ż dzierżawa, w której zarejestrowano rozszerzenie uwierzytelniania niestandardowego, wykonaj następujące kroki, aby chronić funkcję:

Tworzenie wpisu tajnego klienta

  1. Na stronie głównej witryny Azure Portal wybierz pozycję Microsoft Entra ID> Rejestracje aplikacji.
  2. Wybierz utworzoną wcześniej rejestrację aplikacji interfejsu API zdarzeń uwierzytelniania usługi Azure Functions.
  3. Wybierz pozycję Certyfikaty i wpisy tajne Klienta Wpisy>tajne> Nowego 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 Połączenie do aplikacji funkcji platformy Azure.

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

  2. W obszarze Ustawienia wybierz pozycję Uwierzytelnianie.

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

  4. Wybierz pozycję OpenID Połączenie jako dostawca tożsamości.

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

  6. W obszarze Wpis Metadane wprowadź następujący adres URL do adresu 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 obszarze Rejestracja aplikacji wprowadź identyfikator aplikacji (identyfikator klienta) utworzonej wcześniej rejestracji aplikacji interfejsu API uwierzytelniania usługi Azure Functions.

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

  9. Usuń zaznaczenie opcji Magazyn tokenów.

  10. Wybierz pozycję Dodaj, aby dodać dostawcę tożsamości openID Połączenie.

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 adresu URL i zaloguj się za pomocą następującego adresu URL.

    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} ciąg identyfikatorem dzierżawy, nazwą dzierżawy 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 dekodowany token pod adresem https://jwt.ms. Sprawdź, czy oświadczenia z funkcji platformy Azure są prezentowane w zdekodowanym tokenie, na przykład dateOfBirth.

Zobacz też