Поделиться через


Доступ к общедоступному API Azure Sphere с помощью субъекта-службы приложений AAD

Внимание

Это документация по Azure Sphere (устаревшая версия). Служба Azure Sphere (устаревшая версия) выходит на пенсию 27 сентября 2027 г., и к этому времени пользователи должны перейти в Azure Sphere (интегрированная). Используйте селектор версий, расположенный над toC, чтобы просмотреть документацию по Azure Sphere (интегрированная).

Автоматизированные средства требуют ограниченного доступа и неинтерактивной проверки подлинности вместо проверки подлинности в качестве полного привилегированного пользователя. Это можно сделать с помощью субъектов-служб, позволяющих приложениям выполнять вход с определенными разрешениями. Проще говоря, субъект-служба Azure работает как удостоверение, которое создается в Azure при регистрации приложения в Azure Active Directory.

В этом режиме разрешение доступа для приложения в клиенте Azure Active Directory (AAD) определяется субъектом-службой, что обеспечивает проверку подлинности и авторизацию при доступе к ресурсам.

Существует два типа методов проверки подлинности, доступных для субъектов-служб, сертификатов клиентов и секретов клиента.

Необходимые компоненты

Шаг 1. Регистрация субъекта-службы

  1. В портал Azure в области навигации слева щелкните Azure Active Directory.
  2. Зарегистрируйте приложение в Azure AD и создайте субъект-службу. Обратите внимание на идентификатор клиента.
  3. Выберите тип проверки подлинности. Существует два типа проверки подлинности, доступных для субъектов-служб:
    • Секрет клиента
    • Сертификат клиента

Шаг 2. Добавление субъекта-службы в клиент Azure Sphere и назначение роли

Примечание.

Перед началом этого шага убедитесь, что у вас есть следующее:

Azure Sphere обрабатывает субъект-службу как другого пользователя. Чтобы получить маркер с помощью субъекта-службы, сначала добавьте пользователя субъекта-службы в клиент Azure Sphere, а затем назначьте роль пользователю в клиенте Azure Sphere с помощью Azure Sphere CLI.

Удостоверение пользователя можно создать как <ObjectID>@<TenantID.onmicrosoft.com>.

В следующем примере мы создадим пользователя с помощью сочетания идентификатора объекта и идентификатора xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz клиента Azure AD в идентификаторе tttttttt-tttt-tttt-tttt-ttttttttttttклиента Azure Sphere, а затем добавьте роль участника для этого пользователя.

  1. Войдите с помощью имени входа в Azure Sphere с помощью Azure Sphere CLI:

    azsphere login
    
  2. Выберите необходимый клиент:

    azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
    
  3. Чтобы добавить пользователя в требуемую роль, выполните следующие действия.

    azsphere role add --role Contributor --user xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
    

Шаг 3. Регистрация секретов клиента или сертификатов клиента с помощью портала регистрации приложений

Секреты клиентов и сертификаты клиентов позволяют приложениям идентифицировать себя в службе проверки подлинности при получении маркеров в веб-адресном расположении (с помощью схемы HTTPS). Рекомендуется использовать сертификат вместо секрета клиента для сценариев учетных данных клиента при проверке подлинности с помощью Azure Active Directory.

Секрет клиента или сертификат клиента для регистрации приложения можно использовать для получения маркера доступа для общедоступного API Azure Sphere (PAPI).

Настройка приложения с помощью секрета клиента

Чтобы зарегистрировать приложение с помощью секрета клиента:

  1. На портале Azure в области навигации слева щелкните Azure Active Directory.

  2. Перейдите к Регистрация приложений и выберите приложение, созданное на шаге 1. Регистрация субъекта-службы.

  3. В левой области выберите раздел "Сертификаты и секреты секретов> клиента" в разделе >"Новый секрет клиента".

  4. Введите описание, выберите срок действия и щелкните Добавить. Секрет клиента создается и отображается значение секрета клиента.

  5. Скопируйте значение секрета клиента, так как вы не сможете получить ключ позже.

  6. Укажите значение секрета клиента с идентификатором приложения общедоступного API Azure Sphere для входа в качестве приложения. Сохраните значение ключа, чтобы приложение могло получить к нему доступ.

    Внимание

    Значение секрета клиента — это важные учетные данные безопасности. Не сообщайте никому этот секрет клиента и не распространяйте его вместе со своим приложением. Мы рекомендуем использовать службу Azure Key Vault, которая обеспечивает централизованное управление секретами, с полным контролем над политиками доступа и журналом аудита.

Используйте следующий пример кода:

 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;

Настройка приложения с помощью сертификата клиента

Чтобы настроить сертификат клиента, выполните следующие действия.

  1. На портале Azure в области навигации слева щелкните Azure Active Directory.
  2. Перейдите к Регистрация приложений и выберите приложение, созданное на шаге 1. Регистрация субъекта-службы.
  3. На панели слева выберите сертификаты и секреты>Сертификатов Отправки сертификатов.> Выберите сертификат (существующий сертификат или экспортируемый самозаверяющий сертификат).
  4. После регистрации сертификата с приложением на портале регистрации приложений включите код клиентского приложения для использования сертификата.

Чтобы зарегистрировать приложение с помощью сертификата клиента, используйте следующий пример кода:

 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;

Примечание.

Необходимо добавить библиотеку MSAL.Net для использования IConfidentialClient.