Udostępnij przez


Podpisz pakiet MSIX przy użyciu podpisywania Device Guard

Ważne

Sklep Microsoft Store dla Firm i Microsoft Store for Education został wycofany w pierwszym kwartale 2023 roku. Aby uzyskać więcej informacji na temat tej zmiany, zobacz Ewolucja sklepu Microsoft Store dla Firm i edukacji.

Do tego czasu można nadal korzystać z bieżących możliwości Device Guard Signing Service v2 (DGSS). Usługa DGSS zostanie zastąpiona przez usługę podpisywania kodu platformy Azure (ACS) i będzie obsługiwać wymagania dotyczące zasad kontroli aplikacji (WDAC) usługi Windows Defender i podpisywania plików katalogu.

Usługa podpisywania kodu Device Guard w wersji 2 (DGSS) to usługa podpisywania kodu dostarczana z istniejącym kontem dzierżawy Sklepu Microsoft Store dla biznesu i edukacji. Usługa DGSS umożliwia podpisywanie aplikacji liniowych, plików katalogu i zasad Kontroli aplikacji Windows Defender (WDAC). Umożliwia przedsiębiorstwom zagwarantowanie, że każda aplikacja pochodzi z zaufanego źródła. Możesz użyć narzędzia SignTool w zestawie SDK systemu Windows i biblioteki dlib DGSSv2 w pakiecie NuGet, aby podpisać aplikacje MSIX przy użyciu podpisywania funkcji Device Guard. Ta obsługa tej funkcji umożliwia łatwe włączenie podpisywania Device Guard w ramach przepływu pracy tworzenia i podpisywania pakietów MSIX.

Dostępny jest pakiet NuGet zawierający wymagane składniki DGSS v2 i dokumentację migracji. Przeczytaj warunki użytkowania firmy Microsoft zawarte w pakiecie NuGet; należy pamiętać, że użycie DGSS oznacza akceptację tych warunków. Jeśli masz pytania, skontaktuj się z nami pod adresem DGSSMigration@microsoft.com.

Uwaga / Notatka

Po pobraniu pliku microsoft.acs/dgss.client.nupkg możesz zmienić nazwę na .zip i wyodrębnić zawartość plików oraz dodatkowe dokumenty i informacje

Podpisywanie Device Guard wymaga uprawnień w Microsoft Store dla Firm i korzysta z uwierzytelniania za pomocą Azure Active Directory (AD). Aby podpisać pakiet MSIX przy użyciu podpisywania funkcji Device Guard, wykonaj następujące kroki.

  1. W sklepie Microsoft Store dla Firm (lub Microsoft Store for Education) przypisz sobie rolę z uprawnieniami niezbędnymi do podpisywania funkcji Device Guard.

    Uwaga / Notatka

    Aby skonfigurować uprawnienia do podpisywania funkcji Device Guard, wystarczy użyć tego portalu.

  2. Zarejestruj aplikację w witrynie Azure Portal przy użyciu odpowiednich ustawień, aby można było używać uwierzytelniania usługi Azure AD w sklepie Microsoft Store dla Firm.
  3. Pobierz token dostępu usługi Azure AD w formacie JSON.
  4. Uruchom narzędzie SignTool, aby podpisać pakiet MSIX przy użyciu podpisywania funkcji Device Guard i przekazać token dostępu usługi Azure AD uzyskany w poprzednim kroku.

W poniższych sekcjach opisano te kroki bardziej szczegółowo.

Konfiguracja uprawnień do podpisywania przez Device Guard

Aby używać podpisywania Device Guard w Microsoft Store dla firm lub Microsoft Store for Education, potrzebujesz roli podpisującego Device Guard. Jest to rola o najmniejszych uprawnieniach, która ma możliwość podpisywania. Inne role, takie jak administrator globalny i właściciel konta rozliczeniowego mogą również się podpisać.

Uwaga / Notatka

Rola podpisującego w funkcji Device Guard jest używana, gdy podpisujesz aplikację. Administrator globalny i właściciel konta rozliczeniowego są używane podczas logowania się jako zalogowany użytkownik.

Aby potwierdzić lub ponownie przypisać role:

  1. Zaloguj się do Microsoft Store dla Firm.
  2. Wybierz pozycję Zarządzaj , a następnie wybierz pozycję Uprawnienia.
  3. Wyświetl Role.

Aby uzyskać więcej informacji, zobacz Role i uprawnienia w Sklepie Microsoft dla Firm i Edukacji.

Rejestrowanie aplikacji w witrynie Azure Portal

Aby zarejestrować aplikację przy użyciu odpowiednich ustawień, aby można było używać uwierzytelniania usługi Azure AD w sklepie Microsoft Store dla Firm:

  1. Przejdź do https://portal.azure.com i uwierzytelnij się jako administrator globalny dzierżawy

  2. Przejdź do usługi Azure Active Directory platformy Azure.

  3. W menu po lewej stronie w obszarze Zarządzanie znajdź i wybierz pozycję Rejestracje aplikacji

  4. Na pasku menu wybierz pozycję Nowa rejestracja

  5. W polu Nazwa wprowadź DGSSv2.

    Uwaga / Notatka

    Pole Nazwa służy do łatwej identyfikacji rejestracji aplikacji w witrynie Azure Portal. Można użyć dowolnej żądanej nazwy. Na potrzeby tej demonstracji używamy po prostu DGSSv2, aby ułatwić identyfikację.

  6. W obszarze Obsługiwane typy kont wybierz odpowiednie ustawienie.

    • Konta w tym katalogu organizacji (tylko z jednym tenantem) — Ta opcja jest zalecana, chyba że istnieje szczególna potrzeba wdrożenia wielonajemnego. Wszystkie konta użytkowników i gości w katalogu mogą używać aplikacji lub interfejsu API.
    • Konta w dowolnym katalogu organizacyjnym (dowolny katalog usługi Azure AD — wielodostępny) — ta opcja jest najlepsza w przypadku organizacji, która ma wiele dzierżaw usługi Azure AD, ale wymaga tylko jednego punktu zaufania do podpisywania kodu. Wszyscy użytkownicy z kontem służbowym lub szkolnym w systemie Microsoft mogą używać Twojej aplikacji lub interfejsu API. Dotyczy to szkół i firm korzystających z usługi Office 365.
    • Konta w dowolnym katalogu organizacyjnym (dowolny katalog usługi Azure AD — wielodostępny) i osobiste konta Microsoft (np. Skype, Xbox) — ta opcja nie jest zalecana ze względu na to, że jest otwarta do użytku przez konta Microsoft na poziomie klienta. Wszyscy użytkownicy z kontem służbowym lub osobistym Microsoft mogą używać aplikacji lub interfejsu API. Obejmuje ona szkoły i firmy korzystające z usługi Office 365, a także konta osobiste używane do logowania się do usług, takich jak Xbox i Skype.
    • Tylko osobiste konta Microsoft — podobnie jak ostatnia opcja ta nie jest również zalecana. Jest to nie tylko spowodowane tym, że zezwala na konta osobiste, ale dlatego, że ta opcja obsługuje tylko konta osobiste. Konta usługi Azure AD są jawnie blokowane. Konta osobiste używane do logowania się do usług, takich jak Xbox i Skype
  7. Z menu rozwijanego Identyfikator URI przekierowania wybierz Klient publiczny/natywny (mobilny i komputerowy). Wprowadź https://dgss.microsoft.com w polu tekstowym.

  8. Kliknij pozycję Zarejestruj

  9. W prawym górnym rogu strony znajdź wpis z etykietą Identyfikatory URI przekierowania. Wybierz wiersz poniżej oznaczony 0 sieci Web, 0 spa, 1 klienta publicznego

  10. Znajdź wpis z etykietą Zezwalaj na przepływy klientów publicznych w sekcji Ustawienia zaawansowane. Ustaw tę wartość na Tak

  11. Kliknij pozycję Zapisz w górnej części strony.

  12. W menu po lewej stronie wybierz pozycję Uprawnienia interfejsu API

  13. Na pasku menu wybierz pozycję Dodaj uprawnienie. W menu wysuwanym wybierz kartę Interfejsy API używane przez moją organizację . W polu wyszukiwania wprowadź Sklep Windows dla Firm

Uwaga / Notatka

Jeśli Sklep Windows dla firm nie jest wyświetlany na liście, otwórz nową kartę przeglądarki i przejdź do strony https://businessstore.microsoft.com, a następnie zaloguj się jako administrator globalny dzierżawy. Zamknij kartę przeglądarki, a następnie wyszukaj ponownie.

  1. Wybierz Sklep Windows dla firm, a następnie Uprawnienia delegowane. Sprawdź user_impersonation.
  2. Kliknij pozycję Dodaj uprawnienia w dolnej części strony. W menu po lewej stronie wybierz pozycję Przegląd , aby powrócić do przeglądu rejestracji aplikacji DGSSv2.

Uzyskiwanie tokenu dostępu usługi Azure AD

Następnie uzyskaj token dostępu usługi Azure AD dla aplikacji usługi Azure AD w formacie JSON. Można to zrobić przy użyciu różnych języków programowania i skryptów. Aby uzyskać więcej informacji na temat tego procesu, zobacz Autoryzowanie dostępu do aplikacji internetowych usługi Azure Active Directory przy użyciu przepływu udzielania kodu OAuth 2.0. Zalecamy pobranie tokenu odświeżania wraz z tokenem dostępu, ponieważ token dostępu wygaśnie w ciągu jednej godziny.

Uwaga / Notatka

Jeśli Sklep Windows dla firm nie jest wyświetlany na liście, otwórz nową kartę przeglądarki i przejdź do strony https://businessstore.microsoft.com, a następnie zaloguj się jako administrator globalny dzierżawy. Zamknij kartę przeglądarki, a następnie wyszukaj ponownie.

W poniższym przykładzie programu PowerShell pokazano, jak zażądać tokenu dostępu.

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
}

Uwaga / Notatka

Zalecamy zapisanie pliku JSON do późniejszego użycia.

Uzyskiwanie biblioteki DLL podpisywania funkcji Device Guard w wersji 2

Aby zalogować się przy użyciu podpisywania funkcji Device Guard w wersji 2, uzyskaj Microsoft.Acs.Dlib.dll , pobierając pakiet NuGet , który będzie używany do podpisywania pakietu. Jest to również konieczne do uzyskania certyfikatu głównego.

Podpisz swój pakiet

Po uzyskaniu tokenu dostępu Azure AD możesz użyć narzędzia SignTool do podpisania pakietu, korzystając z funkcji podpisywania w Device Guard. Aby uzyskać więcej informacji na temat podpisywania pakietów przy użyciu narzędzia SignTool, zobacz Podpisywanie pakietu aplikacji przy użyciu narzędzia SignTool.

W poniższym przykładzie wiersza polecenia pokazano, jak podpisać pakiet za pomocą funkcji podpisywania Device Guard w wersji 2.

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

Uwaga / Notatka

  • Certyfikaty wygenerowane na potrzeby podpisywania funkcji Device Guard w wersji 2 są ważne przez jeden dzień. Zalecamy użycie jednej z opcji znacznika czasu podczas podpisywania pakietu. Jeśli nie zastosujesz znacznika czasu, podpisanie wygaśnie w ciągu jednego dnia, a aplikacja będzie musiała zrezygnować.
  • Upewnij się, że nazwa wydawcy w manifeście pakietu jest zgodna z certyfikatem używanym do podpisania pakietu. Dzięki tej funkcji będzie to certyfikat liścia. Jeśli na przykład certyfikat liścia ma wartość CompanyName, to nazwa wydawcy w manifeście musi mieć wartość CN=CompanyName. W przeciwnym razie operacja podpisywania zakończy się niepowodzeniem.
  • Obsługiwany jest tylko algorytm SHA256.
  • Po podpisaniu pakietu za pomocą Device Guard, pakiet nie jest wysyłany przez Internet.

Testowanie

Aby przetestować, pobierz certyfikat główny, klikając tutaj lub pobierając pakiet NuGet i uzyskując go za pomocą polecenia :

Get-RootCertificate

Zainstaluj certyfikat główny w zaufanych głównych urzędach certyfikacji na urządzeniu. Zainstaluj nowo podpisaną aplikację, aby sprawdzić, czy aplikacja została pomyślnie podpisana przy użyciu podpisywania funkcji Device Guard.

Ważne

Aby osiągnąć izolację, wdróż zasady ciągłej integracji WDAC, aby ufać aplikacjom podpisanym za pomocą usługi DGSSv2. Zapoznaj się z dokumentacją readme_cmdlets oraz dokumentacją dotyczącą migracji z DGSSv1 do DGSSv2, które są zawarte w pakiecie NuGet.

Typowe błędy

Poniżej przedstawiono typowe błędy, które mogą wystąpić.

  • 0x800700d: Ten typowy błąd oznacza, że format pliku JSON usługi Azure AD jest nieprawidłowy.
  • Przed pobraniem certyfikatu głównego podpisywania funkcji Device Guard może być konieczne zaakceptowanie warunków i postanowień sklepu Microsoft Store dla Firm. Można to zrobić, uzyskując bezpłatną aplikację w portalu.