Menandatangani paket MSIX dengan penandatanganan Device Guard

Penting

Microsoft Store untuk Bisnis dan Microsoft Store untuk Pendidikan akan dihentikan pada triwulan pertama 2023. Anda dapat terus menggunakan kemampuan aplikasi gratis saat ini hingga saat itu. Untuk informasi selengkapnya tentang perubahan ini, lihat Mengembangkan Microsoft Store untuk Bisnis dan Pendidikan

Penting

Device Guard Signing Service v2 (DGSS v2) sekarang tersedia.

Mei 2021 - Mekanisme berbasis web yang ada untuk layanan Penandatanganan Device Guard v1 akan dihentikan pada 9 Juni 2021. Silakan transisi ke versi layanan berbasis PowerShell (DGSS v2). Paket NuGet yang berisi komponen DGSS v2 yang diperlukan dan dokumentasi migrasi tersedia. Silakan baca Ketentuan Penggunaan Microsoft yang disertakan dalam paket NuGet; perhatikan bahwa penggunaan DGSS menyiratkan penerimaan persyaratan ini. Untuk pertanyaan apa pun, silakan hubungi kami di DGSSMigration@microsoft.com.

Catatan

Setelah mengunduh microsoft.acs/dgss.client.nupkg, Anda dapat mengganti nama menjadi .zip dan mengekstrak konten untuk file serta dokumentasi dan informasi tambahan

Penandatanganan Device Guard adalah fitur Device Guard yang tersedia di Microsoft Store untuk Bisnis dan Education. Ini memungkinkan perusahaan untuk menjamin bahwa setiap aplikasi berasal dari sumber tepercaya. Anda dapat menggunakan SignTool di Windows SDK dan dlib DGSSv2 dalam paket NuGet untuk menandatangani aplikasi MSIX Anda dengan penandatanganan Device Guard. Dukungan fitur ini memungkinkan Anda untuk dengan mudah memasukkan Device Guard masuk ke dalam alur kerja pembuatan dan penandatanganan paket MSIX.

Penandatanganan Device Guard memerlukan izin di Microsoft Store untuk Bisnis dan menggunakan autentikasi Azure Active Directory (AD). Untuk menandatangani paket MSIX dengan penandatanganan Device Guard, ikuti langkah-langkah berikut.

  1. Jika Anda belum melakukannya, daftar untuk Microsoft Store untuk Bisnis atau Microsoft Store untuk Pendidikan.

    Catatan

    Anda hanya perlu menggunakan portal ini untuk mengonfigurasi izin untuk penandatanganan Device Guard.

  2. Dalam Microsoft Store untuk Bisnis (atau atau Microsoft Store untuk Pendidikan), tetapkan diri Anda peran dengan izin yang diperlukan untuk melakukan penandatanganan Device Guard.
  3. Daftarkan aplikasi Anda di portal Azure dengan pengaturan yang tepat sehingga Anda dapat menggunakan autentikasi Azure AD dengan Microsoft Store untuk Bisnis.
  4. Dapatkan token akses Azure ACTIVE Directory dalam format JSON.
  5. Jalankan SignTool untuk menandatangani paket MSIX Anda dengan penandatanganan Device Guard, dan teruskan token akses Microsoft Azure AD yang Anda peroleh di langkah sebelumnya.

Bagian berikut menjelaskan langkah-langkah ini secara lebih rinci.

Mengonfigurasi izin untuk penandatanganan Device Guard

Untuk menggunakan masuk device guard di Microsoft Store untuk Bisnis atau Microsoft Store untuk Pendidikan, Anda memerlukan peran penanda tangan Device Guard. Ini adalah peran hak istimewa paling sedikit yang memiliki kemampuan untuk menandatangani. Peran lain seperti Administrator Global dan Pemilik akun Penagihan juga dapat menandatangani.

Catatan

Peran Device Guard Signer digunakan saat Anda menandatangani sebagai aplikasi. Administrator Global dan Pemilik Akun Penagihan digunakan saat Anda masuk sebagai orang yang masuk.

Untuk mengonfirmasi atau menetapkan ulang peran:

  1. Masuk ke Microsoft Store untuk Bisnis.
  2. Pilih Kelola lalu pilih Izin.
  3. Lihat Peran.

Untuk informasi selengkapnya, lihat Peran dan izin di Microsoft Store untuk Bisnis dan Pendidikan.

Mendaftarkan aplikasi Anda di Portal Microsoft Azure

Untuk mendaftarkan aplikasi Anda dengan pengaturan yang tepat sehingga Anda dapat menggunakan autentikasi Azure AD dengan Microsoft Store untuk Bisnis:

  1. Navigasi ke https://portal.azure.com, dan autentikasi sebagai Administrator Global penyewa

  2. Navigasikan ke layanan Azure Active Directory Azure.

  3. Dari menu sisi kiri di bawah Kelola temukan dan pilih Pendaftaran aplikasi

  4. Dari bilah menu pilih Pendaftaran baru

  5. Di bidang Nama masukkan DGSSv2.

    Catatan

    Bidang Nama digunakan untuk memudahkan identifikasi pendaftaran aplikasi di portal Azure. Nama apa pun yang diinginkan dapat digunakan. Untuk tujuan demonstrasi ini, kami menggunakan DGSSv2 hanya untuk memudahkan identifikasi.

  6. Di bawah Jenis akun yang didukung pilih pengaturan yang sesuai.

    • Akun dalam direktori organisasi ini saja (Penyewa tunggal) - Opsi ini direkomendasikan kecuali Anda memiliki kebutuhan khusus untuk penyebaran multipenyewa. Semua akun pengguna dan tamu di direktori Anda dapat menggunakan aplikasi atau API Anda.
    • Akun di direktori organisasi apa pun (Direktori Azure AD apa pun - Multipenyewa) - Opsi ini paling cocok untuk organisasi yang memiliki beberapa penyewa Microsoft Azure AD, tetapi hanya memerlukan satu titik kepercayaan untuk penandatanganan kode. Semua pengguna dengan akun kerja atau sekolah dari Microsoft dapat menggunakan aplikasi atau API Anda. Ini termasuk sekolah dan bisnis yang menggunakan Office 365.
    • Akun di direktori organisasi apa pun (Direktori Azure AD apa pun - Multipenyewa) dan akun Microsoft pribadi (misalnya, Skype, Xbox) - Opsi ini tidak disarankan karena terbuka untuk digunakan oleh akun Microsoft tingkat konsumen. Semua pengguna dengan akun Microsoft kantor atau sekolah, atau pribadi dapat menggunakan aplikasi atau API Anda. Ini termasuk sekolah dan bisnis yang menggunakan Office 365 serta akun pribadi yang digunakan untuk masuk ke layanan seperti Xbox dan Skype.
    • Hanya akun Microsoft pribadi - Seperti opsi terakhir opsi ini juga tidak disarankan. Ini tidak hanya karena memungkinkan akun pribadi, tetapi karena opsi ini hanya mendukung akun pribadi. Akun Azure ACTIVE Directory diblokir secara eksplisit. Akun pribadi yang digunakan untuk masuk ke layanan seperti Xbox dan Skype
  7. Di menu drop-down Alihkan URI pilih Klien publik/asli (seluler &desktop) dari menu pilihan drop-down. Masukkan https://dgss.microsoft.com di kotak teks.

  8. Klik Daftar

  9. Menuju kanan atas halaman, temukan entri berlabel URI Pengalihan. Pilih baris di bawahnya berlabel 0 web, 0 spa, 1 klien publik

  10. Temukan entri berlabel Izinkan alur klien publik di bagian Pengaturan tingkat lanjut. Atur nilai ini ke Ya

  11. Klik Simpan di bagian atas halaman

  12. Dari menu sisi kiri pilih izin API

  13. Dari bilah menu pilih Tambahkan izin. Di menu fly out pilih tab API yang digunakan organisasi saya. Dalam kotak pencarian masukkan Bursa Windows untuk Bisnis

Catatan

Jika Windows Store for Business tidak muncul dalam daftar, buka tab browser baru dan navigasikan untuk https://businessstore.microsoft.com masuk sebagai Administrator Global penyewa. Tutup tab browser, lalu cari lagi.

  1. Pilih Bursa Windows untuk Bisnis, lalu pilih Izin yang didelegasikan. Periksa user_impersonation.
  2. Klik Tambahkan izin di bagian bawah halaman. Dari menu sisi kiri pilih Gambaran Umum untuk kembali ke gambaran umum pendaftaran aplikasi DGSSv2.

Dapatkan token akses Azure AD

Selanjutnya, dapatkan token akses Azure ACTIVE Directory untuk aplikasi Microsoft Azure AD Anda dalam format JSON. Anda dapat melakukan ini menggunakan berbagai bahasa pemrograman dan pembuatan skrip. Untuk informasi selengkapnya tentang proses ini, lihat Mengotorisasi akses ke aplikasi web Azure Active Directory menggunakan alur pemberian kode OAuth 2.0. Kami menyarankan agar Anda mengambil token refresh bersama dengan token akses, karena token akses Anda akan kedaluwarsa dalam satu jam.

Catatan

Jika Windows Store for Business tidak muncul dalam daftar, buka tab browser baru dan navigasikan untuk https://businessstore.microsoft.com masuk sebagai Administrator Global penyewa. Tutup tab browser, lalu cari lagi.

Contoh PowerShell berikut menunjukkan cara meminta token akses.

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
}

Catatan

Kami menyarankan agar Anda menyimpan file JSON untuk digunakan nanti.

Dapatkan DLL Penandatanganan Device Guard versi 2

Untuk masuk dengan Penandatanganan Device Guard versi 2, dapatkan Microsoft.Acs.Dlib.dll dengan mengunduh Paket NuGet yang akan digunakan untuk menandatangani paket Anda. Ini juga diperlukan untuk mendapatkan sertifikat akar.

Menandatangani paket Anda

Setelah memiliki token akses Microsoft Azure ACTIVE Directory, Anda siap menggunakan SignTool untuk menandatangani paket Anda dengan penandatanganan Device Guard. Untuk informasi selengkapnya tentang menggunakan SignTool untuk menandatangani paket, lihat Menandatangani paket aplikasi menggunakan SignTool.

Contoh baris perintah berikut menunjukkan cara menandatangani paket dengan penandatanganan Device Guard versi 2.

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

Catatan

  • Sertifikat yang dihasilkan untuk penandatanganan Device Guard v2 berlaku selama satu hari. Kami menyarankan agar Anda menggunakan salah satu opsi tanda waktu saat menandatangani paket Anda. Jika Anda tidak menerapkan tanda waktu, penandatanganan akan kedaluwarsa dalam satu hari dan aplikasi harus diundur.
  • Pastikan bahwa nama penerbit dalam manifes paket Anda cocok dengan sertifikat yang Anda gunakan untuk menandatangani paket. Dengan fitur ini, ini akan menjadi sertifikat daun Anda. Misalnya, jika sertifikat daun adalah CompanyName, daripada nama penerbit dalam manifes harus CN=CompanyName. Jika tidak, operasi penandatanganan akan gagal.
  • Hanya algoritma SHA256 yang didukung.
  • Ketika Anda menandatangani paket Anda dengan penandatanganan Device Guard, paket Anda tidak dikirim melalui Internet.

Uji

Untuk menguji, unduh sertifikat akar dengan mengklik di sini atau dengan mengunduh Paket NuGet dan mendapatkannya dengan perintah :

Get-RootCertificate

Instal sertifikat akar ke Otoritas Sertifikasi Akar Tepercaya di perangkat Anda. Instal aplikasi yang baru ditandatangani untuk memverifikasi bahwa Anda telah berhasil menandatangani aplikasi dengan penandatanganan Device Guard.

Penting

Untuk mencapai isolasi, sebarkan kebijakan WDAC CI untuk mempercayai aplikasi yang ditandatangani dengan DGSSv2. Pastikan untuk membaca dokumentasi readme_cmdlets dan migrasi dari dokumentasi DGSSv1 ke DGSSv2 yang disertakan dalam Paket NuGet.

Kesalahan umum

Berikut adalah kesalahan umum yang mungkin Anda temui.

  • 0x800700d: Kesalahan umum ini berarti bahwa format file Azure AD JSON tidak valid.
  • Anda mungkin perlu menerima syarat dan ketentuan Microsoft Store untuk Bisnis sebelum mengunduh sertifikat akar Penandatanganan Device Guard. Ini dapat dilakukan dengan memperoleh aplikasi gratis di portal.