Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
Служба подписывания Device Guard версии 2 (DGSS) больше не доступна. Microsoft Store для бизнеса и Microsoft Store для образования, которые требовали DGSS для аутентификации и разрешений, были закрыты 31 марта 2023 года.
Для подписывания корпоративного кода используйте Azure Trusted Signing, которая является службой-преемником. Azure Trusted Signing предоставляет жизненный цикл управляемых сертификатов, интегрируется с конвейерами SignTool и CI/CD и поддерживает MSIX, файлы каталогов и подписывание политик WDAC. Для получения актуальных сведений см. Подписание пакета MSIX: руководство от начала до конца.
Содержимое ниже сохраняется только для исторической ссылки.
Служба подписывания кода Device Guard Signing Service версии 2 (DGSS) поставляется с вашей существующей учетной записью Microsoft Store для бизнеса и образования. DGSS можно использовать для подписывания бизнес-приложений, файлов каталога и политики управления приложениями Windows Defender (WDAC). Это позволяет предприятиям гарантировать, что каждое приложение поступает из надежного источника. Вы можете использовать SignTool в комплекте Windows SDK и библиотеку DGSSv2 из пакета NuGet для подписывания ваших приложений MSIX с использованием Device Guard. Эта функция упрощает включение подписывания Device Guard в процесс сборки и подписывания MSIX-пакетов.
Доступен пакет NuGet, содержащий необходимые компоненты DGSS версии 2 и документацию по миграции. Ознакомьтесь с условиями использования Майкрософт, включенными в пакет NuGet. Обратите внимание, что использование DGSS подразумевает принятие этих условий. Для любых вопросов обратитесь к нам по адресу DGSSMigration@microsoft.com.
Примечание.
Скачав microsoft.acs/dgss.client.nupkg, можно переименовать расширение в .zip и извлечь содержимое, включая файлы, дополнительную документацию и информацию.
Для подписывания Device Guard требуются разрешения в Microsoft Store для бизнеса и используется проверка подлинности Azure Active Directory (AD). Чтобы подписать пакет MSIX с помощью подписи Device Guard, выполните следующие действия.
- В Microsoft Store для бизнеса (или Microsoft Store для образования) назначьте себе роль с разрешениями, необходимыми для подписи Device Guard.
Примечание.
Эту страницу необходимо использовать только для настройки разрешений для подписи Device Guard.
- Зарегистрируйте приложение на портале Azure с соответствующими параметрами, чтобы использовать проверку подлинности Azure AD с Microsoft Store для бизнеса.
- Получение маркера доступа Azure AD в формате JSON.
- Запустите SignTool, чтобы подписать пакет MSIX с помощью подписи Device Guard и передать маркер доступа Azure AD, полученный на предыдущем шаге.
В следующих разделах подробно описаны эти действия.
Настройка разрешений на подпись в Device Guard
Чтобы использовать функцию подписания Device Guard в Microsoft Store для бизнеса или Microsoft Store для образования, требуется роль Device Guard signer. Это роль с наименьшими привилегиями, которая имеет возможность подписи. Другие роли, такие как глобальный администратор и владелец учетной записи для выставления счетов, также могут авторизоваться.
Примечание.
Роль подписывающего Device Guard используется для подписания приложений. Глобальный администратор и владелец учетной записи выставления счетов используются, когда вы зарегистрированы как вошедший в систему пользователь.
Чтобы подтвердить или переназначить роли, выполните приведенные ниже действия.
- Войдите в Microsoft Store для бизнеса.
- Выберите "Управление" и выберите "Разрешения".
- Просмотр ролей.
Дополнительные сведения см. в разделе "Роли и разрешения" в Microsoft Store для бизнеса и образования.
Регистрация приложения в портал Azure
Чтобы зарегистрировать приложение с соответствующими параметрами, чтобы использовать проверку подлинности Azure AD с помощью Microsoft Store для бизнеса:
Перейдите к разделу https://portal.azure.com и авторизуйтесь в качестве глобального администратора арендатора
Перейдите к службе Azure Active Directory Azure.
В меню слева в разделе Manage найдите и выберите Регистрация приложений
В строке меню выберите "Создать регистрацию"
В поле "Имя" введите DGSSv2.
Примечание.
Поле "Имя" используется для простой идентификации регистрации приложения на портале Azure. Любое нужное имя можно использовать. Для этой демонстрации мы используем DGSSv2, чтобы упростить идентификацию.
В разделе "Поддерживаемые типы учетных записей " выберите соответствующий параметр.
- Учетные записи в этом каталоге организации (только один клиент) — этот параметр рекомендуется, если вам не требуется многотенантное развертывание. Все учетные записи пользователей и гостевые учетные записи в вашем каталоге могут использовать ваше приложение или API.
- Accounts в любом каталоге организации (любой каталог Azure AD — Multitenant) — этот вариант лучше всего подходит для организации с несколькими клиентами Azure AD, но требуется только одна точка доверия для подписи кода. Все пользователи с рабочей или учебной учетной записью из Майкрософт могут использовать приложение или API. К ним относятся школы и предприятия, использующие Office 365.
- Учетные записи в любом каталоге организации (любой каталог Azure AD — Мультитенант) и личные учетные записи Майкрософт (например, Skype, Xbox) — этот параметр не рекомендуется из-за того, что он открыт для использования учетными записями Майкрософт потребительского уровня. Все пользователи с рабочей, учебной или личной учётной записью Microsoft могут использовать ваше приложение или API. Она включает школы и предприятия, использующие Office 365, а также личные учетные записи, которые используются для входа в такие услуги, как Xbox и Skype.
- Персональные учетные записи Майкрософт только — как и последний параметр, этот параметр также не рекомендуется. Это не только потому, что это позволяет только личные учетные записи, но и потому, что данный параметр поддерживает только личные учетные записи. Учетные записи Azure AD явно заблокированы. Личные учетные записи, используемые для входа в такие службы, как Xbox и Skype
В раскрывающемся списке Redirect URI выберите общедоступный клиент/собственный (мобильный и настольный). Введите
https://dgss.microsoft.comв текстовое поле.Щелкните Зарегистрировать.
В правом верхнем углу страницы найдите запись с меткой "Redirect URIs". Выберите строку под ней с меткой 0 web, 0 spa, 1 общедоступный клиент
Найдите записи с меткой "Разрешить общедоступные потоки клиентов" в разделе "Дополнительные параметры". Задайте это значение как Да
Нажмите кнопку " Сохранить " в верхней части страницы
В меню слева выберите разрешения API
В меню выберите Add a permission. Во всплывающем меню выберите вкладку APIs моей организации использует. В поле поиска введите Windows Store для бизнеса
Примечание.
Если Windows Store для бизнеса не отображается в списке, откройте новую вкладку браузера и перейдите на портал Microsoft Store для бизнеса (теперь прекращено), а затем войдите в качестве глобального администратора клиента. Закройте вкладку браузера, а затем снова выполните поиск.
- Выберите Windows Store for Business, а затем выберите Делегированные разрешения. Проверьте user_impersonation.
- Нажмите кнопку "Добавить разрешения" в нижней части страницы . В меню слева выберите Обзор , чтобы вернуться к обзору регистрации приложений DGSSv2.
Получите токен доступа Azure AD
Затем получите маркер доступа Azure AD для приложения Azure AD в формате JSON. Это можно сделать с помощью различных языков программирования и сценариев. Дополнительные сведения об этом процессе см. в разделе Авторизация доступа к веб-приложениям Azure Active Directory с использованием потока предоставления кода OAuth 2.0. Рекомендуется получить токен обновления вместе с токеном доступа, так как срок действия токена доступа истекает через час.
Примечание.
Если Windows Store для бизнеса не отображается в списке, откройте новую вкладку браузера и перейдите на портал Microsoft Store для бизнеса (теперь прекращено), а затем войдите в качестве глобального администратора клиента. Закройте вкладку браузера, а затем снова выполните поиск.
В следующем примере PowerShell показано, как запросить маркер доступа.
function GetToken()
{
$c = Get-Credential -Credential $user
$Credentials = New-Object System.Management.Automation.PSCredential -ArgumentList $c.UserName, $c.password
$user = $Credentials.UserName
$password = $Credentials.GetNetworkCredential().Password
$tokenCache = "outfile.json"
#replace <application-id> and <client_secret-id> with the Application ID from your Azure AD application registration
$Body = @{
'grant_type' = 'password'
'client_id'= '<application-id>'
'client_secret' = '<client_secret>'
'resource' = 'https://onestore.microsoft.com'
'username' = $user
'password' = $password
}
$webpage = Invoke-WebRequest 'https://login.microsoftonline.com/common/oauth2/token' -Method 'POST' -Body $Body -UseBasicParsing
$webpage.Content | Out-File $tokenCache -Encoding ascii
}
Примечание.
Рекомендуется сохранить JSON-файл для последующего использования.
Получите DLL для подписи Device Guard версии 2
Чтобы подписать с помощью Device Guard Signing версии 2, получите Майкрософт.Acs.Dlib.dll, скачав пакет NuGet Package, который будет использоваться для подписи вашего пакета. Это также необходимо для получения корневого сертификата.
Подпишите посылку
После получения маркера доступа Azure AD вы готовы использовать SignTool для подписания вашего пакета с помощью подписи Device Guard. Дополнительные сведения об использовании SignTool для подписывания пакетов см. в разделе "Подпись пакета приложения" с помощью SignTool.
В следующем примере командной строки показано, как подписать пакет с помощью Device Guard подписи версии 2.
signtool sign /fd sha256 /dlib Microsoft.Acs.Dlib.dll /dmdf <Azure AAD in .json format> /t <timestamp-service-url> <your .msix package>
Примечание.
- Сертификаты, созданные для подписи Device Guard версии 2, действительны в течение одного дня. Рекомендуется использовать один из вариантов метки времени при подписи пакета. Если метка времени не применяется, срок действия подписи истекает в один день, и приложению потребуется уйти в отставку.
- Убедитесь, что имя издателя в манифесте пакета соответствует сертификату, который вы используете для подписи пакета. Эта функция сделает ваш сертификат листовым. Например, если конечный сертификат — CompanyName, то имя издателя в манифесте должно быть CN=CompanyName. В противном случае операция подписывания завершится ошибкой.
- Поддерживается только алгоритм SHA256.
- Когда вы подписываете пакет с помощью подписи Device Guard, ваш пакет не отправляется через Интернет.
Тест
Чтобы провести тест, загрузите корневой сертификат, щелкнув здесь или скачав пакет NuGet Package, затем получите его с помощью команды:
Get-RootCertificate
Установите корневой сертификат в Доверенные корневые центры сертификации на устройстве. Установите новое подписанное приложение, чтобы убедиться, что приложение успешно подписано с помощью подписи Device Guard.
Внимание
Чтобы обеспечить изоляцию, разверните политику CI WDAC, чтобы приложения считались доверенными, если они подписаны через DGSSv2. Обязательно прочитайте документацию readme_cmdlets и документацию по миграции с DGSSv1 на DGSSv2, которые включены в пакет NuGet.
Распространенные ошибки
Ниже приведены распространенные ошибки, которые могут возникнуть.
- 0x800700d. Эта распространенная ошибка означает, что формат файла Azure AD JSON недействителен.
- Перед скачиванием корневого сертификата подписывания Device Guard может потребоваться принять условия Microsoft Store для бизнеса. Это можно сделать, получив бесплатное приложение на портале.