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:

  1. Użytkownicy przechodzą do aplikacji internetowej i wybierają pozycję Zaloguj się.
  2. Aplikacja inicjuje żądanie uwierzytelniania i przekierowuje użytkowników do usługi Azure AD B2C.
  3. Użytkownicy zarejestrują się lub zalogują się i zresetuj hasło. Alternatywnie mogą zalogować się przy użyciu konta społecznościowego.
  4. Po pomyślnym zalogowaniu użytkowników usługa Azure AD B2C zwraca token identyfikatora do aplikacji.
  5. 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:

  1. W aplikacji użytkownicy wyloguj się.
  2. Aplikacja czyści obiekty sesji, a biblioteka uwierzytelniania czyści pamięć podręczną tokenów.
  3. Aplikacja przenosi użytkowników do punktu końcowego wylogowania usługi Azure AD B2C, aby zakończyć sesję usługi Azure AD B2C.
  4. Użytkownicy są przekierowywani z powrotem do aplikacji.

Wymagania wstępne

Komputer z jedną z następujących funkcji:

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:

  1. Zaloguj się w witrynie Azure Portal.

  2. 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.

  3. W witrynie Azure Portal wyszukaj i wybierz pozycję Azure AD B2C.

  4. Wybierz pozycję Rejestracje aplikacji, a następnie wybierz pozycję Nowa rejestracja.

  5. W obszarze Nazwa wprowadź nazwę aplikacji (na przykład webapp1).

  6. 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).

  7. W obszarze Identyfikator URI przekierowania wybierz pozycję Sieć Web, a następnie w polu Adres URL wprowadź .https://localhost:44316/signin-oidc

  8. W obszarze Uwierzytelnianie przejdź do pola wyboru Niejawne udzielanie i przepływy hybrydowe, zaznacz pole wyboru Tokeny identyfikatorów (używane dla przepływów niejawnych i hybrydowych).

  9. W obszarze Uprawnienia zaznacz pole wyboru Udziel zgody administratora na uprawnienia do otwierania i dostępu w trybie offline.

  10. Wybierz pozycję Zarejestruj.

  11. Wybierz Przegląd.

  12. Zarejestruj identyfikator aplikacji (klienta) do późniejszego użycia podczas konfigurowania aplikacji internetowej.

    Screenshot of the web app Overview page for recording your web application ID.

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 Klucz 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

  1. Skompiluj i uruchom projekt.

  2. Przejdź do https://localhost:44316.

  3. Wybierz pozycję Zarejestruj się/W.

    Screenshot of the sign in and sign up button on the project Welcome page.

  4. 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.

Screenshot of the web app token claims.

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