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