Рекомендации по обеспечению безопасности свойств приложения в идентификаторе Microsoft Entra
Безопасность является важной концепцией при регистрации приложения в идентификаторе Microsoft Entra ID и является важной частью его бизнес-использования в организации. Любая ошибка при настройке приложения может привести к простоям и компрометации. В зависимости от разрешений, добавленных в приложение, последствия могут распространиться в масштабе всей организации.
Так как для организации крайне важна безопасность приложений, любой простой из-за проблем с обеспечением безопасности может повлиять на бизнес или некоторые критически важные службы, от которых он зависит. Поэтому важно выделить время и ресурсы, чтобы приложения всегда оставались в работоспособном и безопасном состоянии. Проводите периодическую оценку безопасности и работоспособности приложений, так же как оценку модели угроз безопасности для кода. Чтобы получить более широкое представление о безопасности для организаций, ознакомьтесь со сведениями на странице жизненным циклом разработки защищенных приложений (SDL).
В этой статье описаны лучшие методики обеспечения безопасности для следующих свойств приложений:
- URI-адрес перенаправления
- Токены доступа (используются для неявных потоков)
- Сертификаты и секреты
- URI-адрес идентификатора приложения
- Владение приложением
URI-адрес перенаправления
Важно поддерживать коды URI перенаправления для приложения в актуальном состоянии. В разделе Проверка подлинности для приложения на портале Azure необходимо выбрать платформу для приложения. Затем можно определить свойство URI перенаправления.
Воспользуйтесь следующими рекомендациями для URI перенаправления:
- Поддерживайте права владения всеми URI. Провал владения одним из URI перенаправления может привести к компрометации приложений.
- Убедитесь, что все записи DNS обновляются и отслеживаются периодически для изменений.
- Не используйте подстановочные знаки в URL-адресах ответов и небезопасных схем URI, например HTTP или URN.
- Поддерживайте небольшой размер списка. Обрезайте ненужные URI. При возможности переводите URL-адреса со схемы HTTP на HTTPS.
Токены доступа (используются для неявных потоков)
В сценариях, требовавших использовать неявный поток, теперь можно применять поток кода авторизации, чтобы снизить риск компрометации, вызванной неправильным использованием неявных потоков. В разделе Проверка подлинности для приложения на портале Azure необходимо выбрать платформу для приложения. Затем можно определить свойство Маркеры доступа (используемые для неявных потоков).
Обратите внимание на следующие рекомендации, связанные с неявным потоком:
- Определите, требуется ли неявный поток. Не используйте неявный поток, если только это не требуется явным образом.
- Если приложение настроено для получения маркеров доступа с помощью неявного потока, но не использует их активно, отключите параметр для защиты от неправильного использования.
- Используйте отдельные приложения для допустимых сценариев применения неявных потоков.
Сертификаты и секреты
Сертификаты и секреты, также называемые учетными данными, являются жизненно важной частью приложения, если оно используется в качестве конфиденциального клиента. В разделе Сертификаты и секреты для приложения на портале Azure можно добавлять или удалять сертификаты и секреты.
Обратите внимание на следующие рекомендации, связанные с сертификатами и секретами:
- Обязательно используйте учетные данные на основе сертификата, если это возможно, и не используйте учетные данные на основе пароля, также называемые секретами. Хотя в качестве учетных данных удобно использовать секреты паролей, при возможности используйте исключительно сертификаты x509 при получении маркеров для приложения.
- Настройте политики методов проверки подлинности приложений для управления использованием секретов, ограничив их время существования или блокируя их использование полностью.
- Используйте Key Vault с управляемыми удостоверениями для управления учетными данными для приложения.
- Если приложение используется только как общедоступное клиентское приложение (позволяет пользователям выполнять вход с помощью общедоступной конечной точки), убедитесь, что в объекте приложения не указаны учетные данные.
- Проверяйте актуальность и срок действия учетных данных, используемых в приложении. Неиспользуемые учетные данные в приложении могут привести к нарушению безопасности. Часто выполняйте смену учетных данных и не используйте одни и те же учетные данные в разных приложениях. Не используйте много учетных данных для одного приложения.
- Наблюдайте за рабочими конвейерами, чтобы предотвратить фиксацию любых учетных данных в репозиториях кода.
- Сканер учетных данных — это средство статического анализа, с помощью которого можно обнаруживать учетные данные (и другое конфиденциальное содержимое) в исходном коде и выходных данных сборки.
URI-адрес идентификатора приложения
Свойство URI идентификатора приложения определяет глобальный уникальный URI, используемый для идентификации веб-API. Это префикс для областей и маркеров доступа, а также значение утверждения аудитории. Оно должно использовать проверенный домен, принадлежащий клиенту. Для мультитенантных приложений значение должно быть также глобально уникальным. Он также называется URI идентификатора. В разделе Предоставление API для приложения на портале Azure можно определить свойство URI идентификатора приложения.
Обратите внимание на следующие рекомендации, связанные с определением URI идентификатора приложения:
- Рекомендуется использовать схемы API или HTTPS-схемы URI. Задавайте свойство в поддерживаемых форматах, чтобы избежать конфликтов URI в организации. Не используйте подстановочные знаки.
- Используйте проверенный домен в бизнес-приложениях.
- Храните данные инвентаризации URI в своей организации, чтобы повысить уровень безопасности.
- Используйте URI идентификатора приложения для предоставления webApi в организации. Не используйте URI идентификатора приложения для идентификации приложения и вместо этого используйте свойство идентификатора приложения (клиента).
Поддерживаются следующие форматы URI идентификатора приложения на основе схемы HTTP и API. Замените значения заполнителей, как описано в списке, что находится под таблицей.
Поддерживаемый идентификатор приложения Форматы URI |
Пример: URI идентификатора приложения |
---|---|
api://<appId> | api://00001111-aaaa-2222-bbbb-3333cccc4444 |
api://<tenantId>/<appId> | api://aaaabbbb-0000-cccc-1111-dddd2222eeee/00001111-aaaa-2222-bbbb-3333cccc4444 |
api://<tenantId>/<string> | api://aaaabbbb-0000-cccc-1111-dddd2222eeee/api |
api://<строка>/<appId> | api://productapi/00001111-aaaa-2222-bbbb-3333cccc4444 |
https://<tenantInitialDomain>.onmicrosoft.com/<string> | https://contoso.onmicrosoft.com/productsapi |
https://<verifiedCustomDomain>/<string> | https://contoso.com/productsapi |
https://<string>.<verifiedCustomDomain> | https://product.contoso.com |
https://<string>.<verifiedCustomDomain>/<string> | https://product.contoso.com/productsapi |
- <appId> — свойство идентификатора приложения (appId) объекта приложения.
- <string> — строковое значение для узла или сегмента пути к API.
- <tenantId> — идентификатор GUID, созданный Azure для представления клиента в Azure.
- <tenantInitialDomain> - <tenantInitialDomain>.onmicrosoft.com, где <tenantInitialDomain> — это исходное доменное имя, которое создатель клиента задает при создании клиента.
- <verifiedCustomDomain> — проверенный личный домен , настроенный для клиента Microsoft Entra.
Примечание.
Если вы используете схему api://, строковое значение нужно добавить непосредственно после "api://". Пример: api://<строка>. Это строковое значение может быть идентификатором GUID или произвольной строкой. Если добавить значение идентификатора GUID, оно должно совпадать с идентификатором приложения или идентификатором арендатора. Значение URI идентификатора приложения должно быть уникальным для вашего арендатора. Если вы добавите api://<tenantId> в качестве URI идентификатора приложения, никто другой не сможет использовать этот URI в другом приложении. Мы рекомендуем вместо этого использовать api://<appId> или схему HTTP.
Внимание
Значение URI идентификатора приложения не должно заканчиваться символом косой черты "/".
Настройка владения приложениями
Владельцы могут управлять всеми аспектами зарегистрированного приложения. Важно регулярно проверять права владения всеми приложениями в организации. Дополнительные сведения см. в обзоре доступа Microsoft Entra. В разделе Владельцы для приложения на портале Azure можно управлять владельцами приложения.
Обратите внимание на следующие рекомендации, связанные с указанием владельцев приложений:
- Права владения приложением должны быть предоставлены как можно меньшему количеству пользователей в организации.
- Администратору следует просматривать список владельцев каждые несколько месяцев, чтобы убедиться, что владельцы по-прежнему являются частью организации и им по-прежнему должно принадлежать приложение.
Помощник по интеграции
Помощник по интеграции на портале Azure помогает обеспечить высокое качество приложения и безопасную интеграцию. Помощник по интеграции предоставляет сведения о лучших методиках и рекомендации, которые помогут вам избежать распространенных ошибок при интеграции с платформой удостоверений Майкрософт.
Следующие шаги
- Дополнительные сведения см. в статье Поток кода авторизации OAuth 2.0.