Udostępnij za pośrednictwem


Zabezpieczanie interfejsu API przy użyciu łącznika interfejsu API w przepływach użytkowników samoobsługi Tożsamość zewnętrzna Microsoft Entra rejestracji

Dotyczy:Zielony okrąg z białym symbolem znacznika wyboru.Dzierżawcy siły roboczej — dzierżawcy zewnętrzni Biały okrąg z szarym symbolem X. (dowiedz się więcej)

Podczas integrowania interfejsu API REST w Tożsamość zewnętrzna Microsoft Entra samoobsługowego przepływu użytkownika rejestracji należy chronić punkt końcowy interfejsu API REST przy użyciu uwierzytelniania. Uwierzytelnianie interfejsu API REST zapewnia, że tylko usługi, które mają odpowiednie poświadczenia, takie jak Microsoft Entra ID, mogą wykonywać wywołania punktu końcowego. W tym artykule opisano sposób zabezpieczania interfejsu API REST.

Wymagania wstępne

Wykonaj kroki opisane w przewodniku: Dodawanie łącznika interfejsu API do przewodnika przepływu użytkownika rejestracji.

Punkt końcowy interfejsu API można chronić przy użyciu uwierzytelniania podstawowego HTTP lub uwierzytelniania certyfikatu klienta HTTPS. W obu przypadkach należy podać poświadczenia używane przez identyfikator entra firmy Microsoft podczas wywoływania punktu końcowego interfejsu API. Punkt końcowy interfejsu API sprawdza następnie poświadczenia i podejmuje decyzje dotyczące autoryzacji.

Uwierzytelnianie podstawowe HTTP

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

Uwierzytelnianie podstawowe HTTP jest definiowane w dokumencie RFC 2617. Uwierzytelnianie podstawowe działa w następujący sposób: Identyfikator Entra firmy Microsoft wysyła żądanie HTTP z poświadczeniami klienta (username i password) w nagłówku Authorization . Poświadczenia są formatowane jako ciąg username:passwordzakodowany w formacie base64. Następnie interfejs API jest odpowiedzialny za sprawdzenie tych wartości w celu wykonania innych decyzji dotyczących autoryzacji.

Aby skonfigurować Połączenie interfejsu API przy użyciu uwierzytelniania podstawowego PROTOKOŁU HTTP, wykonaj następujące kroki:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako użytkownik Administracja istrator.
  2. Przejdź do sekcji Identity External Identities>Overview (Przegląd tożsamości>zewnętrznych).
  3. Wybierz pozycję Wszystkie łączniki interfejsu API, a następnie wybierz Połączenie interfejsu API, który chcesz skonfigurować.
  4. W polu Typ uwierzytelniania wybierz pozycję Podstawowa.
  5. Podaj nazwę użytkownika i hasło punktu końcowego interfejsu API REST. Zrzut ekranu przedstawiający podstawową konfigurację uwierzytelniania łącznika interfejsu API.
  6. Wybierz pozycję Zapisz.

Uwierzytelnianie certyfikatu klienta HTTPS

Uwierzytelnianie certyfikatu klienta to wzajemne uwierzytelnianie oparte na certyfikatach, w którym klient, Microsoft Entra ID, dostarcza certyfikat klienta do serwera w celu potwierdzenia tożsamości. Dzieje się tak w ramach uzgadniania PROTOKOŁU SSL. Twój interfejs API jest odpowiedzialny za weryfikowanie certyfikatów należy do prawidłowego klienta, takiego jak Microsoft Entra ID, i podejmowanie decyzji dotyczących autoryzacji. Certyfikat klienta jest certyfikatem cyfrowym X.509.

Ważne

W środowiskach produkcyjnych certyfikat musi być podpisany przez urząd certyfikacji.

Tworzenie certyfikatu

Aby utworzyć certyfikat, możesz użyć usługi Azure Key Vault, która ma opcje certyfikatów z podpisem własnym i integracji z dostawcami wystawców certyfikatów dla podpisanych certyfikatów. Zalecane ustawienia obejmują:

  • Temat: CN=<yourapiname>.<tenantname>.onmicrosoft.com
  • Typ zawartości: PKCS #12
  • Typ aktuona okresu istnienia: Email all contacts at a given percentage lifetime lub Email all contacts a given number of days before expiry
  • Typ klucza: RSA
  • Rozmiar klucza: 2048
  • Klucz prywatny możliwy do wyeksportowania: Yes (aby można było wyeksportować .pfx plik)

Następnie można wyeksportować certyfikat.

Opcja 2. Przygotowanie certyfikatu z podpisem własnym przy użyciu programu PowerShell

Jeśli nie masz jeszcze certyfikatu, możesz użyć certyfikatu z podpisem własnym. Certyfikat z podpisem własnym jest certyfikatem zabezpieczeń, który nie jest podpisany przez urząd certyfikacji i nie zapewnia gwarancji bezpieczeństwa certyfikatu podpisanego przez urząd certyfikacji.

W systemie Windows użyj polecenia cmdlet New-SelfSignedCertificate w programie PowerShell, aby wygenerować certyfikat.

  1. Uruchom następujące polecenie programu PowerShell, aby wygenerować certyfikat z podpisem własnym. Zmodyfikuj -Subject argument odpowiednio dla aplikacji i nazwy dzierżawy usługi Azure AD B2C, na przykład contosowebapp.contoso.onmicrosoft.com. Możesz również dostosować -NotAfter datę, aby określić inne wygaśnięcie certyfikatu.

    New-SelfSignedCertificate `
        -KeyExportPolicy Exportable `
        -Subject "CN=yourappname.yourtenant.onmicrosoft.com" `
        -KeyAlgorithm RSA `
        -KeyLength 2048 `
        -KeyUsage DigitalSignature `
        -NotAfter (Get-Date).AddMonths(12) `
        -CertStoreLocation "Cert:\CurrentUser\My"
    
  2. Na komputerze z systemem Windows wyszukaj i wybierz pozycję Zarządzaj certyfikatami użytkowników

  3. W obszarze Certyfikaty — bieżący użytkownik wybierz pozycję Certyfikaty>osobiste>yourappname.yourtenant.onmicrosoft.com.

  4. Wybierz certyfikat, a następnie wybierz pozycję Akcja>Wszystkie zadania>eksportu.

  5. Wybierz pozycję Dalej>Tak, wyeksportuj klucz>prywatny Dalej.

  6. Zaakceptuj wartości domyślne formatu pliku eksportu, a następnie wybierz przycisk Dalej.

  7. Włącz opcję Hasło , wprowadź hasło dla certyfikatu, a następnie wybierz pozycję Dalej.

  8. Aby określić lokalizację do zapisania certyfikatu, wybierz pozycję Przeglądaj i przejdź do wybranego katalogu.

  9. W oknie Zapisz jako wprowadź nazwę pliku, a następnie wybierz pozycję Zapisz.

  10. Wybierz pozycje Next>Finish (Dalej, Zakończ).

Aby usługa Azure AD B2C akceptowała hasło pliku pfx, należy zaszyfrować hasło przy użyciu opcji TripleDES-SHA1 w narzędziu eksportu magazynu certyfikatów systemu Windows, w przeciwieństwie do AES256-SHA256.

Konfigurowanie Połączenie or interfejsu API

Aby skonfigurować Połączenie interfejsu API przy użyciu uwierzytelniania certyfikatu klienta, wykonaj następujące kroki:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako użytkownik Administracja istrator.
  2. Przejdź do sekcji Identity External Identities>Overview (Przegląd tożsamości>zewnętrznych).
  3. Wybierz pozycję Wszystkie łączniki interfejsu API, a następnie wybierz Połączenie interfejsu API, który chcesz skonfigurować.
  4. W polu Typ uwierzytelniania wybierz pozycję Certyfikat.
  5. W polu Przekaż certyfikat wybierz plik pfx certyfikatu z kluczem prywatnym.
  6. W polu Wprowadź hasło wpisz hasło certyfikatu. Zrzut ekranu przedstawiający konfigurację uwierzytelniania certyfikatu dla łącznika interfejsu API.
  7. Wybierz pozycję Zapisz.

Podejmowanie decyzji dotyczących autoryzacji

Aby chronić punkty końcowe interfejsu API, interfejs API musi zaimplementować autoryzację opartą na wysłanych certyfikatach klienta. Aby uzyskać informacje na temat usługi aplikacja systemu Azure i usługi Azure Functions, zobacz konfigurowanie wzajemnego uwierzytelniania TLS, aby dowiedzieć się, jak włączyć i zweryfikować certyfikat z poziomu kodu interfejsu API. Alternatywnie możesz użyć usługi Azure API Management jako warstwy przed dowolną usługą interfejsu API, aby sprawdzić właściwości certyfikatu klienta pod kątem żądanych wartości.

Odnawianie certyfikatów

Zaleca się ustawienie alertów przypomnienia dla czasu wygaśnięcia certyfikatu. Musisz wygenerować nowy certyfikat i powtórzyć powyższe kroki, gdy używane certyfikaty wkrótce wygaśnie. Aby "przerzucić" użycie nowego certyfikatu, usługa interfejsu API może nadal akceptować stare i nowe certyfikaty przez tymczasowy czas wdrażania nowego certyfikatu.

Aby przekazać nowy certyfikat do istniejącego łącznika interfejsu API, wybierz łącznik interfejsu API w obszarze Łączniki interfejsu API i wybierz pozycję Przekaż nowy certyfikat. Ostatnio przekazany certyfikat, który nie wygasł i którego data rozpoczęcia została przekazana, zostanie automatycznie użyty przez identyfikator Entra firmy Microsoft.

Zrzut ekranu przedstawiający nowy certyfikat, gdy już istnieje.

Uwierzytelnianie klucza interfejsu API

Niektóre usługi używają mechanizmu "Klucz interfejsu API", aby zaciemnić dostęp do punktów końcowych HTTP podczas programowania, wymagając od obiektu wywołującego uwzględnienia unikatowego klucza jako nagłówka HTTP lub parametru zapytania HTTP. W przypadku usługi Azure Functions można to zrobić, włączając code parametr jako zapytanie w adresie URL punktu końcowego łącznika interfejsu API. Na przykład https://contoso.azurewebsites.net/api/endpoint?code=0123456789).

Nie jest to mechanizm, który powinien być używany samodzielnie w środowisku produkcyjnym. W związku z tym konfiguracja uwierzytelniania podstawowego lub certyfikatu jest zawsze wymagana. Jeśli nie chcesz implementować żadnej metody uwierzytelniania (niezalecane) na potrzeby programowania, możesz wybrać opcję "podstawowe" uwierzytelnianie w konfiguracji łącznika interfejsu API i użyć wartości tymczasowych i usernamepassword że interfejs API może zignorować podczas implementowania odpowiedniej autoryzacji.

Następne kroki

  • Rozpocznij pracę z naszymi przykładami z przewodnika Szybki start.