В этой статье вы узнаете, как создать приложение Microsoft Entra и субъект-службу, которые можно использовать с управлением доступом на основе ролей (RBAC). При регистрации нового приложения в идентификаторе Microsoft Entra субъект-служба автоматически создается для регистрации приложения. Субъект-служба — это удостоверение приложения в клиенте Microsoft Entra. Доступ к ресурсам ограничен ролями, назначенными для субъекта-службы, что дает пользователю возможность контроля уровня доступа к различным ресурсам. По соображениям безопасности всегда рекомендуется использовать субъекты-службы с автоматизированными средствами, а не разрешать им вход с помощью удостоверения пользователя.
Этот пример применим для бизнес-приложений, используемых в одной организации. Вы также можете использовать Azure PowerShell или Azure CLI для создания субъекта-службы.
Важно!
Вместо создания субъекта-службы вы можете применить управляемые удостоверения ресурсов Azure в качестве удостоверения приложения. Если код выполняется в службе, которая поддерживает управляемые удостоверения и обращается к ресурсам, поддерживающим проверку подлинности Microsoft Entra, управляемые удостоверения являются лучшим вариантом. Дополнительные сведения об управляемых удостоверениях для ресурсов Azure, включая службы, которые в настоящее время поддерживают их, см. в разделе Что такое управляемые удостоверения для ресурсов Azure?
Дополнительные сведения о связи между регистрацией приложений, объектами приложений и субъектами-службами, чтение объектов приложения и субъекта-службы в идентификаторе Microsoft Entra.
Чтобы зарегистрировать приложение в клиенте Microsoft Entra, вам потребуется:
- Учетная запись пользователя Microsoft Entra. Если ее нет, можно создать учетную запись бесплатно.
- Достаточно разрешений для регистрации приложения в клиенте Microsoft Entra и назначения роли приложения в подписке Azure. Для выполнения этих задач потребуется
Application.ReadWrite.All
разрешение.
Регистрация приложения с помощью идентификатора Microsoft Entra и создание субъекта-службы
Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений.
Перейдите к Entra ID>регистрации приложений, а затем выберите Создать регистрацию.
Присвойте приложению имя, например example-app.
В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.
В разделе URI для перенаправления выберите Интернет для типа приложения, которое требуется создать. Введите URI, на который отправляется токен доступа.
Выберите Зарегистрировать.
Назначение роли для приложения
Чтобы обеспечить доступ к ресурсам в подписке, необходимо назначить роль для приложения. Это необходимо сделать на портале Azure. Укажите, какая роль предоставляет приложению необходимые разрешения. Дополнительные сведения о доступных ролях см. в статье Встроенные роли Azure.
Вы можете задать область действия на уровне подписки, группы ресурсов или ресурса. Разрешения наследуют более низкие уровни области действия.
Войдите на портал Azure.
В строке поиска в верхней части экрана найдите и выберите "Подписки".
В новом окне выберите подписку, которую нужно изменить. Если требуемая подписка не отображается, выберите фильтр глобальных подписок. Убедитесь, что для клиента выбрана нужная подписка.
В области слева выберите Управление доступом (IAM).
Нажмите + Добавить и выберите Добавить назначение ролей.
На вкладке "Роль" выберите роль, которую вы хотите назначить приложению в списке, а затем нажмите кнопку "Далее".
На вкладке "Участники" для назначения доступа выберите "Пользователь", "Группа" или "Субъект-служба".
Выберите Выбрать участников. По умолчанию приложения Microsoft Entra не отображаются в доступных параметрах. Чтобы найти приложение, найдите его по имени.
Нажмите кнопку "Выбрать ", а затем нажмите кнопку "Проверить и назначить".
Субъект-служба настроен. Вы можете начать использовать его, чтобы выполнять скрипты или приложения. Для управления субъектом-службой (разрешениями, утвержденными пользователем разрешениями, просмотром пользователей, которые дали согласие, просмотрели разрешения, информацию для входа и пр.) перейдите в раздел Корпоративные приложения.
В следующем разделе показано, как получить значения, необходимые для использования при входе с помощью программного способа.
При программном входе вы передаете идентификатор каталога (клиента) и идентификатор приложения (клиента) в запросе проверки подлинности. Вам также нужен сертификат или ключ проверки подлинности. Чтобы получить идентификатор каталога и идентификатор приложения, выполните следующие действия.
- Откройте домашнюю страницу Центраадминистрирования Microsoft Entra.
- Перейдите в Entra ID>Регистрации приложений, а затем выберите ваше приложение.
- На странице обзора приложения скопируйте значение идентификатора каталога (клиента) и сохраните его в коде приложения.
- Скопируйте значение идентификатора приложения (клиента) и сохраните его в коде приложения.
Настройка проверки подлинности
Для субъектов-служб доступны два варианта проверки подлинности: проверка подлинности на основе пароля (секрет приложения) и проверка подлинности на основе сертификата.
Мы рекомендуем использовать доверенный сертификат, выданный центром сертификации, но также можно создать секрет приложения или создать самозаверяющий сертификат для тестирования.
Вариант 1 (рекомендуется): отправка доверенного сертификата, выданного центром сертификации
Чтобы отправить файл сертификата, выполните следующие действия.
- Перейдите в Entra ID>Регистрации приложений, а затем выберите ваше приложение.
- Выберите Сертификаты и секреты.
- Выберите сертификаты, а затем нажмите кнопку "Отправить сертификат ", а затем выберите файл сертификата для отправки.
- Выберите Добавить. После передачи сертификата отображаются значения отпечатка сертификата, даты начала и истечения срока действия.
После регистрации сертификата в приложении на портале регистрации приложения включите код конфиденциального клиентского приложения для использования сертификата.
Вариант 2. Только тестирование. Создание и отправка самозаверяющего сертификата
Дополнительно можно создать самозаверяющий сертификат только для целей тестирования. Чтобы создать самозаверяющий сертификат, откройте Windows PowerShell и запустите New-SelfSignedCertificate со следующими параметрами, чтобы создать сертификат в хранилище сертификатов пользователя на компьютере:
$cert=New-SelfSignedCertificate -Subject "CN=DaemonConsoleCert" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature
Экспортируйте этот сертификат в файл с помощью оснастки MMC Управление сертификатом пользователя, доступной на панели управления Windows.
- Выберите параметр Выполнить в меню Пуск, а затем введите certmgr.msc. Отобразится инструмент диспетчера сертификатов для текущего пользователя.
- Чтобы просмотреть свои сертификаты, в разделе Сертификаты – Текущий пользователь на панели слева разверните каталог Личный уровень.
- Щелкните правой кнопкой мыши созданный сертификат, выберите "Все задачи-экспорт>".
- Следуйте инструкциям мастера экспорта сертификатов.
Для отправки сертификата выполните следующее.
- Перейдите в Entra ID>Регистрации приложений, а затем выберите ваше приложение.
- Выберите Сертификаты и секреты.
- Выберите сертификаты, а затем нажмите кнопку "Отправить сертификат", а затем выберите сертификат (существующий сертификат или самозаверяющий сертификат, который вы экспортировали).
- Выберите Добавить.
После регистрации сертификата в приложении на портале регистрации приложения включите код конфиденциального клиентского приложения для использования сертификата.
Вариант 3. Создание нового секрета клиента
Если вы решили не использовать сертификат, можно создать новый секрет клиента.
- Перейдите в Entra ID>Регистрации приложений, а затем выберите ваше приложение.
- Выберите Сертификаты и секреты.
- Выберите секреты клиента и выберите новый секрет клиента.
- Введите описание и срок действия секрета.
- Выберите Добавить.
После сохранения секрета клиента отображается значение секрета клиента. Это отображается только один раз, поэтому скопируйте это значение и сохраните его, где приложение может получить его, как правило, где приложение сохраняет значения, например clientId
или authority
в исходном коде. Вы предоставите значение секрета вместе с идентификатором клиента приложения для входа в качестве приложения.
Вам может потребоваться настроить дополнительные разрешения на ресурсы, к которым требуется доступ приложения. Например, также следует обновить политики доступа к хранилищу ключей, чтобы предоставить приложению доступ к ключам, секретам или сертификатам.
Чтобы настроить политики доступа:
Войдите на портал Azure.
Выберите хранилище ключей и выберите политики access.
Выберите Добавить политику доступа, затем выберите ключ, секрет и разрешения сертификата, которые требуется предоставить своему приложению. Выберите созданную ранее субъект-службу.
Нажмите кнопку "Добавить", чтобы добавить политику доступа, а затем нажмите кнопку "Сохранить".