Bagikan melalui


Cara menulis kebijakan pengesahan

Kebijakan pengesahan adalah file yang diunggah ke Microsoft Azure Attestation. Azure Attestation menawarkan fleksibilitas untuk mengunggah kebijakan dalam format kebijakan khusus pengesahan. Atau, versi kebijakan yang dikodekan, di JSON Web Signature, juga dapat diunggah. Admin kebijakan bertanggung jawab untuk menulis kebijakan pengesahan. Dalam sebagian besar skenario pengesahan, pihak yang mengandalkan bertindak sebagai admin kebijakan. Klien yang melakukan panggilan pengesahan mengirimkan bukti pengesahan, yang diurai oleh layanan dan dikonversi menjadi klaim masuk (kumpulan properti, nilai). Layanan kemudian memproses klaim, berdasarkan apa yang ditentukan dalam kebijakan, dan mengembalikan hasil yang dikomputasi.

Kebijakan berisi aturan yang menentukan kriteria otorisasi, properti, dan konten token pengesahan:

version=1.0;
authorizationrules
{
    c:[type="secureBootEnabled", issuer=="AttestationService"]=> permit()
};

issuancerules
{
    c:[type="secureBootEnabled", issuer=="AttestationService"]=> issue(claim=c)
    c:[type="notSafeMode", issuer=="AttestationService"]=> issue(claim=c)
};

File kebijakan memiliki tiga segmen:

  • versi: Versi adalah nomor versi tata bahasa yang diikuti.
    version=MajorVersion.MinorVersion	
    
    Saat ini satu-satunya versi yang didukung adalah versi 1.0.
  • authorizationrules: Kumpulan aturan klaim yang diperiksa terlebih dahulu, untuk menentukan apakah Azure Attestation harus melanjutkan ke issuancerules. Aturan klaim berlaku dalam urutan yang ditentukan.
  • penerbitan: Kumpulan aturan klaim yang dievaluasi untuk menambahkan informasi tambahan ke hasil pengesahan seperti yang didefinisikan dalam kebijakan. Aturan klaim berlaku dalam urutan yang ditentukan dan juga opsional.

Untuk informasi selengkapnya, lihat Aturan klaim dan klaim.

Penyusunan file kebijakan

  1. Buat file baru.
  2. Tambahkan versi ke file.
  3. Tambahkan bagian untuk authorizationrules dan issuancerules.
    version=1.0;
    authorizationrules
    {
    =>deny();
    };
    
    issuancerules
    {
    };
    
    Aturan otorisasi berisi tindakan deny() tanpa kondisi apa pun, untuk memastikan tidak ada aturan penerbitan yang diproses. Atau, aturan otorisasi juga dapat berisi tindakan permit(), untuk memungkinkan pemrosesan aturan penerbitan.
  4. Menambahkan aturan klaim ke aturan otorisasi
    version=1.0;
    authorizationrules
    {
        [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
    };
    
    issuancerules
    {
    };
    
    Jika kumpulan klaim masuk berisi klaim yang cocok dengan jenis, nilai, dan penerbit, tindakan permit() memberi tahu mesin kebijakan untuk memproses penerbitan.
  5. Tambahkan aturan klaim issuancerules.
    version=1.0;
    authorizationrules
    {
        [type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
    };
    
    issuancerules
    {
        => issue(type="SecurityLevelValue", value=100);
    };
    
    Kumpulan klaim keluar berisi klaim dengan:
    [type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]
    
    Kebijakan kompleks dapat dibuat dengan cara yang sama. Untuk informasi selengkapnya, lihat contoh kebijakan pengesahan.
  6. Simpan file.

Membuat file kebijakan dalam format JSON Web Signature

Setelah membuat file kebijakan, untuk mengunggah kebijakan dalam format JSON Web Signature (JWS), ikuti langkah-langkah di bawah ini.

  1. Hasilkan JWS, RFC7515 dengan kebijakan (dikodekan utf-8) sebagai payload. Pengidentifikasi payload untuk kebijakan yang dikodekan Base64Url harus "AttestationPolicy".

    Sampel JWT:

    Header: {"alg":"none"}
    Payload: {"AttestationPolicy":" Base64Url (policy)"}
    Signature: {}
    
    JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
    
  2. Tanda tangani kebijakan (opsional). Azure Attestation mendukung algoritma berikut:

    • Tidak ada: Jangan menandatangani payload kebijakan.
    • RS256: Algoritma yang didukung untuk menandatangani payload kebijakan.
  3. Unggah JWS dan validasi kebijakan.

    • Jika file kebijakan bebas dari kesalahan sintaksis, layanan menerima file kebijakan.
    • Jika file kebijakan berisi kesalahan sintaksis, layanan menolak file kebijakan.

Langkah berikutnya