Udostępnij za pośrednictwem


Samouczek: konfigurowanie aplikacji internetowej ASP.NET Core, która uwierzytelnia użytkowników

Dotyczy: Zielony okrąg z białym symbolem znacznika wyboru. Dzierżawcy siły roboczej Zielony okrąg z białym symbolem znacznika wyboru. Dzierżawcy zewnętrzni (dowiedz się więcej)

W tym samouczku utworzysz aplikację internetową ASP.NET Core i skonfigurujesz ją pod kątem uwierzytelniania. Jest to część 1 serii, która pokazuje, jak utworzyć aplikację internetową ASP.NET Core i przygotować ją do uwierzytelniania przy użyciu centrum administracyjnego firmy Microsoft Entra. Ta aplikacja może być używana zarówno dla pracowników w dzierżawie pracowniczej, jak i dla klientów korzystających z zewnętrznej dzierżawy.

W tym samouczku:

  • Tworzenie aplikacji internetowej ASP.NET Core
  • Tworzenie certyfikatu z podpisem własnym
  • Konfigurowanie ustawień aplikacji
  • Definiowanie ustawień i adresów URL platformy

Warunki wstępne

  • Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto. To konto musi mieć uprawnienia do zarządzania aplikacjami. Aby zarejestrować aplikację, użyj dowolnej z następujących ról:
    • Administrator aplikacji
    • Deweloper aplikacji
    • Administrator aplikacji w chmurze
  • Mimo że można używać dowolnego zintegrowanego środowiska programistycznego (IDE), które obsługuje aplikacje ASP.NET Core, niniejszy samouczek wykorzystuje Visual Studio Code. Możesz pobrać go tutaj.
  • Minimalne wymaganie zestawu .NET 8.0 SDK.
  • Najemca siły roboczej. Możesz użyć katalogu domyślnego lub skonfigurować nową dzierżawę.
  • Aplikacja zarejestrowana w centrum administracyjnym firmy Microsoft Entra. Na potrzeby tej serii samouczków użyj następującej konfiguracji:
    • Nazwa: identity-client-web-app
    • Obsługiwane typy kont: tylko konta w tym katalogu organizacyjnym
    • URI przekierowania: https://localhost:5001/signin-oidc
    • adres URL wylogowywania dla kanału przedniego : https://localhost:5001/signout-oidc
  • Na potrzeby programowania utworzyć certyfikat z podpisem własnym. Zapoznaj się z odnośnie dodawania poświadczeń w celu przekazania certyfikatu i zarejestrowania certyfikatu odcisku cyfrowego. Nie używaj certyfikatu z podpisem własnym dla aplikacji produkcyjnych. Użyj zaufanego urzędu certyfikacji.

Tworzenie projektu ASP.NET Core

W tej sekcji utworzysz projekt ASP.NET Core w programie Visual Studio Code.

  1. Otwórz program Visual Studio Code, wybierz pozycję Plik > Otwórz folder.... Przejdź do i wybierz lokalizację, w której chcesz utworzyć projekt.

  2. Otwórz nowy terminal, wybierając pozycję Terminal > New Terminal.

  3. Wprowadź następujące polecenie, aby utworzyć projekt MVC (Model View Controller) ASP.NET Core.

    dotnet new mvc -n identity-client-web-app
    

Instalowanie pakietów tożsamości

Ta aplikacja używa Microsoft.Identity.Web i należy zainstalować powiązany pakiet NuGet.

Użyj następującego fragmentu kodu, aby przejść do nowego folderu identity-client-web-app i zainstalować odpowiedni pakiet NuGet:

dotnet add package Microsoft.Identity.Web.UI

Konfigurowanie aplikacji pod kątem uwierzytelniania

Wartości zarejestrowane w konfiguracji aplikacji są używane do konfigurowania aplikacji na potrzeby uwierzytelniania. Plik konfiguracji appsettings.jsonsłuży do przechowywania ustawień aplikacji używanych w czasie wykonywania.

Aktualizowanie pliku konfiguracji

W środowisku IDE otwórz appsettings.json i zastąp zawartość pliku poniższym fragmentem kodu. Zastąp tekst w cudzysłowach wartościami, które zostały zarejestrowane wcześniej.

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "TenantId": "Enter_the_Tenant_Id_Here",
    "ClientId": "Enter_the_Application_Id_Here",
    "ClientCertificates": [
      {
        "SourceType": "StoreWithThumbprint",
        "CertificateStorePath": "CurrentUser/My",
        "CertificateThumbprint": "Enter the certificate thumbprint obtained the Microsoft Entra admin center"
      }   
    ],
    "CallbackPath": "/signin-oidc"
  },
    "DownstreamApi": {
      "BaseUrl": "https://graph.microsoft.com/v1.0/",
      "RelativePath": "me",
      "Scopes": [ 
        "user.read" 
      ]
    },
    "Logging": {
      "LogLevel": {
        "Default": "Information",
        "Microsoft.AspNetCore": "Warning"
      }
    },
    "AllowedHosts": "*"
  }
  • Instance — punkt końcowy uwierzytelniania. Sprawdź różne dostępne punkty końcowe w chmurach krajowych .
  • TenantId — identyfikator dzierżawcy, gdzie aplikacja została zarejestrowana. Zastąp tekst w cudzysłowie wartością identyfikatora katalogu (dzierżawy), którą zanotowano wcześniej na stronie przeglądu zarejestrowanej aplikacji.
  • ClientId — identyfikator aplikacji, nazywany również klientem. Zastąp tekst w cudzysłowach wartością Identyfikatora aplikacji (klienta), która została zapisana wcześniej na stronie przeglądu zarejestrowanej aplikacji.
  • ClientCertificates — certyfikat z podpisem własnym jest używany do uwierzytelniania w aplikacji. Zastąp tekst CertificateThumbprint odciskiem palca certyfikatu, który został wcześniej zarejestrowany. Nie używaj certyfikatu z podpisem własnym dla aplikacji produkcyjnych.
  • CallbackPath — jest identyfikatorem, który ułatwia serwerowi przekierowanie odpowiedzi do odpowiedniej aplikacji.
  • DownstreamApi — jest identyfikatorem definiującym punkt końcowy na potrzeby uzyskiwania dostępu do programu Microsoft Graph. Identyfikator URI aplikacji jest połączony z określonym zakresem. Aby zdefiniować konfigurację aplikacji należącej do organizacji, wartość atrybutu Scopes jest nieco inna.

Zaktualizuj identyfikator URI przekierowania

Z wymagań wstępnychidentyfikator URI przekierowania jest ustawiony na https://localhost:5001/signin-oidc. Należy to zaktualizować w ustawieniach uruchamiania aplikacji. Możesz użyć identyfikatora URI przekierowania utworzonego podczas konfiguracji aplikacji lokalnej lub innego dostępnego numeru portu, pod warunkiem, że jest zgodny z identyfikatorem URI przekierowania w rejestracji aplikacji.

  1. W folderze Properties otwórz plik launchSettings.json.

  2. Znajdź obiekt https i zaktualizuj wartość applicationURI przy użyciu poprawnego numeru portu, w tym przypadku 5001. Wiersz powinien wyglądać podobnie do poniższego fragmentu:

    "applicationUrl": "https://localhost:5001;http://localhost:{port}",
    

Następny krok