Udostępnij za pośrednictwem


Uzyskiwanie dostępu do publicznego interfejsu API usługi Azure Sphere przy użyciu jednostki usługi aplikacji usługi AAD

Zautomatyzowane narzędzia wymagają ograniczonego dostępu i uwierzytelniania nieinterakcyjnego zamiast uwierzytelniania jako w pełni uprzywilejowany użytkownik. Można to osiągnąć przy użyciu jednostek usługi, które umożliwiają aplikacjom logowanie się przy użyciu określonych uprawnień. Mówiąc prościej, jednostka usługi platformy Azure działa jako tożsamość, która jest tworzona na platformie Azure po zarejestrowaniu aplikacji w usłudze Azure Active Directory.

W tym trybie uprawnienie dostępu do aplikacji w dzierżawie usługi Azure Active Directory (AAD) jest definiowane przez jednostkę usługi, która umożliwia uwierzytelnianie i autoryzację podczas uzyskiwania dostępu do zasobów.

Istnieją dwa typy metod uwierzytelniania dostępnych dla jednostek usługi, certyfikatów klienta i wpisów tajnych klienta.

Wymagania wstępne

Krok 1. Rejestrowanie jednostki usługi

  1. W witrynie Azure Portal w okienku nawigacji po lewej stronie kliknij pozycję Azure Active Directory.
  2. Rejestrowanie aplikacji w usłudze Azure AD i tworzenie jednostki usługi. Zanotuj identyfikator klienta.
  3. Wybierz typ uwierzytelniania. Istnieją dwa typy uwierzytelniania dostępne dla jednostek usługi:
    • Klucz tajny klienta
    • Certyfikat klienta

Krok 2. Dodawanie jednostki usługi do dzierżawy usługi Azure Sphere i przypisywanie roli

Uwaga

Przed rozpoczęciem tego kroku upewnij się, że masz następujące elementy:

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-xxxxxxxxxxxxzzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz dzierżawy usługi Azure AD w identyfikatorze tttttttt-tttt-tttt-tttt-ttttttttttttdzierżawy usługi Azure Sphere, a następnie dodamy rolę Współautor dla tego użytkownika.

  1. Zaloguj się przy użyciu logowania do usługi Azure Sphere przy użyciu interfejsu wiersza polecenia usługi Azure Sphere:

    azsphere login
    
  2. Wybierz wymaganą dzierżawę:

    azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
    
  3. 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. Rejestrowanie wpisów tajnych klienta lub certyfikatów klienta przy użyciu portalu rejestracji aplikacji

Wpisy tajne klienta i certyfikaty klienta umożliwiają aplikacjom identyfikowanie się w usłudze uwierzytelniania podczas odbierania tokenów w lokalizacji adresowej sieci Web (przy użyciu schematu HTTPS). Zalecamy używanie certyfikatu zamiast klucza tajnego klienta w scenariuszach poświadczeń klienta podczas uwierzytelniania w usłudze Azure Active Directory.

Klucz tajny klienta lub certyfikat klienta rejestracji aplikacji może służyć do uzyskania tokenu dostępu dla publicznego interfejsu API (PAPI) usługi Azure Sphere.

Konfigurowanie aplikacji przy użyciu wpisu tajnego klienta

Aby zarejestrować aplikację w kluczu tajnym klienta:

  1. W witrynie Azure Portal w okienku nawigacji po lewej stronie kliknij pozycję Azure Active Directory.

  2. Przejdź do Rejestracje aplikacji i wybierz aplikację utworzoną w kroku 1: Rejestrowanie jednostki usługi.

  3. W okienku po lewej stronie wybierz sekcję >Certyfikaty i wpisy tajne> klienta Sekcja Nowy klucz tajny klienta.

  4. Wprowadź opis, wybierz czas trwania ważności, a następnie wybierz pozycję Dodaj. Klucz tajny klienta jest generowany, a zostanie wyświetlona wartość klucza tajnego klienta.

  5. Skopiuj wartość klucza tajnego klienta, ponieważ nie będzie można później pobrać klucza.

  6. Podaj wartość wpisu tajnego klienta przy użyciu identyfikatora aplikacji publicznego interfejsu API usługi Azure Sphere, aby zalogować się jako aplikacja. Zapisz wartość klucza w miejscu, z którego aplikacja będzie mogła ją pobrać.

    Ważne

    Wartość klucza tajnego klienta jest ważnym poświadczenie zabezpieczeń. Nie udostępniaj wpisu tajnego klienta nikomu ani nie rozpowszechniaj go w aplikacji klienckiej. Zalecamy użycie usługi Azure Key Vault, która zapewnia scentralizowane zarządzanie wpisami tajnymi z pełną kontrolą nad zasadami dostępu i historią inspekcji.

Użyj następującego przykładowego kodu:

 IConfidentialClientApplication app =

 ConfidentialClientApplicationBuilder.Create("<<App registration Client ID>>")

                 .WithClientSecret("<<App registration Client Secret Value>>")

                 .WithAuthority(AzureCloudInstance.AzurePublic, "<<3rd Party Tenant Id>>")

                 .Build();

 string[] scopes = new[] { "https://firstparty.sphere.azure.net/api/.default" };

 AuthenticationResult result =  await app.AcquireTokenForClient(scopes).ExecuteAsync();
 string accessToken=result.AccessToken;

Konfigurowanie aplikacji przy użyciu certyfikatu klienta

Aby skonfigurować certyfikat klienta:

  1. W witrynie Azure Portal w okienku nawigacji po lewej stronie kliknij pozycję Azure Active Directory.
  2. Przejdź do Rejestracje aplikacji i wybierz aplikację utworzoną w kroku 1: Rejestrowanie jednostki usługi.
  3. W okienku po lewej stronie wybierz pozycję Certyfikaty i wpisy tajne>>Przekaż certyfikat. Wybierz certyfikat (istniejący certyfikat lub wyeksportowany certyfikat z podpisem własnym).
  4. Po zarejestrowaniu certyfikatu w aplikacji w portalu rejestracji aplikacji włącz kod aplikacji klienckiej, aby używał certyfikatu.

Aby zarejestrować aplikację przy użyciu certyfikatu klienta, użyj następującego przykładowego kodu:

 IConfidentialClientApplication app =

 ConfidentialClientApplicationBuilder.Create("<<App registration Client ID>>")

                 .WithCertificate("<<App registration Certificate>>")

                 .WithAuthority(AzureCloudInstance.AzurePublic, "<<3rd Party Tenant Id>>")

                 .Build();

 string[] scopes = new[] { "https://firstparty.sphere.azure.net/api/.default" };

 AuthenticationResult result =  await app.AcquireTokenForClient(scopes).ExecuteAsync();
 string accessToken=result.AccessToken;

Uwaga

Aby użyć elementu IConfidentialClient, należy dodać bibliotekę MSAL.Net.