Повышение устойчивости проверки подлинности и авторизации в разрабатываемых управляющих приложениях

Узнайте, как использовать идентификатор платформа удостоверений Майкрософт и Microsoft Entra для повышения устойчивости приложений управляющей программы. Сведения о фоновых процессах, службах, серверах и серверах приложений без пользователей.

См. статью Что такое платформа удостоверений Майкрософт?

На следующей схеме показана управляющая программа, которая вызывает платформа удостоверений Майкрософт.

A daemon application making a call to Microsoft identity platform.

Управляемые удостоверения для ресурсов Azure

Если вы создаете приложения управляющей программы в Microsoft Azure, используйте управляемые удостоверения для ресурсов Azure, которые обрабатывают секреты и учетные данные. Эта функция повышает устойчивость, обрабатывая срок действия сертификата, поворот или доверие.

См. сведения об управляемых удостоверениях для ресурсов Azure?

Управляемые удостоверения используют маркеры доступа и сведения из платформа удостоверений Майкрософт для получения новых маркеров до истечения срока действия маркеров. Приложение запускается при получении новых маркеров.

Управляемые удостоверения используют региональные конечные точки, которые помогают предотвратить сбои вне региона путем консолидации зависимостей служб. Региональные конечные точки помогают сохранить трафик в географической области. Например, если ресурс Azure находится в WestUS2, весь трафик остается в WestUS2.

Библиотека проверки подлинности Майкрософт

Если вы разрабатываете приложения управляющей программы и не используете управляемые удостоверения, используйте библиотеку проверки подлинности Майкрософт (MSAL) для проверки подлинности и авторизации. MSAL упрощает процесс предоставления учетных данных клиента. Например, приложению не нужно создавать и подписывать утверждения веб-токена JSON с учетными данными на основе сертификатов.

См. общие сведения о библиотеке проверки подлинности Майкрософт (MSAL)

Microsoft.Identity.Web для разработчиков .NET

Если вы разрабатываете приложения управляющей программы на ASP.NET Core, используйте библиотеку Microsoft.Identity.Web для упрощения авторизации. Она включает стратегии распределенного кэша маркеров для распределенных приложений, работающих в нескольких регионах.

Подробнее:

Кэширование и хранение токенов

Если вы не используете MSAL для проверки подлинности и авторизации, существуют рекомендации по кэшированию и хранению маркеров. MSAL реализует и следует этим рекомендациям.

Приложение получает маркеры от поставщика удостоверений (IdP), чтобы авторизовать приложение для вызова защищенных API. Когда приложение получает маркеры, ответ с маркерами содержит expires\_in свойство, которое сообщает приложению, как долго кэшировать и повторно использовать маркер. Убедитесь, expires\_in что приложения используют свойство для определения срока существования маркера. Убедитесь, что приложение не пытается декодировать маркер доступа API. Использование кэшированного маркера предотвращает ненужный трафик между приложением и платформа удостоверений Майкрософт. Пользователи вошли в приложение в течение всего времени существования маркера.

Коды ошибок HTTP 429 и 5xxx

Используйте следующие разделы, чтобы узнать о кодах ошибок HTTP 429 и 5xxx

HTTP 429

Существуют ошибки HTTP, влияющие на устойчивость. Если приложение получает код ошибки HTTP 429, слишком много запросов, платформа удостоверений Майкрософт регулирует запросы, что предотвращает получение маркеров приложения. Убедитесь, что приложения не пытаются получить маркер до истечения срока действия поля ответа Retry-After . Ошибка 429 часто указывает, что приложение не кэширует и повторно использует маркеры.

HTTP 5xx

Если приложение получает код ошибки HTTP 5x, приложение не должно вводить быстрый цикл повторных попыток. Убедитесь, что приложения будут ожидать истечения срока действия поля Retry-After . Если ответ не предоставляет заголовка Retry-After, используйте экспоненциальную повторную попытку с первым повторным повтором, по крайней мере через 5 секунд после ответа.

Когда время ожидания запроса истекает, убедитесь, что приложения не повторяют попытку немедленно. Используйте ранее упоминаемую экспоненциальную повторную попытку.

Следующие шаги