Partager via


Signer un package MSIX avec une signature Device Guard

Important

Device Guard Signing Service v2 (DGSS) n’est plus disponible. Microsoft Store for Business and Microsoft Store for Education ( dont la DGSS a besoin pour l’authentification et les autorisations ) ont été retirées le 31 mars 2023.

Pour la signature de code d’entreprise, utilisez Signatures de confiance Azure, qui est le service successeur. Signatures de confiance Azure fournit un cycle de vie de certificat managé, s’intègre à SignTool et aux pipelines CI/CD, et prend en charge la signature de MSIX, des fichiers catalogues et des politiques WDAC. Consultez Signer un package MSIX : guide de bout en bout pour obtenir des conseils actuels.

Le contenu ci-dessous est conservé uniquement pour référence historique.

Le Device Guard Signing Service v2 (DGSS) est un service de signature de code fourni avec votre compte client Microsoft Store entreprise et Éducation existant. Vous pouvez utiliser DGSS pour signer des applications métier, des fichiers catalogue et des stratégies de contrôle d'application Windows Defender (WDAC). 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 sont disponibles. Lisez les Microsoft conditions d’utilisation incluses dans le package NuGet. Notez que l’utilisation de DGSS implique l’acceptation de ces termes. 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 entreprise et utilise l’authentification Azure Active Directory (AD). Pour signer un package MSIX avec une signature Device Guard, suivez ces étapes.

  1. Dans le Microsoft Store entreprise (ou Microsoft Store pour l’É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.

  2. Inscrivez votre application dans le portail Azure avec les paramètres appropriés afin que vous puissiez utiliser Azure authentification AD avec le Microsoft Store for Business.
  3. Obtenez un jeton d’accès AZURE AD au format JSON.
  4. 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 dans le Microsoft Store pour Entreprises ou Microsoft Store pour l'Éducation, vous avez besoin du rôle de signataire Device Guard. Il s’agit du rôle avec le moins de privilèges qui a la possibilité de signer. D’autres rôles tels que l’administrateur général et le propriétaire du compte de facturation peuvent également signer.

Remarque

Le rôle de signataire Device Guard est utilisé lorsque vous signez 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 :

  1. Connectez-vous au Microsoft Store entreprise.
  2. Sélectionnez Gérer , puis sélectionnez Autorisations.
  3. Afficher les rôles.

Pour plus d’informations, consultez Rôles et autorisations dans le Microsoft Store pour les entreprises et l’éducation.

Inscrire votre application dans le Portail Azure

Pour inscrire votre application avec les paramètres appropriés afin de pouvoir utiliser l'authentification Azure AD dans le Microsoft Store pour Entreprises :

  1. Accédez à https://portal.azure.com, puis authentifiez-vous en tant qu’administrateur général du locataire

  2. Accédez au service Azure Active Directory Azure.

  3. Dans le menu de gauche sous Manage recherchez et sélectionnez inscriptions d'applications

  4. Dans la barre de menus, sélectionnez Nouvelle inscription

  5. Dans le champ Nom , entrez DGSSv2.

    Remarque

    Le champ Nom est utilisé pour identifier facilement 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.

  6. Sous Types de comptes pris en charge , sélectionnez le paramètre approprié.

    • Comptes dans cet annuaire d’organisation uniquement (locataire unique) : cette option est recommandée, sauf si vous avez un besoin spécifique d’un déploiement à locataires multiples. Tous les comptes d’utilisateur et d’invité de votre répertoire peuvent utiliser votre application ou votre API.
    • Accounts dans n’importe quel annuaire organisationnel (n’importe quel annuaire AD Azure - Multilocataire) : cette option est la meilleure pour une organisation qui a plusieurs locataires AD Azure, mais a uniquement besoin d’un point de confiance unique pour la signature de code. Tous les utilisateurs disposant d’un compte professionnel ou scolaire à partir de Microsoft peuvent utiliser votre application ou VOTRE API. Cela inclut les écoles et les entreprises qui utilisent des Office 365.
    • Accounts dans n’importe quel annuaire organisationnel (n’importe quel annuaire AD Azure - Multilocataire) et comptes d’Microsoft personnels (par exemple, Skype, Xbox) : cette option n’est pas recommandée en raison de son utilisation par les comptes de niveau consommateur Microsoft. Tous les utilisateurs disposant d’une compte Microsoft professionnelle ou scolaire peuvent utiliser votre application ou VOTRE API. Il comprend les écoles et les entreprises qui utilisent des 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 comptes personnels, mais parce que cette option ne prend en charge que les comptes personnels. Azure comptes AD sont explicitement bloqués. Comptes personnels utilisés pour se connecter à des services tels que Xbox et Skype
  7. Dans la liste déroulante URI de redirection , sélectionnez Client public/natif (mobile &desktop) dans le menu déroulant de sélection. Entrez https://dgss.microsoft.com dans la zone de texte.

  8. Cliquez sur Inscrire

  9. En haut à droite de la page, trouvez l'entrée nommée "Redirect URIs". Sélectionnez la ligne située sous l’étiquette 0 web, 0 spa, 1 client public

  10. Recherchez l’entrée intitulée Autoriser les flux de clients publics dans la section Paramètres avancés. Définir cette valeur sur Oui

  11. Cliquez sur Enregistrer en haut de la page

  12. Dans le menu de gauche, sélectionnez des autorisations d’API

  13. Dans la barre de menus, sélectionnez Ajouter une autorisation. Dans le menu volant, sélectionnez l’onglet APIs utilisées par mon organisation. Dans la zone de recherche, entrez Windows Store pour Entreprise

Remarque

Si Windows Store pour Entreprises ne s’affiche pas dans la liste, ouvrez un nouvel onglet de navigateur et accédez au portail Microsoft Store Entreprise (désormais supprimé), puis connectez-vous en tant qu’administrateur général du locataire. Fermez l’onglet du navigateur, puis recherchez à nouveau.

  1. Sélectionnez Windows Store for Business, puis sélectionnez Autorisation déléguée. Cochez user_impersonation.
  2. Cliquez sur Ajouter des autorisations en bas de la page. 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 AD Azure

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 d'Azure Active Directory en utilisant le flux de code de subvention 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 Windows Store pour Entreprises ne s’affiche pas dans la liste, ouvrez un nouvel onglet de navigateur et accédez au portail Microsoft Store Entreprise (désormais supprimé), 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 de signature Device Guard version 2

Pour vous connecter avec Device Guard Signature version 2, obtenez le 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 paquet

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 signée à nouveau.
  • 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.

Essai

Pour tester, téléchargez le certificat racine en cliquant sur here ou en téléchargeant le package NuGet et en l’obtenant avec la commande :

Get-RootCertificate

Installez le certificat racine dans les Autorités de certification racine de confiance sur 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 ainsi que la documentation sur la migration de DGSSv1 vers DGSSv2, toutes deux incluses 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 entreprise 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.