Ćwiczenie — konfigurowanie dostawców uwierzytelniania i dostępu

Ukończone

Aplikacja internetowa listy zakupów musi zabezpieczyć dostęp do niektórych tras i wyłączyć określonych dostawców uwierzytelniania. W tym ćwiczeniu zaktualizujesz konfigurację routingu aplikacji internetowej, aby osiągnąć ten wynik.

W tym ćwiczeniu należy wykonać następujące kroki:

  1. Dodaj reguły do konfiguracji routingu, aby wyłączyć niektórych dostawców uwierzytelniania.
  2. Zabezpiecz listę produktów, aby tylko uwierzytelnieni użytkownicy mogli uzyskiwać do niej dostęp.
  3. Wdróż zaktualizowaną aplikację.
  4. Przetestuj, czy ograniczenia są skuteczne.

Wyłączanie dostawców uwierzytelniania

Zaktualizujemy konfigurację routingu aplikacji, aby wyłączyć dostawcę uwierzytelniania Firmy Microsoft Entra.

  1. Otwórz projekt w programie Visual Studio Code.

  2. Otwórz następujący plik.

    angular-app/staticwebapp.config.json
    
    react-app/staticwebapp.config.json
    
    svelte-app/staticwebapp.config.json
    
    vue-app/staticwebapp.config.json
    
  3. W katalogu głównym obiektu JSON dodaj następującą konfigurację routingu.

    "routes": [
      {
        "route": "/.auth/login/aad",
        "statusCode": 404
      }
    ]
    

    Dodając tę regułę routingu, uniemożliwiamy naszym użytkownikom dostęp do dostawcy uwierzytelniania Firmy Microsoft Entra.

Zabezpieczanie dostępu do listy produktów

Następnie chcemy zabezpieczyć listę produktów, aby tylko uwierzytelnieni mogli uzyskać dostęp do interfejsu API. W tym celu dodamy kolejną regułę routingu staticwebapp.config.json w pliku konfiguracji.

  1. Dodaj następującą regułę w górnej części tablicy routes .

    {
      "route": "/api/products/*",
      "allowedRoles": ["authenticated"]
    },
    
  2. Ukończony staticwebapp.config.json plik powinien wyglądać następująco:

    {
      "routes": [
        {
          "route": "/api/products/*",
          "allowedRoles": ["authenticated"]
        },
        {
          "route": "/.auth/login/aad",
          "statusCode": 404
        }
      ],
      "navigationFallback": {
        "rewrite": "/index.html",
        "exclude": ["*.{css,scss,js,png,gif,ico,jpg,svg}"]
      }
    }
    

Wdrażanie zmian

Przed przetestowaniem wyniku tej konfiguracji ponownie wdrożymy naszą aplikację.

  1. W programie Visual Studio Code otwórz paletę poleceń, naciskając F1.

  2. Wprowadź i wybierz pozycję Git: Zatwierdź wszystko.

  3. Wprowadź Secure access jako komunikat zatwierdzenia, a następnie naciśnij Enter.

  4. Naciśnij klawisz F1, aby otworzyć paletę poleceń.

  5. Wprowadź i wybierz pozycję Git: Wypchnij, a następnie naciśnij Enter.

Po wypchnięciu zmian poczekaj na uruchomienie procesu kompilacji i wdrożenia. Zmiany powinny być widoczne w wdrożonej aplikacji.

Testowanie nowych ograniczeń

Po ponownym uruchomieniu aplikacji możesz sprawdzić, czy nowe ograniczenia są skuteczne.

  1. W oknie Eksplorator programu Visual Studio Code wróć do sekcji Static Web Apps , kliknij prawym przyciskiem myszy pozycję my-static-web-app-and-authn, a następnie wybierz pozycję Przeglądaj witrynę , aby wyświetlić aplikację w przeglądarce.

  2. Jeśli nie zalogowano się, powinien zostać wyświetlony komunikat Brak autoryzacji zamiast listy produktów.

  3. Wybierz pozycję Microsoft Entra ID na liście dostawców uwierzytelniania, aby się zalogować.

    Powinna zostać wyświetlona strona błędu 404 podobna do następującej:

    Zrzut ekranu przedstawiający stronę błędu Static Web Apps 404.

  4. Naciśnij przycisk Wstecz przeglądarki, aby wrócić do aplikacji.

  5. Wybierz pozycję GitHub na liście dostawców uwierzytelniania, aby się zalogować.

  6. Wprowadź poświadczenia usługi GitHub, jeśli zostanie wyświetlony monit, a następnie wybierz pozycję Udziel zgody na stronie zgody platformy Azure.

Teraz zalogowano się i powinno zostać wyświetlona lista produktów.

Następne kroki

Gratulacje. Wdrożono pełny przepływ pracy uwierzytelniania w statycznej aplikacji internetowej!