Доступ к общедоступному API Azure Sphere с помощью субъекта-службы приложений AAD
Внимание
Это документация по Azure Sphere (устаревшая версия). Служба Azure Sphere (устаревшая версия) выходит на пенсию 27 сентября 2027 г., и к этому времени пользователи должны перейти в Azure Sphere (интегрированная). Используйте селектор версий, расположенный над toC, чтобы просмотреть документацию по Azure Sphere (интегрированная).
Автоматизированные средства требуют ограниченного доступа и неинтерактивной проверки подлинности вместо проверки подлинности в качестве полного привилегированного пользователя. Это можно сделать с помощью субъектов-служб, позволяющих приложениям выполнять вход с определенными разрешениями. Проще говоря, субъект-служба Azure работает как удостоверение, которое создается в Azure при регистрации приложения в Azure Active Directory.
В этом режиме разрешение доступа для приложения в клиенте Azure Active Directory (AAD) определяется субъектом-службой, что обеспечивает проверку подлинности и авторизацию при доступе к ресурсам.
Существует два типа методов проверки подлинности, доступных для субъектов-служб, сертификатов клиентов и секретов клиента.
Необходимые компоненты
- Клиент Azure Active Directory (домен клиента).
- Клиент Azure Sphere.
- Секрет клиента субъекта-службы или сертификат X509, используемый для создания субъекта-службы в формате PEM.
- Добавьте идентификатор общедоступного приложения API Azure Sphere в клиент Azure.
Шаг 1. Регистрация субъекта-службы
- В портал Azure в области навигации слева щелкните Azure Active Directory.
- Зарегистрируйте приложение в Azure AD и создайте субъект-службу. Обратите внимание на идентификатор клиента.
- Выберите тип проверки подлинности. Существует два типа проверки подлинности, доступных для субъектов-служб:
- Секрет клиента
- Сертификат клиента
Шаг 2. Добавление субъекта-службы в клиент Azure Sphere и назначение роли
Примечание.
Перед началом этого шага убедитесь, что у вас есть следующее:
- Клиент Azure Sphere: выполните команду **azsphere tenant show-selected** с помощью Интерфейса командной строки Azure Sphere
- Идентификатор клиента Azure: поиск идентификатора клиента с помощью портал Azure. Скопируйте идентификатор клиента Azure Active Directory.
- Найдите уникальный идентификатор объекта субъекта-службы, связанного с этим приложением:
- Перейдите к Регистрация приложений и выберите приложение, созданное на шаге 1. Регистрация субъекта-службы.
- В разделе Управляемое приложение в локальном каталоге выберите ссылку с именем своего приложения. Метка для этого выбора может быть усечена.
- На странице "Свойства" скопируйте идентификатор объекта.
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, а затем добавьте роль участника для этого пользователя.
Войдите с помощью имени входа в Azure Sphere с помощью Azure Sphere CLI:
azsphere login
Выберите необходимый клиент:
azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
Чтобы добавить пользователя в требуемую роль, выполните следующие действия.
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).
Настройка приложения с помощью секрета клиента
Чтобы зарегистрировать приложение с помощью секрета клиента:
На портале Azure в области навигации слева щелкните Azure Active Directory.
Перейдите к Регистрация приложений и выберите приложение, созданное на шаге 1. Регистрация субъекта-службы.
В левой области выберите раздел "Сертификаты и секреты секретов> клиента" в разделе >"Новый секрет клиента".
Введите описание, выберите срок действия и щелкните Добавить. Секрет клиента создается и отображается значение секрета клиента.
Скопируйте значение секрета клиента, так как вы не сможете получить ключ позже.
Укажите значение секрета клиента с идентификатором приложения общедоступного 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;
Настройка приложения с помощью сертификата клиента
Чтобы настроить сертификат клиента, выполните следующие действия.
- На портале Azure в области навигации слева щелкните Azure Active Directory.
- Перейдите к Регистрация приложений и выберите приложение, созданное на шаге 1. Регистрация субъекта-службы.
- На панели слева выберите сертификаты и секреты>Сертификатов Отправки сертификатов.> Выберите сертификат (существующий сертификат или экспортируемый самозаверяющий сертификат).
- После регистрации сертификата с приложением на портале регистрации приложений включите код клиентского приложения для использования сертификата.
Чтобы зарегистрировать приложение с помощью сертификата клиента, используйте следующий пример кода:
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.