Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Подключения без пароля — это функция, не зависящая от языка, охватывающая несколько служб Azure. Несмотря на то, что текущая документация посвящена нескольким языкам и службам, в настоящее время мы находимся в процессе создания дополнительной документации для других языков и служб.
В этой статье описываются проблемы безопасности, связанные с паролями, и знакомятся с беспарольными подключениями для служб Azure.
Проблемы безопасности с паролями и секретами
Используйте осторожность при обработке паролей и секретных ключей. Никогда не помещайте их в небезопасное расположение. Многие приложения подключаются к серверной базе данных, кэшу, обмену сообщениями и службами событий с помощью имен пользователей, паролей и ключей доступа. В случае предоставления плохие субъекты могут использовать эти учетные данные для получения несанкционированного доступа к конфиденциальной информации, например каталога продаж, созданного для предстоящей кампании, или данных клиентов, которые должны быть частными.
Внедрение паролей в само приложение представляет огромный риск безопасности по многим причинам, включая обнаружение через репозиторий кода. Многие разработчики выносят такие пароли во внешнюю конфигурацию с помощью переменных среды, чтобы приложения могли загружать их в разных средах. Однако этот подход только перемещает риск из самого кода в среду выполнения. Любой, кто получает доступ к среде, может украсть пароли, что, в свою очередь, повышает риск кражи данных.
В следующем примере кода показано, как подключиться к служба хранилища Azure с помощью ключа учетной записи хранения. Многие разработчики тяготеют к этому решению, потому что оно кажется знакомым по сравнению с вариантами, с которыми они работали в прошлом, даже если это не идеальное решение. Если в настоящее время в приложении используются ключи доступа, рассмотрите возможность перехода на подключения без пароля.
// Connection using secret access keys
BlobServiceClient blobServiceClient = new(
new Uri("https://<storage-account-name>.blob.core.windows.net"),
new StorageSharedKeyCredential("<storage-account-name>", "<your-access-key>"));
Разработчики должны проявлять осторожность, чтобы никогда не раскрывать эти типы ключей или секретов в небезопасном месте. Многие компании предъявляют строгие требования к безопасности для подключения к службам Azure без раскрытия паролей разработчикам, операторам или кому-либо еще. Они часто используют хранилище для хранения и загрузки паролей в приложения, а также еще больше снижают риск за счет добавления требований и процедур смены паролей. Такой подход, в свою очередь, увеличивает сложность эксплуатации и, в поры, приводит к перебоям в подключении приложений.
Беспарольные подключения и модель "Никому не доверяй"
Теперь вы можете использовать подключения без пароля в своих приложениях для подключения к службам Azure без необходимости смены паролей. В некоторых случаях все, что вам нужно, — это конфигурация — новый код не требуется. "Никому не доверяй" использует принцип «никогда не доверяй, всегда проверяй и без учетных данных». Этот принцип означает защиту всех коммуникаций путем доверия компьютеров или пользователей только после проверки удостоверения и перед предоставлением им доступа к внутренним службам.
Рекомендуемый вариант проверки подлинности для безопасных подключений без пароля — использовать управляемые удостоверения и управление доступом на основе ролей Azure (RBAC) в сочетании. С помощью этого подхода вам не нужно вручную отслеживать и управлять множеством различных секретов для управляемых удостоверений, так как Azure безопасно обрабатывает эти задачи внутри системы.
Вы можете настроить бессерверные подключения к службам Azure с помощью соединителя служб или настроить их вручную. Соединитель служб поддерживает управляемые удостоверения в службах размещения приложений, таких как Служба приложений Azure и Контейнеры приложений Azure. Service Connector также настраивает серверные службы для подключений без пароля с помощью управляемых удостоверений и Azure RBAC, а также предоставляет приложениям необходимые сведения о подключении.
Если вы проверите рабочую среду приложения, настроенного для беспарольных подключений, вы увидите полную строку подключения. Строка подключения содержит, например, адрес сервера базы данных, имя базы данных и инструкцию по делегированию проверки подлинности подключаемому модулю проверки подлинности Azure, но не содержит паролей или секретов.
В следующем видео показано подключение приложений к службам Azure без пароля на примере приложений Java. Аналогичное освещение ожидается и для других языков.
Знакомство с DefaultAzureCredential
Вы можете использовать DefaultAzureCredential из клиентских библиотек Azure Identity для реализации подключений без пароля к службам Azure через Microsoft Entra ID и управление доступом на основе ролей (RBAC).
Это важно
Некоторые языки требуют, чтобы вы явно реализовали DefaultAzureCredential в своем коде, тогда как в других DefaultAzureCredential используется внутри через базовые плагины или драйверы.
DefaultAzureCredential поддерживает несколько методов проверки подлинности и автоматически определяет, какой метод следует использовать во время выполнения. Такой подход позволяет приложению использовать различные способы аутентификации в разных средах (локальная среда разработки и рабочая среда) без реализации кода для конкретной среды.
Порядок и расположения, в которых DefaultAzureCredential выполняется поиск учетных данных, зависят от языков:
Например, при локальной работе с .NET обычно выполняется проверка подлинности с помощью учетной записи, DefaultAzureCredential используемой для входа в Visual Studio, Azure CLI или Azure PowerShell. При развертывании приложения в Azure DefaultAzureCredential автоматически определяет и использует управляемый идентификатор соответствующей службы размещения, например Служба приложений Azure. Для этого перехода не нужно вносить изменения в код.
Замечание
Управляемое удостоверение предоставляет удостоверение безопасности для представления приложения или службы. Платформа Azure управляет удостоверением, и вам не нужно подготавливать или менять секреты. Дополнительные сведения см. в обзорной документации.
В следующем примере кода показано, как подключиться к служебная шина с помощью бессерверных подключений. В другой документации более подробно описано, как перейти на эту настройку для конкретной службы. Приложение .NET может передать экземпляр DefaultAzureCredential в конструктор класса клиента службы.
DefaultAzureCredential автоматически обнаруживает учетные данные, доступные в этой среде.
ServiceBusClient serviceBusClient = new(
new Uri("https://<your-service-bus-namespace>.servicebus.windows.net"),
new DefaultAzureCredential());
См. также
Более подробное описание подключений без пароля см. в руководстве разработчика Настройка подключений без пароля между несколькими приложениями и службами Azure.