В этом руководстве представлены общие сведения о подписывании кода с помощью Azure DevOps с использованием сертификата, хранящегося в Azure Key Vault. Для выполнения этих инструкций вам потребуется:
- An Учетная запись Azure
- A DevOps проект
- A Хранилище ключей
- A сертификат подписи кода установлен в вашем Key Vault. Вы также можете:
Перейдите к этой статье, чтобы узнать, как интегрировать eSigner с Azure DevOps: Руководство по интеграции подписи в облаке Azure DevOps.
Зарегистрируйте приложение Azure
Во-первых, вам необходимо зарегистрировать новое приложение Azure, чтобы вы могли подключиться к Key Vault для подписи.
- Войдите в Лазурный портал.
- Перейдите в Azure Active Directory, (Нажмите Дополнительные услуги если значок Azure Active Directory не отображается.)
- Нажмите Регистрация приложений, в левом столбце.
- Нажмите Новая регистрация.
- Дайте вашему заявлению Фамилия И нажмите Зарегистрируйтесь кнопка. Оставьте остальные настройки по умолчанию.
- Ваше новое приложение зарегистрировано. Скопируйте и сохраните показанное значение для ID приложения (клиента), потому что он вам понадобится позже.
Создать секрет клиента
Затем сгенерируйте секрет клиента, который будет использоваться в качестве учетных данных при подписании.
- Нажмите Сертификаты и секреты в левом меню.
- Нажмите Секрет нового клиента.
- Дайте секрету вашего клиента Описание, установите срок действия по желанию и щелкните Добавить .
- Скопируйте Значение секрета вашего нового клиента немедленно и сохраните его в надежном месте. В следующий раз, когда страница будет обновлена, это значение будет замаскировано и безвозвратно.
Включить доступ в Key Vault
Теперь вам нужно включить доступ для вашего приложения в Azure Key Vault.
- Перейдите к Key Vault, содержащему сертификат, который вы хотите использовать для подписи, и щелкните значок Политики доступа ссылку.
- Нажмите Добавить политику доступа.
- Под Ключевые разрешения, включить
Verify
,Sign
,Get
качестваList
.
- Под Секретные разрешения, включить
Get
иList
.
- Под Разрешения сертификата, включить
Get
иList
.
- Нажмите Не выбрано, ничего не выбрано ссылка, под Выбрать принципала, затем с помощью поля поиска найдите и выберите приложение, созданное в предыдущем разделе.
- Нажмите Выберите .
- Нажмите Добавить .
- Нажмите Сохранить.
- Ваша политика доступа настроена.
Настроить DevOps Build
Теперь вы можете настроить свою сборку. Откройте свой проект в Azure DevOps.
Хранить учетные данные приложения в виде переменных
Вы можете включить свой идентификатор приложения и секрет клиента непосредственно в файл конвейера YAML, но это будет более безопасно, если вы сохраните их как переменные в DevOps.
- Нажмите Трубопроводы.
- Нажмите Библиотека.
- Нажмите + Группа переменных.
- Дайте вашей группе переменных имя.
- Нажмите Добавить.
- Введите имя переменной для идентификатора вашего приложения, затем вставьте значение. Нажмите на замок, чтобы зашифровать переменную, когда закончите.
- Повторите процесс, чтобы добавить переменную для секрета вашего клиента.
- Нажмите Сохранить.
- Свяжите группу переменных в своем конвейере. (замените VARIABLE-GROUP именем вашей фактической группы переменных.)
переменные: - group: 'VARIABLE-GROUP'
Добавление шага конвейера для установки средства подписи Azure
Инструмент подписи Azure это утилита с открытым исходным кодом, которая предлагает ЗнакИнструмент функциональность сертификатов и ключей, хранящихся в Azure Key Vault. Добавьте в конвейер следующий шаг для установки Azure Sign Tool:
- задача: DotNetCoreCLI @ 2 входа: команда: 'custom' custom: 'tool' arguments: 'install --global azuresigntool' displayName: Install AzureSignTool
Добавление команды средства подписи Azure в конвейер
- Теперь вы можете добавить задачу для подписи кода в конвейер. Вам понадобится следующая информация:
- Добавьте вызов Azure Sign Tool в свой конвейер. Замените значения, указанные заглавными буквами, вашими фактическими значениями:
- задача: CmdLine @ 2 входа: скрипт: AzureSignTool sign -kvu "KEY-VAULT-URI" -kvi "$ (APPLICATION-ID-VAR)" -kvs "$ (CLIENT-SECRET-VAR)" -kvc CERTIFICATE-NAME -tr "http://ts.ssl.com" -td sha256 "FILE-TO-SIGN" displayName: Sign Code
- Если подписание прошло успешно, вы должны увидеть такой вывод:
информация: AzureSignTool.Program [0] => Файл: D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe Файл подписи D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe Информация: AzureSignTool. Программа [0] => Файл: D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe Подпись для файла D: \ a \ 1 \ s \ x64 \ Debug \ HelloWorld.exe успешно завершена.