Signer un package MSIX avec une signature Device Guard
Important
Microsoft Store pour Entreprises et Microsoft Store pour Éducation a été retiré au premier trimestre 2023. Pour plus d’informations sur ce changement, consultez Évolution de la Microsoft Store pour Entreprises et de l’éducation.
Vous pouvez continuer à utiliser les fonctionnalités actuelles du service de signature Device Guard v2 (DGSS) jusqu’à ce moment-là. DGSS sera remplacé par le service de signature de code Azure (ACS) et prendra en charge vos besoins de signature de fichiers de catalogue et de stratégie Windows Defender Application Control (WDAC).
Le service de signature Device Guard v2 (DGSS) est un service de signature de code fourni avec votre compte client Microsoft Store pour Entreprises et Éducation existant. Vous pouvez utiliser dgSS pour signer des applications métier, des fichiers catalogue et des stratégies WDAC (Windows Defender Application Control). Elle permet aux entreprises de garantir que chaque application provient d’une source approuvée. Vous pouvez utiliser SignTool dans le Kit de développement logiciel (SDK) Windows et le dlib DGSSv2 dans le package NuGet pour signer vos applications MSIX avec la signature Device Guard. Cette prise en charge des fonctionnalités vous permet d'intégrer facilement la signature Device Guard dans le workflow de création et de signature du package MSIX.
Un package NuGet contenant les composants DGSS v2 requis et la documentation de migration est disponible. Lisez les conditions d'utilisation de Microsoft incluses dans le package NuGet ; notez que l’utilisation de DGSS implique l’acceptation de ces conditions. Pour toute question, contactez-nous à DGSSMigration@microsoft.com.
Remarque
Après avoir téléchargé microsoft.acs/dgss.client.nupkg, vous pouvez le renommer en .zip et en extraire le contenu pour obtenir des fichiers, de la documentation et des informations supplémentaires
La signature Device Guard nécessite des autorisations dans le Microsoft Store pour Entreprises et utilise l’authentification Azure Active Directory (AD). Pour signer un package MSIX avec une signature Device Guard, suivez ces étapes.
- Dans le Microsoft Store pour Entreprises (ou Microsoft Store pour Éducation), attribuez-vous un rôle avec les autorisations nécessaires pour effectuer la signature Device Guard.
Remarque
Vous devez uniquement utiliser ce portail pour configurer les autorisations pour la signature Device Guard.
- Inscrivez votre application dans le Portail Azure avec les paramètres appropriés pour pouvoir utiliser Azure AD Authentication avec le Microsoft Store pour Entreprises.
- Obtenez un jeton d’accès Azure AD au format JSON.
- Exécutez SignTool pour signer votre package MSIX avec la signature Device Guard et transmettez le jeton d’accès Azure AD que vous avez obtenu à l’étape précédente.
Les sections suivantes décrivent ces étapes plus en détail.
Configurer des autorisations pour la signature Device Guard
Pour utiliser la signature Device Guard au Microsoft Store pour Entreprises ou Microsoft Store pour Éducation, vous avez besoin du rôle de signataire Device Guard. Il s’agit du rôle de privilège minimum qui a la possibilité de signer. D’autres rôles tels que Administrateur général et propriétaire du compte de facturation peuvent également signer.
Remarque
Le rôle Signataire Device Guard est utilisé lorsque vous vous connectez en tant qu’application. L’administrateur général et propriétaire du compte de facturation sont utilisés lorsque vous vous connectez en tant que personne connectée.
Pour confirmer ou réattribuer des rôles :
- Connectez-vous au Microsoft Store pour Entreprises.
- Sélectionnez Gérer, puis Autorisations.
- Afficher les Rôles.
Pour plus d’informations, consultez Rôles et autorisations dans Microsoft Store pour Entreprises et Éducation.
Inscrivez votre application dans le portail Azure
Pour inscrire votre application avec les paramètres appropriés afin de pouvoir utiliser Azure AD Authentication avec le Microsoft Store pour Entreprises :
Accédez à https://portal.azure.com, puis authentifiez-vous en tant qu’administrateur général du locataire
Naviguez jusqu'au service Azure Azure Active Directory.
Dans le menu de gauche, sous Gérer, localisez et sélectionnez Inscriptions d'applications
Dans la barre des menus, sélectionnez Nouvelle inscription
Dans le champ Nom, entrez DGSSv2.
Remarque
Le champ Nom est utilisé pour faciliter l'identification de l'inscription de l'application dans le portail Azure. Tout nom souhaité peut être utilisé. Dans le cadre de cette démonstration, nous utilisons simplement DGSSv2 pour faciliter l’identification.
Sous Types de comptes pris en charge, sélectionnez le paramètre approprié.
- Comptes dans cet annuaire d’organisation uniquement (client unique) : cette option est recommandée, sauf si vous avez besoin d’un déploiement multi-locataire. Tous les comptes d’utilisateur et d’invité de votre répertoire peuvent utiliser votre application ou votre API.
- Comptes dans n’importe quel annuaire organisationnel (n’importe quel annuaire Azure AD - Multi-locataire) : cette option est la meilleure pour une organisation qui a plusieurs locataires Azure AD, mais a uniquement besoin d’un point de confiance unique pour le code de signature. Tous les utilisateurs avec un compte professionnel ou scolaire Microsoft peuvent utiliser votre application ou API. Ceci inclut les établissements scolaires et les entreprises qui utilisent Office 365.
- Comptes dans n’importe quel annuaire organisationnel (n’importe quel annuaire Azure AD - Multi-locataire) et comptes Microsoft personnels (par exemple, Skype, Xbox) : cette option n’est pas recommandée en raison de son ouverture d’utilisation par les comptes Microsoft au niveau du consommateur. Tous les utilisateurs avec un compte professionnel ou scolaire, ou un compte personnel Microsoft, peuvent utiliser votre application ou API. Ceci inclut les établissements scolaires et les entreprises qui utilisent Office 365, ainsi que des comptes personnels utilisés pour se connecter à des services tels que Xbox et Skype.
- Comptes Microsoft personnels uniquement : comme la dernière option, cette option n’est pas recommandée. Cela n’est pas seulement parce qu’il autorise les compte personnel, mais parce que cette option prend uniquement en charge les compte personnel s. Les comptes Azure AD sont explicitement bloqués. Comptes personnels utilisés pour se connecter à des services tels que Xbox et Skype
Dans le menu déroulant URI de redirection, sélectionnez Public client/native (mobile et bureau) dans le menu déroulant de sélection. Entrez
https://dgss.microsoft.com
dans la zone de texte.Cliquez sur S’inscrire
En haut à droite de la page, recherchez les URI de redirection étiquetés entrée. Sélectionnez la ligne située sous l’étiquette 0 web, 0 spa, 1 client public
Recherchez l’entrée intitulée Autoriser les flux de clients publics dans la section Paramètres avancés. Définissez cette valeur sur Oui
Cliquez sur Enregistrer dans la partie supérieure de la page
Dans le menu de gauche, sélectionnez Autorisations API
Dans la barre des menus, sélectionnez Ajouter une autorisation. Dans le menu volant, sélectionnez l’onglet API utilisées par mon organisation. Dans la zone de recherche, entrez Windows Store pour Entreprises
Remarque
Si le Windows Store pour Entreprises n’apparaît pas dans la liste, ouvrez un nouvel onglet de navigateur, puis accédez à https://businessstore.microsoft.com, puis connectez-vous en tant qu'administrateur général du locataire. Fermez l’onglet du navigateur, puis recherchez à nouveau.
- Sélectionnez Windows Store pour Entreprises, puis sélectionnez Autorisations déléguées. Vérifiez user_impersonation.
- En bas de la page, cliquez sur Ajouter des autorisations. Dans le menu de gauche, sélectionnez Vue d'ensemble pour revenir à la vue d'ensemble de l’inscription de l’application DGSSv2.
Obtenir un jeton d’accès Azure AD
Ensuite, obtenez un jeton d’accès Azure AD pour votre application Azure AD au format JSON. Vous pouvez le faire à l’aide d’un large éventail de langages de programmation et de script. Pour plus d’informations sur ce processus, consultez Autoriser l’accès aux applications web Azure Active Directory à l’aide du flux d’octroi de code OAuth 2.0. Nous vous recommandons de récupérer un jeton d'actualisation avec le jeton d’accès, car votre jeton d’accès expirera en une heure.
Remarque
Si le Windows Store pour Entreprises n’apparaît pas dans la liste, ouvrez un nouvel onglet de navigateur, puis accédez à https://businessstore.microsoft.com, puis connectez-vous en tant qu'administrateur général du locataire. Fermez l’onglet du navigateur, puis recherchez à nouveau.
L’exemple PowerShell suivant montre comment demander un jeton d’accès.
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
}
Remarque
Nous vous recommandons d’enregistrer votre fichier JSON pour une utilisation ultérieure.
Obtenir la DLL signature Device Guard version 2
Pour vous connecter avec signature Device Guard version 2, obtenez Microsoft.Acs.Dlib.dll en téléchargeant le package NuGet qui sera utilisé pour signer votre package. Cela est également nécessaire pour obtenir le certificat racine.
Signez votre package
Une fois que vous avez votre jeton d’accès Azure AD, vous êtes prêt à utiliser SignTool pour signer votre package avec la signature Device Guard. Pour plus d’informations sur l’utilisation de SignTool pour signer des packages, consultez Signer un package d’application à l’aide de SignTool.
L’exemple de ligne de commande suivant montre comment signer un package avec la signature Device Guard version 2.
signtool sign /fd sha256 /dlib Microsoft.Acs.Dlib.dll /dmdf <Azure AAD in .json format> /t <timestamp-service-url> <your .msix package>
Remarque
- Les certificats générés pour la signature Device Guard v2 sont valides pendant un jour. Nous vous recommandons d’utiliser l’une des options d’horodatage lorsque vous signez votre package. Si vous n’appliquez pas d’horodatage, la signature expirera dans un jour et l’application devra être résignée.
- Assurez-vous que le nom de l’éditeur dans le manifeste de votre package correspond au certificat que vous utilisez pour signer le package. Avec cette fonctionnalité, il s’agit de votre certificat feuille. Par exemple, si le certificat feuille est CompanyName, le nom de l’éditeur dans le manifeste doit être CN=CompanyName. Sinon, l’opération de signature échoue.
- Seul l’algorithme SHA256 est pris en charge.
- Lorsque vous signez votre package avec la signature Device Guard, votre package n’est pas envoyé via Internet.
Test
Pour tester, téléchargez le certificat racine en cliquant ici ou en téléchargeant le package NuGet et en l’obtenant avec la commande :
Get-RootCertificate
Installez le certificat racine dans Autorités de certification racines de confiance de votre appareil. Installez votre application nouvellement signée pour vérifier que vous avez correctement signé votre application avec la signature Device Guard.
Important
Pour obtenir une isolation, déployez la stratégie CI WDAC pour approuver les applications signées avec DGSSv2. Veillez à lire la documentation readme_cmdlets et la migration de DGSSv1 vers la documentation DGSSv2 incluse dans le package NuGet.
Erreurs courantes
Voici les erreurs courantes que vous pouvez rencontrer.
- 0x800700d : cette erreur courante signifie que le format du fichier JSON Azure AD n’est pas valide.
- Vous devrez peut-être accepter les conditions générales de Microsoft Store pour Entreprises avant de télécharger le certificat racine de signature Device Guard. Pour ce faire, vous pouvez acquérir une application gratuite dans le portail.