Uwierzytelnianie niestandardowe w usłudze Azure Static Web Apps

Usługa Azure Static Web Apps udostępnia uwierzytelnianie zarządzane korzystające z rejestracji dostawców zarządzanych przez platformę Azure. Aby umożliwić większą elastyczność rejestracji, możesz zastąpić wartości domyślne rejestracją niestandardową.

  • Uwierzytelnianie niestandardowe umożliwia również konfigurowanie dostawców niestandardowych obsługujących Połączenie OpenID. Ta konfiguracja umożliwia rejestrację wielu dostawców zewnętrznych.

  • Użycie dowolnych rejestracji niestandardowych powoduje wyłączenie wszystkich wstępnie skonfigurowanych dostawców.

Uwaga

Uwierzytelnianie niestandardowe jest dostępne tylko w planie Usługi Azure Static Web Apps w warstwie Standardowa.

Konfigurowanie niestandardowego dostawcy tożsamości

Niestandardowi dostawcy tożsamości są skonfigurowani w auth sekcji pliku konfiguracji.

Aby uniknąć umieszczania wpisów tajnych w kontroli źródła, konfiguracja analizuje ustawienia aplikacji pod kątem pasującej nazwy w pliku konfiguracji. Możesz również przechowywać wpisy tajne w usłudze Azure Key Vault.

Aby utworzyć rejestrację, zacznij od utworzenia następujących ustawień aplikacji:

Nazwa ustawienia Wartość
AZURE_CLIENT_ID Identyfikator aplikacji (klienta) dla rejestracji aplikacji Entra firmy Microsoft.
AZURE_CLIENT_SECRET Wpis tajny klienta rejestracji aplikacji Microsoft Entra.

Następnie użyj poniższego przykładu, aby skonfigurować dostawcę w pliku konfiguracji.

Dostawcy firmy Microsoft Entra są dostępni w dwóch różnych wersjach. Wersja 1 jawnie definiuje element userDetailsClaim, który umożliwia ładunkowi zwracanie informacji o użytkowniku. Z kolei wersja 2 domyślnie zwraca informacje o użytkowniku i jest wyznaczona przez v2.0 adres openIdIssuer URL.

Microsoft Entra w wersji 1

{
  "auth": {
    "identityProviders": {
      "azureActiveDirectory": {
        "userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
        "registration": {
          "openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>",
          "clientIdSettingName": "AZURE_CLIENT_ID",
          "clientSecretSettingName": "AZURE_CLIENT_SECRET"
        }
      }
    }
  }
}

Pamiętaj, aby zastąpić <TENANT_ID> ciąg identyfikatorem dzierżawy firmy Microsoft Entra.

Microsoft Entra w wersji 2

{
  "auth": {
    "identityProviders": {
      "azureActiveDirectory": {
        "registration": {
          "openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>/v2.0",
          "clientIdSettingName": "AZURE_CLIENT_ID",
          "clientSecretSettingName": "AZURE_CLIENT_SECRET"
        }
      }
    }
  }
}

Pamiętaj, aby zastąpić <TENANT_ID> ciąg identyfikatorem dzierżawy firmy Microsoft Entra.

Aby uzyskać więcej informacji na temat konfigurowania identyfikatora entra firmy Microsoft, zobacz dokumentację uwierzytelniania/autoryzacji usługi App Service dotyczącą korzystania z istniejącej rejestracji.

Aby skonfigurować konta, które mogą się zalogować, zobacz Modyfikowanie kont obsługiwanych przez aplikację i Ograniczanie aplikacji Microsoft Entra do zestawu użytkowników w dzierżawie firmy Microsoft Entra.

Uwaga

Podczas gdy sekcja konfiguracji identyfikatora Entra firmy Microsoft to azureActiveDirectory, alias platformy to aad w adresach URL na potrzeby logowania, wylogowywania i przeczyszczania informacji o użytkowniku. Aby uzyskać więcej informacji, zapoznaj się z sekcją uwierzytelniania i autoryzacji .

Wywołania zwrotne uwierzytelniania

Dostawcy tożsamości wymagają adresu URL przekierowania, aby ukończyć żądanie logowania lub wylogowania. Większość dostawców wymaga dodania adresów URL wywołania zwrotnego do listy dozwolonych. Następujące punkty końcowe są dostępne jako miejsca docelowe przekierowania.

Type Wzorzec adresu URL
Logowanie https://<YOUR_SITE>/.auth/login/<PROVIDER_NAME_IN_CONFIG>/callback
Wyloguj https://<YOUR_SITE>/.auth/logout/<PROVIDER_NAME_IN_CONFIG>/callback

Jeśli używasz identyfikatora Entra firmy Microsoft, użyj aad jako wartości symbolu zastępczego <PROVIDER_NAME_IN_CONFIG> .

Uwaga

Te adresy URL są udostępniane przez usługę Azure Static Web Apps, aby otrzymywać odpowiedź od dostawcy uwierzytelniania. Nie trzeba tworzyć stron na tych trasach.

Szczegóły logowania, wylogowania i użytkownika

Aby użyć niestandardowego dostawcy tożsamości, użyj następujących wzorców adresów URL.

Akcja Wzorzec
Logowanie /.auth/login/<PROVIDER_NAME_IN_CONFIG>
Wyloguj /.auth/logout
Szczegóły użytkownika /.auth/me
Przeczyszczanie szczegółów użytkownika /.auth/purge/<PROVIDER_NAME_IN_CONFIG>

Jeśli używasz identyfikatora Entra firmy Microsoft, użyj aad jako wartości symbolu zastępczego <PROVIDER_NAME_IN_CONFIG> .

Zarządzanie rolami

Każdy użytkownik, który uzyskuje dostęp do statycznej aplikacji internetowej, należy do co najmniej jednej roli. Istnieją dwie wbudowane role, do których użytkownicy mogą należeć:

  • anonimowe: wszyscy użytkownicy automatycznie należą do roli anonimowej.
  • uwierzytelnione: wszyscy użytkownicy, którzy są zalogowani, należą do uwierzytelnionej roli.

Poza rolami wbudowanymi można przypisywać role niestandardowe do użytkowników i odwoływać się do nich w pliku staticwebapp.config.json .

Dodawanie użytkownika do roli

Aby dodać użytkownika do roli, wygenerujesz zaproszenia, które umożliwiają kojarzenie użytkowników z określonymi rolami. Role są definiowane i utrzymywane w pliku staticwebapp.config.json .

Tworzenie zaproszenia

Zaproszenia są specyficzne dla poszczególnych dostawców autoryzacji, dlatego należy wziąć pod uwagę potrzeby aplikacji podczas wybierania dostawców do obsługi. Niektórzy dostawcy uwidaczniają adres e-mail użytkownika, a inni tylko podają nazwę użytkownika witryny.

Dostawca autoryzacji Udostępnia
Identyfikator usługi Microsoft Entra Adres e-mail
GitHub nazwa użytkownika
Twitter nazwa użytkownika

Wykonaj następujące kroki, aby utworzyć zaproszenie.

  1. Przejdź do zasobu usługi Static Web Apps w witrynie Azure Portal.
  2. W obszarze Ustawienia wybierz pozycję Zarządzanie rolami.
  3. Wybierz pozycję Zaproś.
  4. Wybierz dostawcę autoryzacji z listy opcji.
  5. Dodaj nazwę użytkownika lub adres e-mail adresata w polu Szczegóły zaproszenia.
    • W przypadku usług GitHub i Twitter wprowadź nazwę użytkownika. Dla wszystkich innych wprowadź adres e-mail odbiorcy.
  6. Wybierz domenę witryny statycznej z menu rozwijanego Domena .
    • Wybrana domena to domena wyświetlana w zaproszeniu. Jeśli masz domenę niestandardową skojarzona z witryną, wybierz domenę niestandardową.
  7. Dodaj rozdzielaną przecinkami listę nazw ról w polu Rola .
  8. Wprowadź maksymalną liczbę godzin, przez które zaproszenie ma pozostać prawidłowe.
    • Maksymalny możliwy limit wynosi 168 godzin, czyli siedem dni.
  9. Wybierz Generuj.
  10. Skopiuj link z pola Link Zaproś.
  11. Wyślij wiadomość e-mail z linkiem do zaproszenia do użytkownika, do którego udzielasz dostępu.

Gdy użytkownik wybierze link w zaproszeniu, zostanie wyświetlony monit o zalogowanie się przy użyciu odpowiedniego konta. Po pomyślnym zalogowaniu użytkownik jest skojarzony z wybranymi rolami.

Uwaga

Upewnij się, że reguły tras nie powodują konfliktu z wybranymi dostawcami uwierzytelniania. Blokowanie dostawcy z regułą trasy uniemożliwia użytkownikom akceptowanie zaproszeń.

Aktualizacja przypisań roli

  1. Przejdź do zasobu usługi Static Web Apps w witrynie Azure Portal.
  2. W obszarze Ustawienia wybierz pozycję Zarządzanie rolami.
  3. Wybierz użytkownika z listy.
  4. Edytuj listę ról w polu Rola .
  5. Wybierz Aktualizuj.

Usuń użytkownika

  1. Przejdź do zasobu usługi Static Web Apps w witrynie Azure Portal.
  2. W obszarze Ustawienia wybierz pozycję Zarządzanie rolami.
  3. Znajdź użytkownika na liście.
  4. Zaznacz pole wyboru w wierszu użytkownika.
  5. Wybierz Usuń.

Podczas usuwania użytkownika należy pamiętać o następujących elementach:

  • Usunięcie użytkownika unieważnia swoje uprawnienia.
  • Propagacja na całym świecie może potrwać kilka minut.
  • Jeśli użytkownik zostanie dodany z powrotem do aplikacji, zmianyuserId.

Następne kroki