Udostępnij za pośrednictwem


Logowanie użytkowników w przykładowej aplikacji klasycznej WPF

W tym przewodniku użyto przykładowej aplikacji Windows Presentation Foundation (WPF), aby pokazać, jak dodać uwierzytelnianie do aplikacji klasycznej WPF. Przykładowa aplikacja umożliwia użytkownikom logowanie się i wylogowywanie. Przykładowa aplikacja klasyczna używa biblioteki Microsoft Authentication Library dla platformy .NET dla platformy .NET do obsługi uwierzytelniania.

Warunki wstępne

  • Dzierżawa zewnętrzna. Aby go utworzyć, wybierz jedną z następujących metod:
    • (Zalecane) Użyj rozszerzenia Tożsamość zewnętrzna Microsoft Entra, aby skonfigurować dzierżawę zewnętrzną bezpośrednio w programie Visual Studio Code.
    • Utwórz nową dzierżawę zewnętrzną w centrum administracyjnym firmy Microsoft Entra.

Rejestrowanie aplikacji klasycznej

Aby umożliwić aplikacji logowanie użytkowników w usłudze Microsoft Entra, Tożsamość zewnętrzna Microsoft Entra należy pamiętać o tworzonej aplikacji. Rejestracja aplikacji ustanawia relację zaufania między aplikacją a firmą Microsoft Entra. Podczas rejestrowania aplikacji identyfikator zewnętrzny generuje unikatowy identyfikator znany jako identyfikator aplikacji (klienta) — wartość używana do identyfikowania aplikacji podczas tworzenia żądań uwierzytelniania.

W poniższych krokach pokazano, jak zarejestrować aplikację w centrum administracyjnym firmy Microsoft Entra:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako deweloper aplikacji.

  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikony Ustawienia w górnym menu, aby przełączyć się do dzierżawy zewnętrznej z menu Katalogi i subskrypcje.

  3. Przejdź do aplikacji tożsamości>> Rejestracje aplikacji.

  4. Wybierz pozycję + Nowa rejestracja.

  5. Na wyświetlonej stronie Rejestrowanie aplikacji ;

    1. Wprowadź zrozumiałą nazwę aplikacji wyświetlaną użytkownikom aplikacji, na przykład ciam-client-app.
    2. W obszarze Obsługiwane typy kont wybierz pozycję Konta tylko w tym katalogu organizacyjnym.
  6. Wybierz pozycję Zarejestruj.

  7. Po pomyślnej rejestracji zostanie wyświetlone okienko Przegląd aplikacji. Zarejestruj identyfikator aplikacji (klienta), który ma być używany w kodzie źródłowym aplikacji.

Określanie platformy aplikacji

Aby określić typ aplikacji do rejestracji aplikacji, wykonaj następujące kroki:

  1. W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
  2. Na stronie Konfiguracje platformy wybierz pozycję Dodaj platformę, a następnie wybierz opcję Aplikacje mobilne i klasyczne.
  3. W polu wejściowym w obszarze Niestandardowy identyfikator URI przekierowania ręcznie wprowadź wartość https://login.microsoftonline.com/common/oauth2/nativeclient, a następnie wybierz pozycję Konfiguruj. Jeśli wybierzesz ten identyfikator URI w polu wyboru, może zostać wyświetlony błąd identyfikatora URI przekierowania.
  1. Na stronie Rejestracje aplikacji wybierz utworzoną aplikację (np. ciam-client-app), aby otworzyć stronę Przegląd.

  2. W obszarze Zarządzanie wybierz pozycję Uprawnienia interfejsu API. Z listy Skonfigurowane uprawnienia aplikacja została przypisana do uprawnienia User.Read. Jednak ponieważ dzierżawa jest dzierżawą zewnętrzną, użytkownicy konsumentów sami nie mogą wyrazić zgody na to uprawnienie. Administrator musi wyrazić zgodę na to uprawnienie w imieniu wszystkich użytkowników w dzierżawie:

    1. Wybierz pozycję Udziel zgody administratora dla <swojej nazwy> dzierżawy, a następnie wybierz pozycję Tak.
    2. Wybierz pozycję Odśwież, a następnie sprawdź, czy w obszarze Stan dla obu zakresów jest wyświetlana wartość Przyznane dla <nazwy> dzierżawy.

Tworzenie przepływu użytkownika

Wykonaj następujące kroki, aby utworzyć przepływ użytkownika, który klient może użyć do zalogowania się lub zarejestrowania się w aplikacji.

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej administrator przepływu użytkownika identyfikatora zewnętrznego.

  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikony Ustawienia w górnym menu, aby przełączyć się do dzierżawy zewnętrznej z menu Katalogi i subskrypcje.

  3. Przejdź do sekcji Identity External Identities User flows (Przepływy> użytkownika tożsamości>zewnętrznych tożsamości).

  4. Wybierz pozycję + Nowy przepływ użytkownika.

  5. Na stronie Tworzenie:

    1. Wprowadź nazwę przepływu użytkownika, na przykład SignInSignUpSample.

    2. Na liście Dostawcy tożsamości wybierz pozycję Konta e-mail. Ten dostawca tożsamości umożliwia użytkownikom logowanie się lub tworzenie konta przy użyciu ich adresu e-mail.

      Nuta

      Dodatkowi dostawcy tożsamości będą wyświetlani w tym miejscu tylko po skonfigurowaniu federacji z nimi. Jeśli na przykład skonfigurujesz federację z usługą Google lub Facebookiem, będzie można wybrać tych dodatkowych dostawców tożsamości w tym miejscu.

    3. W obszarze Konta e-mail możesz wybrać jedną z dwóch opcji. Na potrzeby tego samouczka wybierz pozycję Poczta e-mail z hasłem.

      • Wiadomość e-mail z hasłem: umożliwia nowym użytkownikom zarejestrowanie się i zalogowanie się przy użyciu adresu e-mail jako nazwy logowania i hasła jako poświadczeń pierwszego czynnika.
      • Wyślij wiadomość e-mail z jednorazowym kodem dostępu: umożliwia nowym użytkownikom zarejestrowanie się i zalogowanie się przy użyciu adresu e-mail jako nazwy logowania i jednorazowego kodu dostępu jako poświadczeń pierwszego czynnika. Jednorazowy kod dostępu poczty e-mail musi być włączony na poziomie dzierżawy (wszyscy dostawcy>tożsamości e-mail jednorazowego kodu dostępu), aby ta opcja została udostępniona na poziomie przepływu użytkownika.
    4. W obszarze Atrybuty użytkownika wybierz atrybuty, które chcesz zebrać od użytkownika podczas rejestracji. Wybierając pozycję Pokaż więcej, możesz wybrać atrybuty i oświadczenia dla kraju/regionu, nazwy wyświetlanej i kodu pocztowego. Wybierz przycisk OK. (Użytkownicy są monitowani tylko o atrybuty podczas rejestracji po raz pierwszy).

  6. Wybierz pozycję Utwórz. Nowy przepływ użytkownika zostanie wyświetlony na liście Przepływy użytkownika. W razie potrzeby odśwież stronę.

Aby włączyć samoobsługowe resetowanie hasła, wykonaj kroki opisane w artykule Włączanie samoobsługowego resetowania hasła.

Kojarzenie aplikacji WPF z przepływem użytkownika

Aby użytkownicy klienta widzieli środowisko rejestracji lub logowania podczas korzystania z aplikacji, musisz skojarzyć aplikację z przepływem użytkownika. Chociaż wiele aplikacji może być skojarzonych z przepływem użytkownika, pojedyncza aplikacja może być skojarzona tylko z jednym przepływem użytkownika.

  1. W menu paska bocznego wybierz pozycję Tożsamość.

  2. Wybierz pozycję Tożsamości zewnętrzne, a następnie przepływy użytkownika.

  3. Na stronie Przepływy użytkownika wybierz utworzoną wcześniej nazwę przepływu użytkownika, na przykład SignInSignUpSample.

  4. W obszarze Użyj wybierz pozycję Aplikacje.

  5. Wybierz pozycję Dodaj aplikację.

  6. Wybierz aplikację z listy, na przykład ciam-client-app , lub użyj pola wyszukiwania, aby znaleźć aplikację, a następnie wybierz ją.

  7. Wybierz pozycję Wybierz.

Po skojarzeniu aplikacji z przepływem użytkownika możesz przetestować przepływ użytkownika, symulując środowisko rejestracji lub logowania użytkownika z poziomu centrum administracyjnego firmy Microsoft Entra. W tym celu wykonaj kroki opisane w artykule Testowanie przepływu rejestracji i logowania użytkownika.

Klonowanie lub pobieranie przykładowej aplikacji WPF

Aby uzyskać przykładową aplikację, możesz ją sklonować z usługi GitHub lub pobrać jako plik .zip.

  • Aby sklonować przykład, otwórz wiersz polecenia i przejdź do miejsca, w którym chcesz utworzyć projekt, a następnie wprowadź następujące polecenie:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
    
  • Pobierz plik .zip. Wyodrębnij go do ścieżki pliku, w której długość nazwy jest mniejsza niż 260 znaków.

Konfigurowanie przykładowej aplikacji WPF

  1. Otwórz projekt w środowisku IDE (np. Visual Studio lub Visual Studio Code), aby skonfigurować kod.

  2. W edytorze kodu otwórz plik appsettings.json w folderze ms-identity-ciam-dotnet-tutorial>1-Authentication>5-sign-in-dotnet-wpf.

  3. Zastąp Enter_the_Application_Id_Here ciąg identyfikatorem aplikacji (klienta) zarejestrowanej wcześniej aplikacji.

  4. Zastąp ciąg Enter_the_Tenant_Subdomain_Here poddomeną Katalog (dzierżawa). Jeśli na przykład domena podstawowa jest contoso.onmicrosoft.com, zastąp ciąg Enter_the_Tenant_Subdomain_Here contoso. Jeśli nie masz domeny podstawowej, dowiedz się, jak odczytywać szczegóły dzierżawy.

Uruchamianie i testowanie przykładowej aplikacji klasycznej WPF

  1. Otwórz okno konsoli i przejdź do katalogu zawierającego przykładową aplikację WPF:

    cd 1-Authentication\5-sign-in-dotnet-wpf
    
  2. W terminalu uruchom aplikację, uruchamiając następujące polecenie:

    dotnet run
    
  3. Po uruchomieniu przykładu powinno zostać wyświetlone okno z przyciskiem Logowanie . Wybierz przycisk Zaloguj się.

    Zrzut ekranu przedstawiający ekran logowania aplikacji klasycznej WPF.

  4. Na stronie logowania wprowadź swój adres e-mail konta. Jeśli nie masz konta, wybierz pozycję Nie masz konta? Utwórz jeden, który uruchamia przepływ rejestracji. Wykonaj czynności opisane w tym przepływie, aby utworzyć nowe konto i zalogować się.

  5. Po zalogowaniu zobaczysz ekran z wyświetlonym pomyślnie logowaniem i podstawowymi informacjami o koncie użytkownika przechowywanym w pobranym tokenie. Podstawowe informacje są wyświetlane w sekcji Informacje o tokenie na ekranie logowania

Jak to działa

Główna konfiguracja aplikacji klienckiej jest obsługiwana w pliku App.xaml.cs . Element A PublicClientApplication jest inicjowany wraz z pamięcią podręczną do przechowywania tokenów dostępu. Aplikacja najpierw sprawdzi, czy istnieje buforowany token, którego można użyć do zalogowania użytkownika. Jeśli nie ma buforowanego tokenu, użytkownik zostanie poproszony o podanie poświadczeń i logowania. Po wylogowaniu pamięć podręczna jest czyszczone ze wszystkich kont i wszystkich odpowiednich tokenów dostępu.