Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Usługa Azure Static Web Apps zapewnia usprawnione środowisko uwierzytelniania, w którym do uwierzytelniania nie jest wymagana żadna dodatkowa konfiguracja. Wszystkie funkcje wymienione w tym artykule są dostępne we wszystkich planach usługi Static Web Apps.
W tym artykule dowiesz się więcej o zachowaniu domyślnym, sposobie konfigurowania logowania i wylogowania, sposobie blokowania dostawcy uwierzytelniania i nie tylko. Aby odczytać szczegóły uwierzytelniania dla określonego użycia, zobacz Uzyskiwanie dostępu do informacji o użytkowniku.
Możesz zarejestrować dostawcę niestandardowego, który wyłącza wszystkich wstępnie skonfigurowanych dostawców.
Ostrzeżenie
Ze względu na zmiany w zasadach interfejsu API X (dawniej Twitter) obsługa nie jest dostępna jako część wstępnie skonfigurowanych dostawców aplikacji. Jeśli chcesz nadal używać języka X (dawniej Twitter) do uwierzytelniania/autoryzacji w aplikacji, zaktualizuj konfigurację aplikacji, aby zarejestrować dostawcę niestandardowego.
Wymagania wstępne
Należy pamiętać o następujących wartościach domyślnych i zasobach na potrzeby uwierzytelniania i autoryzacji w usłudze Azure Static Web Apps.
Ustawienia domyślne:
- Każdy użytkownik może uwierzytelnić się za pomocą wstępnie skonfigurowanego dostawcy
- GitHub
- Microsoft Entra ID
- Aby ograniczyć dostawcę uwierzytelniania, zablokuj dostęp za pomocą niestandardowej reguły trasy
- Po zalogowaniu
anonymous
użytkownicy należą do ról i .authenticated
Aby uzyskać więcej informacji na temat ról, zobacz Zarządzanie rolami
Zasoby:
- Definiowanie reguł w pliku staticwebapp.config.json dla autoryzowanych użytkowników w celu uzyskania dostępu do tras z ograniczeniami
- Przypisywanie ról niestandardowych użytkowników przy użyciu wbudowanego systemu zaproszeń
- Programowe przypisywanie ról niestandardowych użytkowników podczas logowania przy użyciu funkcji interfejsu API
- Zrozumienie, że uwierzytelnianie i autoryzacja znacząco nakładają się na pojęcia dotyczące routingu, które zostały szczegółowo opisane w przewodniku konfiguracji aplikacji
- Ogranicz logowanie do określonej dzierżawy identyfikatora entra firmy Microsoft, konfigurując niestandardowego dostawcę identyfikatora entra firmy Microsoft. Wstępnie skonfigurowany dostawca identyfikatorów Entra firmy Microsoft umożliwia logowanie się na dowolnym koncie Microsoft.
Konfigurowanie logowania
Usługa Azure Static Web Apps używa folderu systemowego /.auth
do zapewnienia dostępu do interfejsów API związanych z autoryzacją. Zamiast uwidaczniać dowolne trasy w /.auth
folderze bezpośrednio dla użytkowników końcowych, utwórz reguły routingu dla przyjaznych adresów URL.
Skorzystaj z poniższej tabeli, aby znaleźć trasę specyficzną dla dostawcy.
Dostawca autoryzacji | Trasa logowania |
---|---|
Microsoft Entra ID | /.auth/login/aad |
GitHub | /.auth/login/github |
Aby na przykład zalogować się przy użyciu usługi GitHub, możesz użyć adresu URL podobnego do poniższego przykładu.
<a href="/.auth/login/github">Login</a>
Jeśli zdecydujesz się obsługiwać więcej niż jednego dostawcę, użyj linku specyficznego dla dostawcy dla każdego dostawcy w witrynie internetowej. Użyj reguły trasy, aby zamapować domyślnego dostawcę na przyjazną trasę, na przykład /login.
{
"route": "/login",
"redirect": "/.auth/login/github"
}
Konfigurowanie przekierowania po zalogowaniu
Po zalogowaniu można zwrócić użytkownika do określonej strony, podając w pełni kwalifikowany adres URL w parametrze post_login_redirect_uri
ciągu zapytania.
<a href="/.auth/login/github?post_login_redirect_uri=https://zealous-water.azurestaticapps.net/success">Login</a>
You can also redirect unauthenticated users back to the referring page after they sign in. To add this redirect, create a response override rule that sets post_login_redirect_uri
to .referrer
, like in the following example.
{
"responseOverrides": {
"401": {
"redirect": "/.auth/login/github?post_login_redirect_uri=.referrer",
"statusCode": 302
}
}
}
Konfigurowanie wylogowywanie
Trasa /.auth/logout
powoduje wylogowanie użytkowników z witryny internetowej. Możesz dodać link do nawigacji witryny, aby umożliwić użytkownikowi wylogowanie się, tak jak w poniższym przykładzie.
<a href="/.auth/logout">Log out</a>
Użyj reguły trasy, aby zamapować przyjazną trasę, na przykład /logout.
{
"route": "/logout",
"redirect": "/.auth/logout"
}
Konfigurowanie przekierowania po wylogowaniach
Aby zwrócić użytkownika do określonej strony po wylogowaniu się, podaj adres URL w post_logout_redirect_uri
parametrze ciągu zapytania.
Blokowanie dostawcy uwierzytelniania
Domyślnie wszyscy dostawcy uwierzytelniania są włączeni, ale możesz ograniczyć aplikację do korzystania z dostawcy. Na przykład aplikacja może chcieć używać tylko dostawców, którzy uwidaczniają adresy e-mail.
Aby zablokować dostawcę, utwórz regułę 404
trasy, aby zwrócić kod stanu żądań do zablokowanej trasy specyficznej dla dostawcy. Aby na przykład ograniczyć dostawcę identyfikatora entra (dawniej Azure Active Directory, znanego jako "aad"), dodaj następującą regułę trasy.
{
"route": "/.auth/login/aad",
"statusCode": 404
}
Usuwanie danych osobowych
Gdy wyrażasz zgodę na aplikację jako użytkownik końcowy, aplikacja ma dostęp do adresu e-mail lub nazwy użytkownika w zależności od dostawcy tożsamości. Po podaniu tych informacji właściciel aplikacji może zdecydować, jak zarządzać danymi osobowymi.
Użytkownicy końcowi muszą skontaktować się z administratorami poszczególnych aplikacji internetowych, aby odwołać te informacje z ich systemów.
Aby usunąć dane osobowe z platformy Azure Static Web Apps i uniemożliwić platformie dostarczanie tych informacji na temat przyszłych żądań, prześlij żądanie przy użyciu następującego adresu URL:
https://identity.azurestaticapps.net/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>
To prevent the platform from providing this information on future requests to individual apps, submit a request using the following URL:
https://<WEB_APP_DOMAIN_NAME>/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>
If you're using Microsoft Entra ID, use aad
as the value for the <AUTHENTICATION_PROVIDER_NAME>
placeholder.
Tip
For information about general restrictions and limitations, see Quotas.