Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В Visual Studio 2022 версии 17.8 (предварительная версия 2) и более поздних версий вы можете подписать пакеты UWP и настольных приложений с помощью сертификата из Azure Key Vault. Этот инструмент отправляет дайджест пакета приложения (хэш) в Azure Key Vault для криптографической подписи выбранным сертификатом. Затем подписанный дайджест возвращается и прикрепляется к вашему пакету локально.
Это важно
Этот процесс является безопасным. Закрытый ключ сертификата никогда не покидает Azure Key Vault.
Предпосылки
- Учетная запись Azure. Если у вас еще нет учетной записи Azure, запустите здесь.
- Один Azure Key Vault. Дополнительные сведения см. в разделе "Создание Key Vault".
- Допустимый сертификат подписи пакета, импортированный в Azure Key Vault. Сертификат по умолчанию, созданный Azure Key Vault, не будет работать для подписывания кода. Дополнительные сведения о создании сертификата подписи пакета см. в статье "Создание сертификата для подписи пакета".
Импорт сертификата в Key Vault
Добавление сертификата в Key Vault очень просто. В этом примере мы добавим действительный сертификат подписи кода UWP с именем UwpSigningCert.pfx.
- На страницах свойств Key Vault выберите сертификаты.
- Щелкните Создать/Импортировать.
- На экране "Создание сертификата" выберите следующие значения:
- Метод создания сертификата: импорт
- Имя сертификата: UwpSigningCert
- Отправка файла сертификата: UwpSigningCert.pfx
- Расшифровка сертификата: если сертификат защищен паролем, укажите его в поле "Пароль ".
- Нажмите кнопку Создать.
Замечание
Этот самозаверяющий сертификат не будет доверен Windows, если он не был импортирован и доверен администратором. Обеспечьте безопасность всех сертификатов, включая самозаверяющий сертификат.
Настройка политик доступа для Key Vault
Вы можете контролировать доступ к содержимому Key Vault с помощью политик доступа. Политики доступа Key Vault предоставляют разрешения отдельно ключам, секретам и сертификатам. Вы можете предоставить пользователю доступ только к ключам, а не к секретам. Разрешения доступа для ключей, секретов и сертификатов управляются на уровне хранилища. Дополнительные сведения см. в статье Безопасность Azure Key Vault.
Замечание
При создании Key Vault в подписке Azure он автоматически связывается с клиентом Azure Active Directory подписки. Любой пользователь, пытающийся управлять или извлекать содержимое из Key Vault, должен пройти проверку подлинности Azure AD.
- На страницах свойств Key Vault выберите политики доступа.
- Выберите + Добавить политику доступа.
- Щелкните раскрывающийся список разрешений на сертификат и установите флажки для получения и списка в разделе "Операции управления сертификатами".
- Щелкните раскрывающийся список "Разрешения секретов" и установите флажки для получения и списка в разделе "Операции управления секретами".
- Щелкните "Выбрать участника", найдите пользователя, которому вы предоставляете доступ, и нажмите "Выбрать".
- Нажмите кнопку Добавить.
- Сохраните изменения, нажав кнопку "Сохранить".
Замечание
Предоставление пользователям прямого доступа к хранилищу ключей не рекомендуется. В идеале пользователи должны быть добавлены в группу Azure AD, которая, в свою очередь, предоставляет доступ к хранилищу ключей.
Выбор сертификата из Key Vault в Visual Studio
Мастер создания пакетов приложений в Visual Studio позволяет выбрать сертификат, который будет использоваться для подписи пакета приложения. Вы можете выбрать сертификат подписи пакета с помощью Azure Key Vault. Необходимо указать универсальный код ресурса (URI) хранилища ключей, который содержит сертификат, и учетная запись Майкрософт, проверенная в Visual Studio, должна иметь правильные разрешения для доступа к нему.
- Откройте проект приложения UWP или проект упаковки классических приложений Windows в Visual Studio.
- Выберите Опубликовать ->Пакет ->Создать пакеты приложений..., чтобы открыть мастер Создания пакетов приложений.
- На странице «Выбор способа распространения» выберите «Сторонняя загрузка».
- На странице "Выбор метода подписывания" щелкните "Выбрать" из Azure Key Vault....
- После появления диалогового окна Выбора сертификата из Azure Key Vault используйте средство выбора учетной записи, чтобы выбрать учетную запись, для которой настроена политика доступа.
- Введите URI хранилища ключей. Универсальный код ресурса (URI) можно найти на странице обзора хранилища ключей и определяется DNS-именем.
- Нажмите кнопку "Просмотреть метаданные ".
- После завершения загрузки сертификатов выберите нужный из списка (например, UwpSigningCert).
- Нажмите кнопку ОК.
Расшифровка сертификата паролем из Azure Key Vault
Если вы используете локальный сертификат, защищенный паролем (PFX), для подписывания пакета приложения может быть трудно управлять паролем, используемым для расшифровки. При импорте сертификата в мастере создания пакетов приложений вам будет предложено вручную ввести пароль. Кроме того, можно выбрать пароль из Azure Key Vault.
- Откройте проект приложения UWP или проект упаковки классических приложений Windows в Visual Studio.
- Выберите Опубликовать ->Пакет ->Создать пакеты приложений..., чтобы открыть мастер Создания пакетов приложений.
- На странице «Выбор способа распространения» выберите «Сторонняя загрузка».
- На странице "Выбор метода подписывания" нажмите кнопку "Выбрать из файла..".
- После появления диалогового окна "Сертификат защищен паролем", нажмите "Выбрать пароль из Key Vault".
- После появления диалогового окна выбора пароля из Azure Key Vault используйте средство выбора учетной записи, чтобы выбрать учетную запись, для которой настроена политика доступа.
- Введите URI хранилища ключей. Универсальный код ресурса (URI) можно найти на странице обзора хранилища ключей и определяется DNS-именем.
- Нажмите кнопку "Просмотреть метаданные ".
- После завершения загрузки паролей выберите нужный из списка (например, UwpSigningCertPassword).
- Нажмите кнопку ОК.
Активировать вход в сценариях CI/CD
Чтобы включить аутентификацию в контексте сценариев CI/CD, необходимо настроить конвейер для использования DefaultAzureCredential для проверки подлинности в сервисе Azure Key Vault. DefaultAzureCredential попытается использовать удостоверение агента конвейера для доступа к Key Vault, если у него есть соответствующие разрешения. Вместо этого можно указать служебный принципал или управляемое удостоверение для использования при проверке подлинности.