Konfigurowanie uwierzytelniania w przykładowej aplikacji internetowej przy użyciu usługi Azure AD B2C
W tym artykule użyto przykładowej aplikacji internetowej ASP.NET, aby zilustrować sposób dodawania uwierzytelniania usługi Azure Active Directory B2C (Azure AD B2C) do aplikacji internetowych.
Ważne
Przykładowa aplikacja internetowa ASP.NET, do którego odwołuje się ten artykuł, nie może służyć do wywoływania interfejsu API REST, ponieważ zwraca token identyfikatora, a nie token dostępu. Aby zapoznać się z aplikacją internetową, która może wywoływać interfejs API REST, zobacz Zabezpieczanie internetowego interfejsu API utworzonego przy użyciu platformy ASP.NET Core przy użyciu usługi Azure AD B2C.
Omówienie
OpenID Połączenie (OIDC) to protokół uwierzytelniania oparty na protokole OAuth 2.0. Aby bezpiecznie logować użytkowników do aplikacji, możesz użyć funkcji OIDC. Ten przykład aplikacji internetowej korzysta z witryny Microsoft Identity Web. Microsoft Identity Web to zestaw bibliotek ASP.NET Core, które upraszczają dodawanie obsługi uwierzytelniania i autoryzacji do aplikacji internetowych.
Przepływ logowania obejmuje następujące kroki:
- Użytkownicy przechodzą do aplikacji internetowej i wybierają pozycję Zaloguj się.
- Aplikacja inicjuje żądanie uwierzytelniania i przekierowuje użytkowników do usługi Azure AD B2C.
- Użytkownicy zarejestrują się lub zalogują się i zresetuj hasło. Alternatywnie mogą zalogować się przy użyciu konta społecznościowego.
- Po pomyślnym zalogowaniu użytkowników usługa Azure AD B2C zwraca token identyfikatora do aplikacji.
- Aplikacja weryfikuje token identyfikatora, odczytuje oświadczenia i zwraca bezpieczną stronę do użytkowników.
Po wygaśnięciu tokenu identyfikatora lub unieważnieniu sesji aplikacji aplikacja inicjuje nowe żądanie uwierzytelniania i przekierowuje użytkowników do usługi Azure AD B2C. Jeśli sesja logowania jednokrotnego usługi Azure AD B2C jest aktywna, usługa Azure AD B2C wystawia token dostępu bez monitowania użytkowników o ponowne zalogowanie. Jeśli sesja usługi Azure AD B2C wygaśnie lub stanie się nieprawidłowa, użytkownicy będą monitowani o ponowne zalogowanie.
Wyloguj się
Przepływ wylogowania obejmuje następujące kroki:
- W aplikacji użytkownicy wyloguj się.
- Aplikacja czyści obiekty sesji, a biblioteka uwierzytelniania czyści pamięć podręczną tokenów.
- Aplikacja przenosi użytkowników do punktu końcowego wylogowania usługi Azure AD B2C, aby zakończyć sesję usługi Azure AD B2C.
- Użytkownicy są przekierowywani z powrotem do aplikacji.
Wymagania wstępne
Komputer z jedną z następujących funkcji:
- Program Visual Studio 2022 w wersji 17.0 lub nowszej z pakietem roboczym tworzenia aplikacji internetowych i ASP.NET
- Zestaw SDK dla platformy .NET 6.0
Krok 1. Konfigurowanie przepływu użytkownika
Gdy użytkownicy próbują zalogować się do aplikacji, aplikacja uruchamia żądanie uwierzytelniania do punktu końcowego autoryzacji za pośrednictwem przepływu użytkownika. Przepływ użytkownika definiuje i kontroluje środowisko użytkownika. Po zakończeniu przepływu użytkownika usługa Azure AD B2C generuje token, a następnie przekierowuje użytkowników z powrotem do aplikacji.
Jeśli jeszcze tego nie zrobiono, utwórz przepływ użytkownika lub zasady niestandardowe. Powtórz kroki, aby utworzyć trzy oddzielne przepływy użytkownika w następujący sposób:
- Połączony przepływ logowania i rejestracji użytkownika, taki jak
susi
. Ten przepływ użytkownika obsługuje również środowisko Nie pamiętasz hasła . - Przepływ użytkownika do edycji profilu, taki jak
edit_profile
. - Przepływ użytkownika resetowania hasła, taki jak
reset_password
.
Usługa Azure AD B2C poprzedza B2C_1_
nazwę przepływu użytkownika. Na przykład, susi
staje się B2C_1_susi
.
Krok 2. Rejestrowanie aplikacji internetowej
Aby umożliwić aplikacji logowanie się za pomocą usługi Azure AD B2C, zarejestruj aplikację w katalogu usługi Azure AD B2C. Zarejestrowanie aplikacji ustanawia relację zaufania między aplikacją a usługą Azure AD B2C.
Podczas rejestracji aplikacji określisz identyfikator URI przekierowania. Identyfikator URI przekierowania to punkt końcowy, do którego użytkownicy są przekierowywani przez usługę Azure AD B2C po uwierzytelnieniu w usłudze Azure AD B2C. Proces rejestracji aplikacji generuje identyfikator aplikacji, znany również jako identyfikator klienta, który jednoznacznie identyfikuje twoją aplikację. Po zarejestrowaniu aplikacji usługa Azure AD B2C używa zarówno identyfikatora aplikacji, jak i identyfikatora URI przekierowania do tworzenia żądań uwierzytelniania.
Aby utworzyć rejestrację aplikacji internetowej, wykonaj następujące kroki:
Zaloguj się w witrynie Azure Portal.
Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.
W witrynie Azure Portal wyszukaj i wybierz pozycję Azure AD B2C.
Wybierz pozycję Rejestracje aplikacji, a następnie wybierz pozycję Nowa rejestracja.
W obszarze Nazwa wprowadź nazwę aplikacji (na przykład webapp1).
W obszarze Obsługiwane typy kont wybierz Konta w dowolnym dostawcy tożsamości lub katalogu organizacyjnym (do uwierzytelniania użytkowników za pomocą przepływów użytkownika).
W obszarze Identyfikator URI przekierowania wybierz pozycję Sieć Web, a następnie w polu Adres URL wprowadź .
https://localhost:44316/signin-oidc
W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie, przejdź do obszaru Niejawne udzielanie i przepływy hybrydowe, zaznacz pole wyboru Tokeny identyfikatorów (używane do przepływów niejawnych i hybrydowych).
W obszarze Uprawnienia zaznacz pole wyboru Udziel zgody administratora na uprawnienia do otwierania i dostępu w trybie offline.
Wybierz pozycję Zarejestruj.
Wybierz Przegląd.
Zarejestruj identyfikator aplikacji (klienta) do późniejszego użycia podczas konfigurowania aplikacji internetowej.
Krok 3. Pobieranie przykładu aplikacji internetowej
Pobierz plik zip lub sklonuj przykładową aplikację internetową z usługi GitHub.
git clone https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2
Wyodrębnij przykładowy plik do folderu, w którym całkowita długość ścieżki wynosi 260 lub mniej znaków.
Krok 4. Konfigurowanie przykładowej aplikacji internetowej
W folderze przykładowym w folderze 1-WebApp-OIDC/1-5-B2C/ otwórz projekt WebApp-OpenID Połączenie-DotNet.csproj za pomocą programu Visual Studio lub Visual Studio Code.
W folderze głównym projektu otwórz plik appsettings.json . Ten plik zawiera informacje o dostawcy tożsamości usługi Azure AD B2C. Zaktualizuj następujące właściwości ustawień aplikacji:
Sekcja | Key | Wartość |
---|---|---|
AzureAdB2C | Wystąpienie | Pierwsza część nazwy dzierżawy usługi Azure AD B2C (na przykład https://contoso.b2clogin.com ). |
AzureAdB2C | Domain | Pełna nazwa dzierżawy usługi Azure AD B2C (na przykład contoso.onmicrosoft.com ). |
AzureAdB2C | ClientId | Identyfikator aplikacji internetowej (klienta) z kroku 2. |
AzureAdB2C | SignUpSignInPolicyId | Przepływy użytkownika lub zasady niestandardowe utworzone w kroku 1. |
Ostateczny plik konfiguracji powinien wyglądać podobnie do następującego kodu JSON:
"AzureAdB2C": {
"Instance": "https://contoso.b2clogin.com",
"Domain": "contoso.onmicrosoft.com",
"ClientId": "<web-app-application-id>",
"SignedOutCallbackPath": "/signout/<your-sign-up-in-policy>",
"SignUpSignInPolicyId": "<your-sign-up-in-policy>"
}
Krok 5. Uruchamianie przykładowej aplikacji internetowej
Skompiluj i uruchom projekt.
Przejdź do
https://localhost:44316
.Wybierz pozycję Zarejestruj się/W.
Ukończ proces rejestracji lub logowania.
Po pomyślnym uwierzytelnieniu na pasku nawigacyjnym zostanie wyświetlona nazwa wyświetlana. Aby wyświetlić oświadczenia, które token usługi Azure AD B2C powraca do aplikacji, wybierz pozycję Oświadczenia.
Wdrażanie aplikacji
W aplikacji produkcyjnej identyfikator URI przekierowania rejestracji aplikacji jest zwykle publicznie dostępnym punktem końcowym, w którym aplikacja jest uruchomiona, na przykład https://contoso.com/signin-oidc
.
W dowolnym momencie możesz dodawać i modyfikować identyfikatory URI przekierowania w zarejestrowanych aplikacjach. Następujące ograniczenia dotyczą identyfikatorów URI przekierowania:
- Adres URL odpowiedzi musi zaczynać się od schematu
https
. - W adresie URL odpowiedzi jest uwzględniana wielkość liter. Jego wielkość liter musi być zgodna ze wielkością ścieżki adresu URL uruchomionej aplikacji.
Następne kroki
- Dowiedz się więcej o przykładzie kodu.
- Dowiedz się, jak włączyć uwierzytelnianie we własnej aplikacji internetowej przy użyciu usługi Azure AD B2C.