Logowanie użytkowników w przykładowej aplikacji jednostronicowej w języku JavaScript

Ten przewodnik używa przykładowej wanilii JavaScript (JS) jednostronicowej aplikacji (SPA), aby zademonstrować sposób dodawania uwierzytelniania do SPA. SPA umożliwia użytkownikom logowanie się i wylogowywanie przy użyciu dzierżawy zewnętrznej. W przykładzie użyto biblioteki Microsoft Authentication Library for JavaScript (MSAL.js) do obsługi uwierzytelniania.

Wymagania wstępne

Rejestrowanie SPA w centrum administracyjnym firmy Microsoft Entra

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

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 pozycję Aplikacja jednostronicowa.
  3. W polu Identyfikatory URI przekierowania wprowadź wartość http://localhost:3000.
  4. Wybierz pozycję Konfiguruj, aby zapisać zmiany.

Udzielanie uprawnień interfejsu API

  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.

  3. W obszarze Skonfigurowane uprawnienia wybierz pozycję Dodaj uprawnienie.

  4. Wybierz kartę Interfejsy API firmy Microsoft.

  5. W sekcji Często używane interfejsy API firmy Microsoft wybierz pozycję Microsoft Graph.

  6. Wybierz opcję Delegowane uprawnienia .

  7. W sekcji Wybierz uprawnienia wyszukaj i wybierz zarówno uprawnienia openid , jak i offline_access .

  8. Wybierz przycisk Dodaj uprawnienia.

  9. W tym momencie przypisano uprawnienia poprawnie. Jednak ponieważ dzierżawa jest dzierżawą klienta, użytkownicy odbiorcy sami nie mogą wyrazić zgody na te uprawnienia. Administrator musi wyrazić zgodę na te uprawnienia 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 przepływ użytkownika identyfikatora zewnętrznego Administracja istrator.

  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikonyUstawienia 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.

      Uwaga

      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 SPA 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. Przepływ użytkownika umożliwia konfigurację środowiska użytkownika dla określonych aplikacji. Możesz na przykład skonfigurować przepływ użytkownika, który wymaga od użytkowników zalogowania się lub zarejestrowania się przy użyciu adresu e-mail.

  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 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. Naciśnij przycisk Wybierz.

Klonowanie lub pobieranie przykładowego SPA

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-javascript-tutorial.git
    
  • Pobierz przykład. Wyodrębnij go do ścieżki pliku, w której długość nazwy jest mniejsza niż 260 znaków.

Instalowanie zależności projektu

  1. Otwórz okno terminalu w katalogu głównym przykładowego projektu i wprowadź następujący fragment kodu, aby przejść do folderu projektu:

    cd 1-Authentication\0-sign-in-vanillajs\App
    
  2. Zainstaluj zależności projektu:

    npm install
    

Konfigurowanie przykładowego SPA

  1. Otwórz App/public/authConfig.js plik i zastąp następujące wartości wartościami uzyskanymi z centrum administracyjnego firmy Microsoft Entra:

    • Enter_the_Application_Id_Here zastąp ją identyfikatorem aplikacji (klienta) zarejestrowanej wcześniej aplikacji.
    • Enter_the_Tenant_Subdomain_Here i zastąp ją poddomeną Katalog (dzierżawa). Jeśli na przykład domena podstawowa dzierżawy to contoso.onmicrosoft.com, użyj polecenia contoso. Jeśli nie masz swojej nazwy dzierżawy, dowiedz się, jak odczytywać szczegóły dzierżawy.
  2. Zapisz plik.

Uruchamianie projektu i logowanie

  1. Otwórz nowy terminal i uruchom następujące polecenie, aby uruchomić ekspresowy serwer internetowy.

    npm start
    
  2. Otwórz przeglądarkę internetową i przejdź pod adres http://localhost:3000/.

  3. Zaloguj się przy użyciu konta zarejestrowanego w dzierżawie zewnętrznej.

  4. Po zalogowaniu się w nazwie wyświetlanej obok przycisku Wyloguj się , jak pokazano na poniższym zrzucie ekranu.

  5. SPA wyświetli teraz przycisk z informacją o profilu żądania. Wybierz je, aby wyświetlić dane profilu.

    Zrzut ekranu przedstawiający logowanie się do wanilii JS SPA.

Wyloguj się z aplikacji

  1. Aby wylogować się z aplikacji, wybierz pozycję Wyloguj się na pasku nawigacyjnym.
  2. Zostanie wyświetlone okno z prośbą o wylogowanie się z konta.
  3. Po pomyślnym wylogowaniu zostanie wyświetlone końcowe okno z poradą, aby zamknąć wszystkie okna przeglądarki.