Повышение устойчивости проверки подлинности и авторизации в разрабатываемых управляющих приложениях
Узнайте, как использовать платформа удостоверений Майкрософт и Azure Active Directory (Azure AD) для повышения устойчивости управляющих приложений. Сведения о фоновых процессах, службах, серверных приложениях и приложениях без пользователей.
См. статью Что такое платформа удостоверений Майкрософт?
На следующей схеме показана управляющая программа, выполняющая вызов платформа удостоверений Майкрософт.
Управляемые удостоверения для ресурсов 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 и 5xx
В следующих разделах описаны коды ошибок HTTP 429 и 5xx.
HTTP 429
Существуют ошибки HTTP, влияющие на устойчивость. Если приложение получает код ошибки HTTP 429 "Слишком много запросов", платформа удостоверений Майкрософт регулирует запросы, что не позволяет приложению получать маркеры. Убедитесь, что приложения не пытаются получить маркер до тех пор, пока не истечет время в поле " Повторить после ответа". Ошибка 429 часто указывает, что приложение неправильно кэширует и повторно использует маркеры.
HTTP 5xx
Если приложение получает код ошибки HTTP 5x, приложение не должно входить в цикл быстрых повторных попыток. Убедитесь, что приложения ожидают истечения срока действия поля Retry-After . Если в ответе нет Retry-After заголовка, используйте экспоненциальную повторную попытку с первой попыткой, по крайней мере через 5 секунд после ответа.
Когда истекает время ожидания запроса, убедитесь, что приложения не повторяют попытку немедленно. Используйте указанную ранее экспоненциальную повторную попытку.