Udostępnij za pośrednictwem


Szybki start: wywoływanie internetowego interfejsu API chronionego przez platformę tożsamości firmy Microsoft

Dotyczy: Zielony okrąg z białym symbolem znacznika wyboru. Pracownicy dzierżawcy Zielony okrąg z białym symbolem znacznika wyboru. Dzierżawy zewnętrzne (dowiedz się więcej)

W tym krótkim przewodniku użyjesz przykładowej aplikacji internetowej, aby pokazać, jak chronić internetowy interfejs API ASP.NET przy użyciu platformy tożsamości Microsoftu. W przykładzie użyto biblioteki Microsoft Authentication Library (MSAL) do obsługi uwierzytelniania i autoryzacji.

Wymagania wstępne

Ujawnij API

Po zarejestrowaniu interfejsu API można skonfigurować jego uprawnienia, definiując zakresy, które interfejs API uwidacznia aplikacjom klienckim. Aplikacje klienckie żądają uprawnień do wykonywania operacji, przekazując token dostępu wraz z żądaniami do chronionego internetowego interfejsu API. Internetowy interfejs API wykonuje żądaną operację tylko wtedy, gdy otrzymany token dostępu zawiera wymagane zakresy.

  1. W obszarze Zarządzanie wybierz pozycję Uwidaczniaj interfejs API>Dodaj zakres. Zaakceptuj proponowany URI identyfikatora aplikacji (api://{clientId}), wybierając Zapisz i kontynuuj, a następnie wprowadź następujące informacje:

    1. W polu Nazwa zakresu wprowadź wartość access_as_user.
    2. W obszarze Kto może wyrazić zgodę, upewnij się, że wybrano opcję Administratorzy i użytkownicy .
    3. W polu Nazwa wyświetlana zgody administratora wprowadź Access TodoListService as a user.
    4. W polu Opis zgody administratora wprowadź Accesses the TodoListService web API as a user.
    5. W polu Nazwa wyświetlana zgody użytkownika wprowadź Access TodoListService as a user.
    6. W polu Opis zgody użytkownika wprowadź wartość Accesses the TodoListService web API as a user.
    7. W obszarze Stan zachowaj wartość Włączone.
  2. Wybierz Dodaj zakres.

Klonowanie lub pobieranie przykładowej aplikacji

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

git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git

Wskazówka

Aby uniknąć błędów spowodowanych ograniczeniami długości ścieżki w systemie Windows, zalecamy wyodrębnienie archiwum lub sklonowanie repozytorium do katalogu w pobliżu katalogu głównego dysku.

Konfigurowanie przykładowej aplikacji

Skonfiguruj przykładowy kod, aby był zgodny z zarejestrowanym internetowym interfejsem API.

  1. Otwórz rozwiązanie w programie Visual Studio, a następnie otwórz plik appsettings.json w katalogu głównym projektu TodoListService.

  2. Zastąp wartość Enter_the_Application_Id_here identyfikatorem klienta (identyfikator aplikacji) zarejestrowanej przez aplikację w portalu Rejestracje aplikacji, zarówno we właściwościach ClientID, jak i Audience.

Dodawanie nowego zakresu do pliku app.config

Aby dodać nowy zakres do pliku app.config TodoListClient, wykonaj następujące kroki:

  1. W folderze głównym projektu TodoListClient otwórz plik app.config .

  2. Wklej identyfikator aplikacji z aplikacji zarejestrowanej dla projektu TodoListService w parametrze TodoListServiceScope, zastępując ciąg {Enter the Application ID of your TodoListService from the app registration portal}.

Uwaga

Upewnij się, że identyfikator aplikacji używa następującego formatu: api://{TodoListService-Application-ID}/access_as_user (gdzie {TodoListService-Application-ID} jest identyfikatorem GUID reprezentującym identyfikator aplikacji dla aplikacji TodoListService).

Rejestrowanie aplikacji internetowej (TodoListClient)

Zarejestruj aplikację TodoListClient w obszarze Rejestracje aplikacji w centrum administracyjnym firmy Microsoft Entra, a następnie skonfiguruj kod w projekcie TodoListClient. Jeśli klient i serwer są uważane za tę samą aplikację, możesz ponownie użyć aplikacji zarejestrowanej w kroku 2. Użyj tej samej aplikacji, jeśli chcesz, aby użytkownicy logować się przy użyciu osobistego konta Microsoft.

Rejestrowanie aplikacji

Aby zarejestrować aplikację TodoListClient, wykonaj następujące kroki:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji w chmurze.

  2. Przejdź do pozycjiRejestracje aplikacjiEntra ID> i wybierz pozycję Nowa rejestracja.

  3. Wybierz pozycję Nowa rejestracja.

  4. Po otwarciu strony Rejestrowanie aplikacji wprowadź informacje o rejestracji aplikacji:

    1. W sekcji Nazwa wprowadź zrozumiałą nazwę aplikacji, która będzie wyświetlana użytkownikom aplikacji (na przykład NativeClient-DotNet-TodoListClient).
    2. W obszarze Obsługiwane typy kont wybierz pozycję Konta w dowolnym katalogu organizacyjnym.
    3. Wybierz pozycję Zarejestruj , aby utworzyć aplikację.

    Uwaga

    W pliku app.config projektu TodoListClient wartość domyślna ida:Tenant to common. Możliwe wartości to:

    • common: Możesz zalogować się przy użyciu konta służbowego lub osobistego konta Microsoft (ponieważ w poprzednim kroku wybrano pozycję Konta w dowolnym katalogu organizacyjnym ).
    • organizations: Możesz zalogować się przy użyciu konta służbowego lub szkolnego.
    • consumers: Możesz zalogować się tylko przy użyciu konta osobistego Microsoft.
  5. Na stronie Przegląd aplikacji wybierz pozycję Uwierzytelnianie, a następnie wykonaj następujące kroki, aby dodać platformę:

    1. W obszarze Konfiguracje platformy wybierz przycisk Dodaj platformę .
    2. W obszarze Aplikacje mobilne i klasyczne wybierz pozycję Aplikacje mobilne i klasyczne.
    3. Zaznacz pole wyboru https://login.microsoftonline.com/common/oauth2/nativeclient dla Identyfikatory URI przekierowania.
    4. Wybierz pozycję Konfiguruj.
  6. Wybierz Uprawnienia interfejsu API, a następnie postępuj zgodnie z poniższymi krokami, aby dodać uprawnienia:

    1. Wybierz przycisk Dodaj uprawnienie .
    2. Wybierz kartę Moje interfejsy API .
    3. Na liście interfejsów API wybierz pozycję AppModelv2-NativeClient-DotNet-TodoListService API lub nazwę wprowadzoną dla internetowego interfejsu API.
    4. Zaznacz pole wyboru uprawnienia access_as_user, jeśli nie jest jeszcze zaznaczone. W razie potrzeby użyj pola Wyszukiwania.
    5. Wybierz przycisk Dodaj uprawnienia .

Konfigurowanie projektu

Skonfiguruj projekt TodoListClient, dodając identyfikator aplikacji do pliku app.config .

  1. W portalu Rejestracje aplikacji na stronie Przegląd skopiuj wartość identyfikatora aplikacji (klienta).

  2. W folderze głównym projektu TodoListClient otwórz plik app.config , a następnie wklej wartość Identyfikator aplikacji w parametrze ida:ClientId .

Uruchamianie przykładowej aplikacji

Uruchom oba projekty. Dla użytkowników programu Visual Studio;

  1. Kliknij prawym przyciskiem myszy na rozwiązaniu Visual Studio i wybierz Właściwości

  2. W obszarze Wspólne właściwości wybierz pozycję Projekt startowy , a następnie pozycję Wiele projektów startowych.

  3. W przypadku obu projektów wybierz pozycję Rozpocznij jako akcję

  4. Upewnij się, że usługa TodoListService jest uruchamiana jako pierwsza, przenosząc ją na pierwszą pozycję na liście przy użyciu strzałki w górę.

Zaloguj się, aby uruchomić projekt TodoListClient.

  1. Naciśnij F5, aby uruchomić projekty. Zostanie otwarta strona usługi, a także aplikacja komputerowa.

  2. W aplikacji TodoListClient w prawym górnym rogu wybierz pozycję Zaloguj, a następnie zaloguj się przy użyciu tych samych poświadczeń, które były używane do zarejestrowania aplikacji lub zaloguj się jako użytkownik w tym samym katalogu.

    Jeśli logujesz się po raz pierwszy, może zostać wyświetlony monit o wyrażenie zgody na internetowy interfejs API todoListService.

    Aby ułatwić dostęp do internetowego interfejsu API usługi TodoListService i manipulować listą Zadań do wykonania , logowanie również żąda tokenu dostępu do zakresu access_as_user .

Dokonaj wstępnej autoryzacji aplikacji klienckiej

Możesz zezwolić użytkownikom z innych katalogów na dostęp do web API przez wstępne autoryzowanie aplikacji klienckiej do dostępu do web API. W tym celu należy dodać identyfikator aplikacji z aplikacji klienckiej do listy wstępnie uwierzytelnionych aplikacji dla internetowego interfejsu API. Dodając wstępnie uwierzytelnionego klienta, zezwalasz użytkownikom na dostęp do internetowego interfejsu API bez konieczności udzielania zgody.

  1. W portalu Rejestracje aplikacji otwórz właściwości aplikacji TodoListService.
  2. W sekcji Uwidacznij interfejs API w obszarze Autoryzowane aplikacje klienckie wybierz pozycję Dodaj aplikację kliencką.
  3. W polu Identyfikator klienta wklej identyfikator aplikacji TodoListClient.
  4. W sekcji Autoryzowane zakresy wybierz zakres internetowego interfejsu api://<Application ID>/access_as_user API.
  5. Wybierz pozycję Dodaj aplikację.

Uruchamianie projektu

  1. Naciśnij F5 , aby uruchomić projekt. Twoja aplikacja TodoListClient otwiera się.
  2. W prawym górnym rogu wybierz pozycję Zaloguj, a następnie zaloguj się przy użyciu osobistego konta Microsoft, takiego jak konto live.com lub hotmail.com albo konto służbowe.

Opcjonalnie: Ogranicz dostęp do logowania do niektórych użytkowników

Domyślnie wszystkie konta osobiste, takie jak outlook.com lub live.com, a także konta służbowe lub szkolne z organizacji zintegrowanych z Microsoft Entra ID, mogą żądać tokenów i uzyskiwać dostęp do interfejsu API sieci.

Aby określić, kto może zalogować się do aplikacji, poprzez zmianę właściwości TenantId w pliku appsettings.json.

Następne kroki

Dowiedz się, jak chronić internetowy interfejs API ASP.NET Core za pomocą platformy tożsamości firmy Microsoft.