Signer un package MSIX avec une signature Device Guard

Important

Microsoft Store pour Entreprises et Microsoft Store pour Éducation seront mis hors service au cours du premier trimestre de 2023. Vous pouvez continuer à utiliser les fonctionnalités actuelles des applications gratuites jusqu’à ce moment-là. pour plus d’informations sur cette modification, consultez évolution du Microsoft Store pour Entreprises et de l’éducation

Important

Le service de signature Device Guard v2 (DGSS v2) est maintenant disponible.

2021 mai-le mécanisme Web existant pour le service de signature Device Guard v1 sera supprimé le 9 juin 2021. Passez à la version PowerShell du service (DGSS v2). un package NuGet contenant les composants requis de DGSS v2 et la documentation sur la migration est disponible. veuillez lire les conditions d’utilisation de Microsoft incluses dans le package NuGet. Notez que l’utilisation de DGSS implique l’acceptation de ces termes. Pour toute question, veuillez nous contacter à l’adresse DGSSMigration@microsoft.com .

Notes

Après le téléchargement de Microsoft. ACS/DGSS. client. nupkg, vous pouvez renommer pour .zip et extraire le contenu des fichiers, ainsi que de la documentation et des informations supplémentaires.

la signature de device guard est une fonctionnalité de protection des appareils qui est disponible dans le Microsoft Store pour Entreprises et l’éducation. Elle permet aux entreprises de garantir que chaque application provient d’une source approuvée. vous pouvez utiliser SignTool dans le SDK Windows et le dlib DGSSv2 dans le package NuGet pour signer vos applications MSIX à l’aide de la signature Device Guard. Cette prise en charge des fonctionnalités vous permet d’intégrer facilement Device Guard à la création du package MSIX et à la signature du flux de travail.

la signature de 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 la signature Device Guard, procédez comme suit.

  1. si vous ne l’avez pas déjà fait, inscrivez-vous à Microsoft Store pour Entreprises ou Microsoft Store pour Éducation.

    Notes

    Vous devez uniquement utiliser ce portail pour configurer des autorisations pour la signature Device Guard.

  2. dans la Microsoft Store pour Entreprises (ou ou Microsoft Store pour Éducation), attribuez un rôle disposant des autorisations nécessaires pour effectuer la signature de Device Guard.
  3. inscrivez votre application dans le Portail Azure avec les paramètres appropriés afin de pouvoir utiliser l’authentification Azure AD avec le Microsoft Store pour Entreprises.
  4. Obtient un jeton d’accès Azure AD au format JSON.
  5. 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 connexion device guard dans le 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 le moins privilégié 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 se connecter.

Notes

Le rôle de signataire Device Guard est utilisé lorsque vous vous connectez en tant qu’application. Le propriétaire du compte de facturation et de l’administrateur général est utilisé lorsque vous vous connectez en tant que personne connectée.

Pour confirmer ou réassigner des rôles :

  1. connectez-vous au Microsoft Store pour Entreprises.
  2. Sélectionnez gérer , puis autorisations.
  3. Afficher les rôles.

pour plus d’informations, consultez rôles et autorisations dans le Microsoft Store pour Entreprises et é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 avec la Microsoft Store pour Entreprises :

  1. Accédez à https://portal.azure.com et 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 gérer Rechercher et sélectionner inscriptions d’applications

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

  5. Dans le champ nom , entrez DGSSv2.

    Notes

    Le champ nom est utilisé pour faciliter l’identification de l’inscription de l’application dans la Portail Azure. Vous pouvez utiliser n’importe quel nom de votre choix. Dans le cadre de cette démonstration, nous utilisons DGSSv2 simplement pour faciliter son identification.

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

    • Comptes dans ce répertoire d’organisation uniquement (locataire unique) : cette option est recommandée sauf si vous avez besoin d’un déploiement mutualisée. Tous les comptes d’utilisateur et d’invité dans votre annuaire peuvent utiliser votre application ou API.
    • Comptes dans n’importe quel annuaire d’organisation (n’importe quel Azure ad Directory-multi-locataire) : cette option est idéale pour une organisation qui a plusieurs Azure ad locataires, mais qui n’a besoin que d’un point de confiance unique pour la signature de code. Tous les utilisateurs disposant d’un compte professionnel ou scolaire de Microsoft peuvent utiliser votre application ou votre API. Ceci inclut les établissements scolaires et les entreprises qui utilisent Office 365.
    • comptes dans n’importe quel annuaire d’organisation (n’importe quel répertoire de Azure AD) et comptes Microsoft personnels (par exemple, Skype, Xbox) : cette option n’est pas recommandée car elle est ouverte pour être utilisée par les comptes Microsoft de niveau consommateur. Tous les utilisateurs avec un compte professionnel ou scolaire, ou un compte personnel Microsoft, peuvent utiliser votre application ou API. il comprend les écoles et les entreprises qui utilisent Office 365, ainsi que les 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 est également déconseillée. Ce n’est pas seulement parce qu’il autorise les comptes personnels, mais cette option ne prend en charge que les comptes personnels. Les comptes de Azure AD sont bloqués explicitement. 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 S’inscrire

  9. Vers le coin supérieur droit de la page, recherchez l’entrée intitulée URI de redirection. Sélectionnez la ligne ci-dessous intitulée 0 Web, 0 Spa, 1 client public

  10. Recherchez l’entrée nommée allow public client flows dans la section Advanced Settings. Définir cette valeur sur Oui

  11. Cliquez sur Enregistrer en haut de la page.

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

  13. Dans la barre de menus , sélectionnez Ajouter une autorisation. Dans le menu volant, sélectionnez l’onglet API mon organisation utilise. dans la zone de recherche, entrez Windows Store pour entreprises

Notes

si Windows Store pour entreprises n’apparaît pas dans la liste, ouvrez un nouvel onglet de navigateur et accédez à, https://businessstore.microsoft.com puis connectez-vous en tant qu’administrateur général du locataire. Fermez l’onglet navigateur, puis recommencez la recherche.

  1. sélectionnez Windows Store pour entreprises, puis sélectionnez autorisations déléguées. Vérifiez 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 d’application DGSSv2.

Obtenir un jeton d’accès Azure AD

Obtenez ensuite un jeton d’accès Azure AD pour votre application Azure AD au format JSON. Vous pouvez le faire à l’aide de divers 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 workflow 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 dans une heure.

Notes

si Windows Store pour entreprises n’apparaît pas dans la liste, ouvrez un nouvel onglet de navigateur et accédez à, https://businessstore.microsoft.com puis connectez-vous en tant qu’administrateur général du locataire. Fermez l’onglet navigateur, puis recommencez la recherche.

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
}

Notes

Nous recommandons d’enregistrer votre fichier JSON en vue d’une utilisation ultérieure.

Obtenir la DLL de la version 2 de signature de Device Guard

pour vous connecter à la version 2 de la signature de Device Guard, 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.

Signer votre package

Une fois que vous disposez de 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 Device Guard Signing version 2.

signtool sign /fd sha256 /dlib Microsoft.Acs.Dlib.dll /dmdf <Azure AAD in .json format> /t <timestamp-service-url> <your .msix package>

Notes

  • 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 expire dans un an et l’application doit être resignée.
  • Assurez-vous que le nom de l’éditeur figurant 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 du serveur de publication dans le manifeste doit être CN = CompanyName. Dans le cas contraire, l’opération de signature échoue.
  • Seul l’algorithme SHA256 est pris en charge.
  • Lorsque vous signez votre package avec la signature de Device Guard, votre package n’est pas envoyé sur 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 à l’aide de la commande :

Get-RootCertificate

Installez le certificat racine auprès des autorités de certification racines 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 l’isolation, déployez la stratégie WDAC CI pour approuver les applications qui sont signées avec DGSSv2. veillez à lire la documentation readme_cmdlets et à migrer à partir 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.