Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule przedstawiono, jak wywołać chroniony internetowy interfejs API ASP.NET Core przy użyciu Insomnia. Bezsenność to aplikacja, która umożliwia wysyłanie żądań HTTP do internetowego interfejsu API w celu przetestowania zasad autoryzacji i kontroli dostępu (uwierzytelniania). W tym artykule zarejestrujesz aplikację internetową i internetowy interfejs API w dzierżawie. Aplikacja internetowa służy do uzyskiwania tokenu dostępu wygenerowanego przez Platforma tożsamości Microsoft. Następnie użyj tokenu, aby wykonać autoryzowane wywołanie internetowego interfejsu API przy użyciu bezsenności.
W tym artykule przedstawiono, jak wywołać chroniony internetowy interfejs API ASP.NET Core przy użyciu Insomnia. Bezsenność to aplikacja, która umożliwia wysyłanie żądań HTTP do internetowego interfejsu API w celu przetestowania zasad autoryzacji i kontroli dostępu (uwierzytelniania). Kontynuując z Samouczek: zaimplementuj chroniony punkt końcowy do interfejsu API, który stworzyłeś, musisz zarejestrować aplikację internetową w platformie tożsamości firmy Microsoft, aby wygenerować token dostępu. Następnie użyj tokenu, aby wykonać autoryzowane wywołanie interfejsu API przy użyciu bezsenności.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
- To konto platformy Azure musi mieć uprawnienia do zarządzania aplikacjami. Każda z następujących ról firmy Microsoft Entra obejmuje wymagane uprawnienia:
- Administrator aplikacji
- Deweloper aplikacji
- Administrator aplikacji w chmurze
- Pobierz i zainstaluj Insomnia. Użyj opcji Bezsenność, aby uzyskać token dostępu dla żądań interfejsu API.
- Minimalne wymaganie zestawu .NET 8.0 SDK.
- Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
- To konto platformy Azure musi mieć uprawnienia do zarządzania aplikacjami. Każda z następujących ról firmy Microsoft Entra obejmuje wymagane uprawnienia:
- Administrator aplikacji
- Deweloper aplikacji
- Administrator aplikacji w chmurze
- Ukończenie serii samouczków:
- Pobierz i zainstaluj Insomnia.
Rejestrowanie aplikacji
Platforma tożsamości Microsoft wymaga zarejestrowania aplikacji przed udostępnieniem usług zarządzania tożsamościami i dostępem. Rejestracja aplikacji umożliwia określenie nazwy i typu aplikacji oraz odbiorców logowania. Odbiorcy logowania określają, jakie typy kont użytkowników mogą logować się do danej aplikacji.
Rejestrowanie internetowego interfejsu API
Wykonaj następujące kroki, aby utworzyć rejestrację internetowego interfejsu API:
Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako deweloper aplikacji.
Jeśli masz dostęp do wielu dzierżaw, użyj ikony
Ustawienia w górnym menu, aby przełączyć się do dzierżawy, w której chcesz zarejestrować aplikację z menu Katalogi i subskrypcje.Przejdź do obszaruRejestracje aplikacji>.
Wybierz pozycję Nowa rejestracja.
Wprowadź nazwę aplikacji, na przykład NewWebAPI1.
Dla Obsługiwane typy kont wybierz Konta tylko w tym katalogu organizacyjnym. Aby uzyskać informacje na temat różnych typów kont, wybierz pozycję Pomóż mi wybrać opcję.
Wybierz pozycję Zarejestruj.
Po zakończeniu rejestracji możesz wyświetlić okienko Przegląd aplikacji. Zapisz identyfikator katalogu (dzierżawy) oraz identyfikator aplikacji (klienta), które będą używane w kolejnych krokach.
Uwaga
Obsługiwane typy kont można zmienić, odwołując się do modyfikowania kont obsługiwanych przez aplikację.
Uwidacznianie interfejsu 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 jest prawidłowy.
W obszarze Zarządzanie wybierz pozycję Uwidaczniaj interfejs API > Dodaj zakres. Zaakceptuj proponowany URI identyfikatora aplikacji
(api://{clientId})poprzez wybranie Zapisz i kontynuuj. Ta wartość{clientId}jest zarejestrowana na stronie Przegląd. Następnie wprowadź następujące informacje:- W polu Nazwa zakresu wprowadź wartość
Forecast.Read. - W obszarze Kto może wyrazić zgodę, upewnij się, że wybrano opcję Administratorzy i użytkownicy .
- W polu Nazwa wyświetlana zgody administratora wprowadź tutaj
Read forecast data. - W polu Opis zgody administratora wprowadź
Allows the application to read weather forecast data - W polu Nazwa wyświetlana zgody użytkownika wprowadź
Read forecast data. - W polu Opis zgody użytkownika wprowadź wartość
Allows the application to read weather forecast data. - Upewnij się, że stan jest ustawiony na Włączone.
- W polu Nazwa zakresu wprowadź wartość
Wybierz Dodaj zakres. Jeśli zakres został wprowadzony poprawnie, zostanie wyświetlony w okienku Uwidacznij interfejs API .
Rejestrowanie aplikacji internetowej
Nie wystarczy mieć internetowy interfejs API. Aby uzyskać token dostępu do internetowego interfejsu API, potrzebna jest również aplikacja internetowa.
Wykonaj następujące kroki, aby utworzyć rejestrację aplikacji internetowej:
- Wybierz pozycję Strona główna , aby wrócić do strony głównej. Przejdź do obszaruRejestracje aplikacji>.
- Wybierz pozycję Nowa rejestracja.
- Wprowadź nazwę aplikacji, taką jak web-app-calls-web-api.
- Dla Obsługiwane typy kont wybierz Konta tylko w tym katalogu organizacyjnym. Aby uzyskać informacje o różnych typach kont, wybierz opcję Pomóż mi wybrać.
- W obszarze Identyfikator URI przekierowania (opcjonalnie) wybierz Web, a następnie wprowadź
http://localhostw polu Adres URL. - Wybierz pozycję Zarejestruj.
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako deweloper aplikacji.
- Jeśli masz dostęp do wielu dzierżaw, użyj ikony
Ustawienia w górnym menu, aby przełączyć się do dzierżawy, w której chcesz zarejestrować aplikację z menu Katalogi i subskrypcje. - Przejdź do obszaruRejestracje aplikacji>.
- Wybierz pozycję Nowa rejestracja.
- Wprowadź nazwę aplikacji, taką jak web-app-calls-web-api.
- Dla Obsługiwane typy kont wybierz Konta tylko w tym katalogu organizacyjnym. Aby uzyskać informacje o różnych typach kont, wybierz opcję Pomóż mi wybrać.
- W obszarze Identyfikator URI przekierowania (opcjonalnie) wybierz Web, a następnie wprowadź
http://localhostw polu Adres URL. - Wybierz pozycję Zarejestruj.
Po zakończeniu rejestracji możesz wyświetlić okienko Przegląd aplikacji. Zapisz identyfikator katalogu (dzierżawy) oraz identyfikator aplikacji (klienta), które będą używane w kolejnych krokach.
Dodaj klucz tajny klienta
Tajny kod klienta to ciąg znaków, którego aplikacja może używać do identyfikacji i czasami jest nazywany hasłem aplikacji. Aplikacja internetowa używa klucza tajnego klienta, aby udowodnić swoją tożsamość podczas żądania tokenów.
Wykonaj następujące kroki, aby skonfigurować klucz tajny klienta:
W okienku Przegląd w obszarze Zarządzanie wybierz pozycję Certyfikaty i tajemnice>Tajemnice klienta>Nowy klucz tajny klienta.
Dodaj opis dla tajnego klucza klienta, na przykład Mój tajny klucz klienta.
Wybierz datę wygaśnięcia klucza tajnego lub określ niestandardowy okres ważności.
- Okres istnienia wpisu tajnego klienta jest ograniczony do dwóch lat (24 miesięcy) lub mniej. Nie można określić niestandardowego okresu istnienia dłuższego niż 24 miesiące.
- Firma Microsoft zaleca ustawienie wartości wygaśnięcia mniejszej niż 12 miesięcy.
Wybierz pozycję Dodaj.
Pamiętaj, aby zarejestrować wartość tajnego klienta. Ta tajna wartość nigdy nie jest wyświetlana ponownie po opuszczeniu tej strony.
Aby uzyskać więcej informacji na temat bezpiecznego przechowywania wpisu tajnego klienta, zobacz Najlepsze rozwiązania dotyczące zarządzania wpisami tajnymi w usłudze Key Vault.
Dodawanie uprawnień dostępu do internetowego interfejsu API
Określając zakresy internetowego interfejsu API, aplikacja internetowa może uzyskać token dostępu zawierający zakresy dostarczone przez Platforma tożsamości Microsoft. W kodzie internetowy interfejs API może następnie zapewnić dostęp oparty na uprawnieniach do swoich zasobów na podstawie zakresów znalezionych w tokenie dostępu.
Wykonaj następujące kroki, aby skonfigurować uprawnienia klienta do internetowego interfejsu API:
- W okienku Przegląd aplikacji w obszarze Zarządzanie wybierz pozycję Uprawnienia interfejsu API>Dodaj uprawnienie>API używane przez moją organizację.
- Wybierz NewWebAPI1 lub interfejs API, do którego chcesz dodać uprawnienia.
- W obszarze Wybierz uprawnienia zaznacz pole wyboru obok pozycji Forecast.Read. Może być konieczne rozwinięcie listy Uprawnienia . Spowoduje to wybranie uprawnień, które aplikacja kliencka powinna mieć w imieniu zalogowanego użytkownika.
- Wybierz pozycję Dodaj uprawnienia , aby ukończyć proces.
Po dodaniu tych uprawnień do interfejsu API powinny zostać wyświetlone wybrane uprawnienia w obszarze Skonfigurowane uprawnienia.
Możesz również zauważyć uprawnienie User.Read dla interfejsu API programu Microsoft Graph. To uprawnienie jest dodawane automatycznie podczas rejestrowania aplikacji.
Testowanie internetowego interfejsu API
Aby upewnić się, że interfejs API działa i jest gotowy do obsługi żądań, wykonaj następujące kroki:
Sklonuj repozytorium ms-identity-docs-code-dotnet .
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.gitPrzejdź do
ms-identity-docs-code-dotnet/web-apii otwórz plikappsettings.json, zastąp wartości{APPLICATION_CLIENT_ID}i{DIRECTORY_TENANT_ID}następującymi wartościami:-
{APPLICATION_CLIENT_ID}to identyfikator aplikacji internetowego interfejsu API (klienta) w okienku Przegląd aplikacji. -
{DIRECTORY_TENANT_ID}to identyfikator katalogu internetowego interfejsu API (dzierżawy) w okienku Przegląd aplikacji.
-
Uruchom następujące polecenie, aby uruchomić aplikację:
dotnet runZostaną wyświetlone dane wyjściowe podobne do poniższych. Zarejestruj numer portu w adresie
https://localhost:{port}URL.... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:{port} ...
Testowanie internetowego interfejsu API
Aby upewnić się, że interfejs API działa i jest gotowy do obsługi żądań, wykonaj następujące kroki:
Przejdź do internetowego interfejsu API utworzonego w artykule Samouczek: tworzenie projektu ASP.NET Core i konfigurowanie interfejsu API, na przykład NewWebAPILocal, i otwórz folder.
Otwórz nowe okno terminalu i przejdź do folderu, w którym znajduje się projekt internetowego interfejsu API.
Zostaną wyświetlone dane wyjściowe podobne do poniższych. Zarejestruj numer portu w adresie
https://localhost:{port}URL.... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:{port} ...
Konfigurowanie autoryzowanego żądania do internetowego interfejsu API w obszarze Bezsenność
Aby uzyskać token dostępu dla żądań interfejsu API, wykonaj następujące kroki:
Uruchom aplikację Bezsenność .
Wybierz pozycję Nowe żądanie HTTP lub możesz użyć Ctrl + N , aby utworzyć nowe żądanie HTTP.
W oknie modalnym New Request wybierz metodę GET z listy rozwijanej.
Jako adres URL żądania wprowadź adres URL punktu końcowego uwidocznionego przez internetowy interfejs API.
https://localhost:{port}/weatherforecastZ menu rozwijanego Uwierzytelnianie wybierz pozycję OAuth 2.0. Spowoduje to wyświetlenie formularza OAuth 2.0 .
Wprowadź następujące wartości w formularzu OAuth 2.0 :
Ustawienie Wartość TYP UDZIELENIA Wybieranie kodu autoryzacji ADRES URL AUTORYZACJI https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize
Zastąp{tenantId}element identyfikatorem katalogu (dzierżawy)ADRES URL TOKENU DOSTĘPU https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
Zastąp{tenantId}element identyfikatorem katalogu (dzierżawy)IDENTYFIKATOR KLIENTA Wartość identyfikatora aplikacji (klienta) rejestracji aplikacji internetowej KLUCZ TAJNY KLIENTA Wartość tajnego klucza klienta rejestracji aplikacji internetowej PRZEKIEROWANIE URL Wprowadź http://localhostwartość , która ustawia adres URL przekierowania na identyfikator URI przekierowania zarejestrowany za pomocą identyfikatora Entra firmy Microsoft.Opcje zaawansowane>Zakres api://{application_client_id}/Forecast.Read
Przejdź do rejestracji aplikacji internetowej w obszarze Zarządzanie, wybierz pozycję Uprawnienia interfejsu API, a następnie wybierz pozycję Forecast.Read
Skopiuj wartość w polu tekstowym zawierającym wartość Zakres
Uzyskiwanie tokenu dostępu i wysyłanie żądania do internetowego interfejsu API
- Po wprowadzeniu tych wartości wybierz pozycję Pobierz tokeny na końcu formularza. Spowoduje to uruchomienie okna przeglądarki Bezsenność, w którym uwierzytelniasz się przy użyciu poświadczeń użytkownika. Pamiętaj, aby zezwolić na wyskakujące okienka z aplikacji Bezsenność w przeglądarce.
- Po uwierzytelnieniu wybierz pozycję Wyślij , aby wysłać żądanie do chronionego internetowego punktu końcowego interfejsu API.
W przypadku prawidłowego tokenu dostępu zawartego w żądaniu oczekiwana odpowiedź to 200 OK z danymi wyjściowymi podobnymi do następujących:
[
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": -16,
"summary": "Scorching",
"temperatureF": 4
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 1,
"summary": "Sweltering",
"temperatureF": 33
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 26,
"summary": "Freezing",
"temperatureF": 78
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 54,
"summary": "Mild",
"temperatureF": 129
},
{
"date": "YYYY-MM-DDTHH:MM:SS",
"temperatureC": 11,
"summary": "Bracing",
"temperatureF": 51
}
]
Powiązana zawartość
Aby uzyskać więcej informacji na temat przepływu kodu autoryzacji OAuth 2.0 i typów aplikacji, zobacz: