Uzyskiwanie dostępu do publicznego interfejsu API usługi Azure Sphere przy użyciu tożsamości zarządzanej usługi AAD
Ta metoda umożliwia uwierzytelnianie w dowolnej usłudze obsługującej uwierzytelnianie usługi Azure Active Directory (AAD) bez żadnych poświadczeń w kodzie. Tożsamość zarządzana usługi AAD obsługuje tworzenie lub odnawianie jednostek usługi w Twoim imieniu. Jest to jednostka usługi specjalnego typu, która może być używana tylko z zasobami platformy Azure. Po usunięciu tożsamości zarządzanej odpowiednia jednostka usługi zostanie automatycznie usunięta.
Przypisane przez system: niektóre usługi platformy Azure umożliwiają włączenie tożsamości zarządzanej bezpośrednio w wystąpieniu usługi. Na przykład usługa aplikacja systemu Azure. Po włączeniu tożsamości zarządzanej przypisanej przez system tożsamość jest tworzona w usłudze Azure AD, która jest powiązana z cyklem życia tego wystąpienia usługi. Dlatego po usunięciu zasobu platforma Azure automatycznie usuwa tożsamość. Zgodnie z projektem tylko ten zasób platformy Azure może używać tej tożsamości do żądania tokenów z usługi Azure AD.
Wymagania wstępne
- Urządzenie oparte na usłudze Azure Sphere z funkcjami programistycznymi.
- Dzierżawa usługi Azure Sphere.
- Konfigurowanie środowiska projektowego dla usługi Azure Sphere.
- Dzierżawa usługi Azure Active Directory (identyfikator dzierżawy).
- Subskrypcja platformy Azure.
- Dodaj identyfikator aplikacji interfejsu API publicznego usługi Azure Sphere do dzierżawy platformy Azure.
W poniższej sekcji wyjaśniono, jak wywołać publiczny interfejs API usługi Azure Sphere (PAPI) z aplikacji internetowej platformy Azure przy użyciu tożsamości zarządzanej.
Krok 1. Włączanie tożsamości przypisanej przez system w zasobie
Aby włączyć tożsamość przypisaną przez system w zasobie i znaleźć identyfikator obiektu dla projektu:
- W witrynie Azure Portal w okienku nawigacji po lewej stronie kliknij pozycję App Services.
- Wybierz wymagane subskrypcje z listy rozwijanej i wybierz aplikację z wyników wyszukiwania.
- W menu aplikacji logiki w obszarze Ustawienia wybierz pozycję Tożsamość.
- Włącz tożsamość przypisaną przez system, ustawiając wartość Stan na Włączone.
- Kliknij przycisk Zapisz.
- Skopiuj identyfikator obiektu.
Krok 2. Dodawanie tożsamości zarządzanej do dzierżawy usługi Azure Sphere
Uwaga
Przed rozpoczęciem tego kroku upewnij się, że masz następujące elementy:
- Dzierżawa usługi Azure Sphere: uruchom polecenie azsphere tenant show-selected przy użyciu interfejsu wiersza polecenia usługi Azure Sphere.
- Identyfikator dzierżawy platformy Azure: znajdź identyfikator dzierżawy za pośrednictwem witryny Azure Portal. Skopiuj identyfikator dzierżawy usługi Azure Active Directory.
Usługa Azure Sphere traktuje jednostkę usługi jako innego użytkownika. Aby uzyskać token przy użyciu jednostki usługi, najpierw dodaj użytkownika jednostki usługi do dzierżawy usługi Azure Sphere, a następnie przypisz rolę do użytkownika w dzierżawie usługi Azure Sphere przy użyciu interfejsu wiersza polecenia usługi Azure Sphere.
Tożsamość użytkownika można wygenerować jako <ObjectID>@<TenantID.onmicrosoft.com>.
W poniższym przykładzie utworzymy użytkownika przy użyciu kombinacji identyfikatora obiektu i identyfikatora xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
dzierżawy usługi Azure AD w identyfikatorze tttttttt-tttt-tttt-tttt-tttttttttttt
dzierżawy usługi Azure Sphere, a następnie dodamy rolę Współautor dla tego użytkownika.
Zaloguj się przy użyciu logowania do usługi Azure Sphere przy użyciu interfejsu wiersza polecenia usługi Azure Sphere:
azsphere login
Wybierz wymaganą dzierżawę:
azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
Aby dodać użytkownika do wymaganej roli:
azsphere role add --role Contributor --user xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
Krok 3. Dodawanie pakietu NuGet Azure.Identity w projekcie
Dodaj pakiet NuGet Azure.Identity w projekcie. Token publicznego interfejsu API (PAPI) usługi Azure Sphere można uzyskać domyślnieAzureCredential.
Na przykład zobacz fragment kodu:
public static async Task<string> GetAS3Token()
{
DefaultAzureCredential credential = new DefaultAzureCredential();
var result = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(
new[] { "https://firstparty.sphere.azure.net/api/.default" }));
return result.Token;
}