Microsoft Azure Doğrulama sorun giderme kılavuzu

Azure Doğrulama hata işleme, Microsoft REST API yönergelerine göre uygulanır. Azure Doğrulama API'leri tarafından döndürülen hata yanıtı, "kod" ve "ileti" adlarıyla HTTP durum kodu ve ad/değer çiftleri içerir. "Kod" değeri insan tarafından okunabilir ve hata türünün göstergesidir. "message" değeri kullanıcıya yardımcı olmayı amaçlayıp hata ayrıntılarını sağlar.

Sorununuz bu makalede ele alınmıyorsa, Azure desteği sayfasında bir Azure desteği isteği de gönderebilirsiniz.

HTTP–401: Yetkisiz özel durum

HTTP durum kodu

Kategori 401

Hata kodu Yetkisiz

Senaryo örnekleri

  • Kullanıcı uygun rollerle atanmadığı için kanıtlama ilkeleri yönetilemiyor
  • Kullanıcı uygun rollerle atanmadığı için kanıtlama ilkesi imzalayanları yönetilemiyor

PowerShell'de kanıtlama ilkesini düzenlemeye çalışan Okuyucu rolüne sahip kullanıcı

Set-AzAttestationPolicy : Operation returned HTTP Status Code 401
At line:1 char:1
+ Set-AzAttestationPolicy -Name $attestationProvider -ResourceGroupName ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  + CategoryInfo          : CloseError: (:) [Set-AzAttestationPolicy], RestException
  + FullyQualifiedErrorId : Microsoft.Azure.Commands.Attestation.SetAzureAttestationPolicy

Sorun giderme adımları

İlkeleri yönetmek için, bir Microsoft Entra kullanıcısı "Eylemler" için aşağıdaki izinleri gerektirir:

  • Microsoft.Attestation/attestationProviders/kanıtlama/okuma

  • Microsoft.Attestation/attestationProviders/kanıtlama/yazma

  • Microsoft.Attestation/attestationProviders/attestation/delete

    Bu eylemleri gerçekleştirmek için, bir Microsoft Entra kullanıcısının kanıtlama sağlayıcısında "Kanıtlama Katkıda Bulunanı" rolüne sahip olması gerekir. Bu izinler abonelik/kaynak grubundaki "Sahip" (joker karakter izinleri), "Katkıda Bulunan" (joker karakter izinleri) gibi rollerle de devralınabilir.

İlkeleri okumak için, bir Microsoft Entra kullanıcısı "Eylemler" için aşağıdaki izni gerektirir:

  • Microsoft.Attestation/attestationProviders/kanıtlama/okuma

    Bu eylemi gerçekleştirmek için, bir Microsoft Entra kullanıcısının kanıtlama sağlayıcısında "Kanıtlama Okuyucusu" rolüne sahip olması gerekir. Okuma izinleri, abonelik/ kaynak grubundaki "Okuyucu" (joker karakter izinleri) gibi rollerin de bir parçasıdır.

PowerShell'deki rolleri doğrulamak için aşağıdaki adımları çalıştırın:

a. PowerShell'i başlatın ve "Connect-AzAccount" cmdlet'i aracılığıyla Azure'da oturum açın

b. Kanıtlama sağlayıcısında Azure rol atamanızı doğrulamak için buradaki kılavuza bakın

c. Uygun bir rol ataması bulamazsanız buradaki yönergeleri izleyin

HTTP – 400 hataları

HTTP durum kodu

400

bir isteğin 400 döndürmesi için farklı nedenler vardır. Azure Doğrulama API'ler tarafından döndürülen hatalara bazı örnekler aşağıda verilmiştir.

İlke değerlendirme hatalarına bağlı kanıtlama hatası

Kanıtlama ilkesi yetkilendirme kurallarını ve verme kurallarını içerir. Kapanım kanıtı yetkilendirme kurallarına göre değerlendirilir. Verme kuralları, kanıtlama belirtecine dahil edilecek talepleri tanımlar. Kapanım kanıtlarındaki talepler yetkilendirme kurallarına uymuyorsa, test çağrıları ilke değerlendirme hatası döndürür.

Hata kodu policyevaluationError

Senaryo örnekleri Kapanım teklifindeki talepler kanıtlama ilkesinin yetkilendirme kurallarıyla eşleşmediğinde

Native operation failed with 65518: G:\Az\security\Attestation\src\AttestationServices\Instance\NativePolicyWrapper\NativePolicyEngine.cpp(168)\(null)!00007FF801762308: (caller: 00007FF80143DCC8) Exception(0) 83FFFFEE Policy Evaluation Error has occurred Msg:[Policy Engine Exception: A Deny claim was issued, authorization failed.]

G:\Az\security\Attestation\src\AttestationServices\Instance\Enclave\api.cpp(840)\(null)!00007FF801739FF3: (caller: 00007FF801232801) LogHr(0) 83FFFFEE Policy Evaluation Error has occurred Msg:[Unhandled Enclave Exception: "Policy Evaluation Error has occurred"]

Sorun giderme adımları Kullanıcılar, aynı yapılandırmadan önce bir SGX kanıtlama ilkesine karşı kapanım kanıtını değerlendirebilir.

"draftPolicyForAttestation" parametresinde ilke metni sağlayarak API'yi kanıtlama isteği gönderin. AttestSgxEnclave API'si, kanıtlama çağrısı sırasında bu ilke belgesini kullanır ve kanıtlama ilkelerini kullanılmadan önce test etmek için kullanılabilir. Bu alan mevcut olduğunda oluşturulan kanıtlama belirteci güvenli olmayacaktır.

Kanıtlama ilkesi örneklerine bakın

Geçersiz giriş nedeniyle kanıtlama hatası

Hata kodu InvalidParameter

Senaryo örnekleri geçersiz giriş nedeniyle SGX kanıtlama hatası. Hata iletilerine bazı örnekler aşağıda verilmiştir:

  • Belirtilen teklif, teklif yardımcı dosyasındaki bir hata nedeniyle geçersiz
  • Belirtilen teklif geçersizdi çünkü teklifin oluşturulduğu cihaz Azure temel gereksinimlerini karşılamıyor
  • BELIRTILEN tırnak işareti, PCK Önbellek Hizmeti tarafından sağlanan TCBInfo veya QEID geçersiz olduğundan geçersizdi

Sorun giderme adımları

Microsoft Azure Doğrulama, Intel SDK ve Open Enclave SDK tarafından oluşturulan SGX tekliflerinin kanıtlamasını destekler.

Open Enclave SDK/Intel SDK kullanarak kanıtlama gerçekleştirmek için kod örneklerine bakın

İlke/ilke imzalayan karşıya yüklenirken geçersiz sertifika zinciri hatası

Hata kodu InvalidParameter

Senaryo örnekleri Geçersiz bir sertifika zinciriyle imzalanan imzalı ilkeyi yapılandırma veya ilke imzalayanı ekleme/silme (örneğin, kök sertifikanın Temel Kısıtlamalar uzantısı Konu Türü = CA olarak ayarlanmadığında)

Native operation failed with 65529: C:\source\src\AttestationServices\Instance\SgxPal\sgxcert.cpp(1074)\(null)!00007FFA285CDAED: (caller: 00007FFA285C36E8) Exception(0) 83FFFFF9 The requested item is not found    Msg:[Unable to find issuer certificate CN=attestationsigningcert]
C:\source\src\AttestationServices\Instance\Enclave\api.cpp(618)\(null)!00007FFA286DCBF8: (caller: 00007FFA285860D3) LogHr(0) 83FFFFF9 The requested item is not found    Msg:[Unhandled Enclave Exception: "The requested item is not found"]
At line:1 char:1
+ Set-AzAttestationPolicy -Name "testpolicy1" -ResourceGroupName "BugBa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Set-AzAttestationPolicy], RestException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Attestation.SetAzureAttestationPolicy

Sorun giderme adımları Kök sertifika bir CA (X.509 temel kısıtlamaları) tarafından verilmiş olarak işaretlenmelidir, aksi takdirde geçerli bir sertifika olarak kabul edilmez.

Kök sertifikanın Temel Kısıtlamalar uzantısının Konu Türü = CA'yı gösterecek şekilde ayarlandığından emin olun

Aksi halde sertifika zincirinin geçersiz olduğu kabul edilir.

bkz. ilke imzalayan ve ilke örnekleri

İlke imzalayan ekleme/silme hatası

Hata kodu InvalidOperation

Senaryo örnekleri

Kullanıcı "maa-policyCertificate" talebi olmadan JWS'yi karşıya yüklediğinde

Add-AzAttestationPolicySigner : Operation returned HTTP Status Code 400
Code: InvalidOperation
Message: Native operation failed with 74: ..\Enclave\enclave.cpp(2213)\(null)!: (caller: ) Exception(0) 83FF004A Bad
message    Msg:[Could not find "maa-policyCertificate" claim in policy token]
..\Enclave\api.cpp(496)\(null)!: (caller: ) LogHr(0) 83FF004A Bad message    Msg:[Unhandled Enclave Exception: "Bad
message"]
At line:1 char:1
+ Add-AzAttestationPolicySigner -Name $attestationProvider -ResourceGro ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Add-AzAttestationPolicySigner], RestException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Attestation.AddAzureAttestationPolicySigner

Kullanıcı bir sertifikayı JWS biçiminde karşıya yüklemediğinde

Add-AzAttestationPolicySigner : Operation returned HTTP Status Code 400
Code: InvalidOperation
Message: Native operation failed with 74: ..\JsonWebToken\jsonwebtoken.cpp(375)\(null)!: (caller: ) LogHr(0) 83FF004A
Bad message    Msg:[RETURN_IF_TRUE('(firstPeriod == std::string::npos)') failed with 0x4a: Malformed JWT: Could not
find first period in the token.]
..\Enclave\enclave.cpp(2106)\(null)!: (caller: ) LogHr(0) 83FF004A Bad message
Msg:[THROW_IF_ERROR('DecomposeJsonWebSignature(&policyJws, encodedJoseHeader, encodedJwsBody, jwsSignature)') failed
with 0x4a: 'Bad message']
..\Enclave\enclave.cpp(2106)\(null)!: (caller: ) Exception(0) 83FF004A Bad message
..\Enclave\api.cpp(496)\(null)!: (caller: ) LogHr(0) 83FF004A Bad message    Msg:[Unhandled Enclave Exception: "Bad
message"]
At line:1 char:1
+ Add-AzAttestationPolicySigner -Name $attestationProvider -ResourceGro ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Add-AzAttestationPolicySigner], RestException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Attestation.AddAzureAttestationPolicySigner

Sorun giderme adımları Yeni ilke imzalayan sertifika eklemek/silmek için RFC7519 JSON Web Belirteci'ni (JWT) "x-ms-policyCertificate" adlı bir taleple kullanın. Talebin değeri, eklenecek sertifikayı içeren RFC7517 bir JSON Web Anahtarıdır. JWT, sağlayıcıyla ilişkili geçerli ilke imzalayan sertifikalardan herhangi birinin özel anahtarıyla imzalanmalıdır. İlke imzalayan örneklerine bakın.

Kanıtlama ilkesi yapılandırma hatası

Hata kodu İlkesiParsingError

Senaryo örnekleri yanlış söz dizimi ile sağlanan ilke (örneğin, noktalı virgül eksik)/geçerli JWT ilkesi)

Native operation failed with 65526: ..\NativePolicyWrapper\NativePolicyEngine.cpp(31)\(null)!: (caller: ) Exception(0) 83FFFFF6 Invalid policy was specified    Msg:[Policy Parser Exception Thrown: Offending
symbol: '['
Line: '2', Column: '1'
Failure message: 'mismatched input '[' expecting ';''
Failing rule: 'policy > versionInfo']
..\Enclave\api.cpp(618)\(null)!: (caller: ) LogHr(0) 83FFFFF6 Invalid policy was specified    Msg:[Unhandled Enclave Exception: "Invalid policy was specified"]
At line:1 char:1
+ set-AzAttestationPolicy -Name $attestationProvider -ResourceGroupName ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Set-AzAttestationPolicy], RestException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Attestation.SetAzureAttestationPolicy

Hata kodu InvalidOperation

Senaryo örnekleri Sağlanan geçersiz içerik (örneğin, ilke imzalama gerektiğinde ilkeyi karşıya yükleme/imzalanmamış ilke)


Native operation failed with 74: ..\Shared\base64url.h(226)\(null)!: (caller: ) Exception(0) 83FF004A Bad message    Msg:[Unknown base64 character: 41 (')')]
..\Enclave\api.cpp(618)\(null)!: (caller: ) LogHr(0) 83FF004A Bad message    Msg:[Unhandled Enclave Exception: "Bad message"]
At line:1 char:1
+ set-AzAttestationPolicy -Name $attestationProvider -ResourceGroupName ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Set-AzAttestationPolicy], RestException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Attestation.SetAzureAttestationPolicy

Sorun giderme adımları Metin biçimindeki ilkenin UTF-8 kodlanmış olduğundan emin olun.

İlke imzalama gerekiyorsa kanıtlama ilkesi yalnızca RFC7519 JSON Web Belirteci (JWT) biçiminde yapılandırılmalıdır. İlke imzalama gerekli değilse, ilke metin veya JWT biçiminde yapılandırılabilir.

İlkeyi JWT biçiminde yapılandırmak için JWT'yi "AttestationPolicy" adlı bir taleple kullanın. Talebin değeri, ilke metninin Base64URL kodlanmış sürümüdür. Kanıtlama sağlayıcısı ilke imzalayan sertifikalarla yapılandırılmışsa JWT, sağlayıcıyla ilişkili geçerli ilke imzalayan sertifikalarından herhangi birinin özel anahtarıyla imzalanmalıdır.

Bir ilkeyi metin biçiminde yapılandırmak için ilke metnini doğrudan belirtin.

PowerShell'de, ilkeyi JWT biçiminde yapılandırmak için İlke Biçimi'ni JWT olarak belirtin. Varsayılan ilke biçimi Metin'dir.

Kanıtlama ilkesi örneklerine bakın ve kanıtlama ilkesi yazma

PowerShell'de Az.Attestation yükleme sorunları

PowerShell'de Az PowerShell modülü veya Az.Attestation PowerShell modülü yüklenemiyor.

Hata

UYARI: 'https://www.powershellgallery.com/api/v2' PackageManagement\Install-Package paket kaynağı çözümlenemiyor: Belirtilen arama ölçütleri ve modül adı için eşleşme bulunamadı

Sorun giderme adımları

PowerShell Galerisi Aktarım Katmanı Güvenliği (TLS) 1.0 ve 1.1 sürümlerini kullanım dışı bırakmıştır.

TLS 1.2 veya sonraki bir sürüm önerilir.

PowerShell Galerisi ile etkileşime devam etmek için Install-Module komutlarının öncesinde aşağıdaki komutu çalıştırın

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

PowerShell'de ilke erişimi/yapılandırma sorunları

Uygun rollerle atanan kullanıcı. Ancak Kanıtlama ilkelerini PowerShell aracılığıyla yönetirken yetkilendirme sorunlarıyla karşılaşılmaktadır.

Hata

Nesne kimliği nesne kimliğine <> sahip istemcinin 'subcriptions/subscriptionId>resourcegroups/secure_enclave_poc/providers/Microsoft.Authorization/<roleassignments/role assignmentId>' kapsamı üzerinde Microsoft.Authorization/roleassignments/<write eylemi gerçekleştirme yetkisi yok veya kapsam geçersiz. Erişim kısa süre önce verildiyse kimlik bilgilerinizi yenileyin

Sorun giderme adımları

Kanıtlama işlemlerini desteklemek için gereken Az PowerShell modüllerinin en düşük sürümü şunlardır:

  • Az 4.5.0
  • Az.Accounts 1.9.2
  • Az.Attestation 0.1.8

Tüm Az modüllerinin yüklü sürümünü doğrulamak için aşağıdaki komutu çalıştırın

Get-InstalledModule 

Sürümler en düşük gereksinimi karşılamıyorsa Update-Module PowerShell cmdlet'ini çalıştırın.

Update-Module -Name Az.Attestation