Доступ к общедоступному API Azure Sphere с помощью удостоверения пользователя AAD

Этот метод проверки подлинности можно использовать, если необходимо реализовать веб-приложение или консольное приложение, к которому пользователи в клиенте Azure Active Directory (AAD) клиента могут получить доступ.

Регистрация клиентских приложений — это представления приложений Azure Active Directory, которые можно использовать для проверки подлинности и получения маркеров. Клиент службы предназначен для использования приложением для получения маркера доступа без интерактивной проверки подлинности пользователя. Он будет иметь определенные разрешения приложения и использовать секрет приложения (пароль) при получении маркеров доступа.

Необходимые условия

Шаг 1. Регистрация клиентского приложения

  1. В портал Azure в области навигации слева щелкните Azure Active Directory.
  2. В колонке Azure Active Directory щелкните Регистрация приложений.
  3. Щелкните Создать регистрацию.
  4. Присвойте приложению отображаемое имя.

Шаг 2. Настройка проверки подлинности

  1. В портал Azure в области навигации слева щелкните Azure Active Directory.
  2. В Регистрация приложений выберите свое приложение, а затем — Проверка подлинности.
  3. Настройте приложение в соответствии с требованиями приложения.

Шаг 3. Добавление разрешений API

  1. Выберите Разрешения API и щелкните Добавить разрешение.
  2. В разделе API, которые использует моя организация, найдите общедоступный API Azure Sphere. Идентификатор приложения для общедоступного API Azure Sphere — 7c209960-a417-423c-b2e3-9251907e63fe.
  3. Выберите Azure Sphere Public.
  4. Выберите azuresphere.readwrite и щелкните Добавить разрешения.

Шаг 4. Настройка приложения

    IPublicClientApplication publicClientApplication =
    PublicClientApplicationBuilder.Create("<<App registration Client ID>>")
                    .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
                    .WithAuthority(AzureCloudInstance.AzurePublic, "<<3rd Party Tenant Id>>")
                    .Build();
    string[] scopes = new[] { "https://firstparty.sphere.azure.net/api/azuresphere.readwrite" };
    AuthenticationResult result = await publicClientApplication.AcquireTokenInteractive(scopes).ExecuteAsync();
    string accessToken=result.AccessToken;