Kanıtlama ilkesi yazma

Kanıtlama ilkesi, Microsoft Azure Doğrulama'a yüklenen bir dosyadır. Azure Doğrulama, bir ilkeyi kanıtlamaya özgü bir ilke biçiminde karşıya yükleme esnekliği sunar. Alternatif olarak, JSON Web İmzası'nda ilkenin kodlanmış bir sürümü de karşıya yüklenebilir. Kanıtlama ilkesini yazmak ilke yöneticisinin sorumluluğundadır. Çoğu kanıtlama senaryosunda, bağlı olan taraf ilke yöneticisi olarak görev yapar. Kanıtlama çağrısını yapan istemci, hizmetin ayrıştırdığı ve gelen taleplere (özellik kümesi, değer) dönüştürdüğü kanıtlama kanıtı gönderir. Ardından hizmet, ilkede tanımlananlara göre talepleri işler ve hesaplanan sonucu döndürür.

İlke yetkilendirme ölçütlerini, özelliklerini ve kanıtlama belirtecinin içeriğini belirleyen kurallar içerir. Örnek ilke dosyası aşağıdaki gibi görünür:

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)
};

İlke dosyasının yukarıda görüldüğü gibi üç segmenti vardır:

  • version: Sürüm, takip edilen dil bilgisinin sürüm numarasıdır.

    version=MajorVersion.MinorVersion	
    

    Şu anda desteklenen tek sürüm 1.0 sürümüdür.

  • authorizationrules: Azure Doğrulama verme işlemlerine devam etmesi gerekip gerekmediğini belirlemek için önce denetlenecek talep kuralları koleksiyonu. Talep kuralları tanımlanma sırasına göre uygulanır.

  • verme: İlkede tanımlandığı gibi kanıtlama sonucuna ek bilgi eklemek için değerlendirilecek talep kuralları koleksiyonu. Talep kuralları tanımlanma sırasına göre uygulanır ve isteğe bağlıdır.

Daha fazla bilgi için bkz. talep ve talep kuralları .

İlke dosyasının taslağını oluşturma

  1. Yeni bir dosya oluşturun.
  2. Dosyaya sürüm ekleyin.
  3. Yetkilendirme ve verme işlemleri için bölümler ekleyin.
version=1.0;
authorizationrules
{
=>deny();
};

issuancerules
{
};

Yetkilendirme kuralları, hiçbir verme kuralının işlenmediğinden emin olmak için herhangi bir koşul olmadan deny() eylemini içerir. Alternatif olarak, yetkilendirme kuralı verme kurallarının işlenmesine izin vermek için permit() eylemini de içerebilir.

  1. Yetkilendirme kurallarına talep kuralları ekleme
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

issuancerules
{
};

Gelen talep kümesi tür, değer ve verenle eşleşen bir talep içeriyorsa, permit() eylemi ilke altyapısına verme belgelerini işlemesini söyler.

  1. Verenlere talep kuralları ekleyin.
version=1.0;
authorizationrules
{
[type=="secureBootEnabled", value==true, issuer=="AttestationService"]=>permit();
};

issuancerules
{
=> issue(type="SecurityLevelValue", value=100);
};

Giden talep kümesi aşağıdakilere sahip bir talep içerir:

[type="SecurityLevelValue", value=100, valueType="Integer", issuer="AttestationPolicy"]

Karmaşık ilkeler benzer şekilde oluşturulabilir. Daha fazla bilgi için bkz . kanıtlama ilkesi örnekleri.

  1. Dosyayı kaydedin.

İlke dosyasını JSON Web İmzası biçiminde oluşturma

İlke dosyası oluşturduktan sonra, JWS biçiminde bir ilkeyi karşıya yüklemek için aşağıdaki adımları izleyin.

  1. Yük olarak ilke (utf-8 kodlanmış) ile JWS, RFC 7515 oluşturma

    • Base64Url kodlanmış ilkesinin yük tanımlayıcısı "AttestationPolicy" olmalıdır.

    Örnek JWT:

    Header: {"alg":"none"}
    Payload: {"AttestationPolicy":" Base64Url (policy)"}
    Signature: {}
    
    JWS format: eyJhbGciOiJub25lIn0.XXXXXXXXX.
    
  2. (İsteğe bağlı) İlkeyi imzalayın. Azure Doğrulama aşağıdaki algoritmaları destekler:

    • Hiçbiri: İlke yükünü imzalamayın.
    • RS256: İlke yükünü imzalamak için desteklenen algoritma
  3. JWS'yi karşıya yükleyin ve ilkeyi doğrulayın.

    • İlke dosyasında söz dizimi hataları yoksa, ilke dosyası hizmet tarafından kabul edilir.
    • İlke dosyasında söz dizimi hataları varsa, ilke dosyası hizmet tarafından reddedilir.

Sonraki adımlar