Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Подключения без пароля — это функция, не зависящая от языка, охватывающая несколько служб 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 с помощью соединителя служб или настроить их вручную. Service Connector позволяет использовать управляемые удостоверения в службах размещения приложений, таких как Azure Spring Apps, Azure App Service и Azure Container Apps. Service Connector также настраивает серверные службы с подключениями без пароля с помощью управляемых удостоверений и Azure RBAC, а также предоставляет приложениям необходимую информацию о подключении.
Если вы проверите рабочую среду приложения, настроенного для беспарольных подключений, вы увидите полную строку подключения. Строка подключения содержит, например, адрес сервера базы данных, имя базы данных и инструкцию по делегированию проверки подлинности подключаемому модулю проверки подлинности Azure, но не содержит паролей или секретов.
В следующем видео показано подключение приложений к службам Azure без пароля на примере приложений Java. Аналогичное освещение ожидается и для других языков.
Знакомство с DefaultAzureCredential
Беспарольные подключения к службам Azure через Microsoft Entra ID и управление доступом на основе ролей (RBAC) можно реализовать с помощью DefaultAzureCredential
клиентских библиотек Azure Identity.
Это важно
Некоторые языки должны явно реализовать 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>.blob.core.windows.net"),
new DefaultAzureCredential());
См. также
Более подробное описание подключений без пароля см. в руководстве разработчика Настройка подключений без пароля между несколькими приложениями и службами Azure.