Probleemoplossingsgids voor Microsoft Azure Attestation
Foutafhandeling in Azure Attestation wordt geïmplementeerd volgens microsoft REST API-richtlijnen. Het foutbericht dat wordt geretourneerd door Azure Attestation-API's bevat HTTP-statuscode en naam/waardeparen met de namen 'code' en 'bericht'. De waarde van 'code' kan door mensen worden gelezen en is een indicator van het type fout. De waarde van 'bericht' is bedoeld om de gebruiker te helpen en geeft foutdetails.
Als uw probleem niet wordt opgelost in dit artikel, kunt u ook een ondersteuning voor Azure aanvraag indienen op de ondersteuning voor Azure pagina.
HTTP-401: Niet-geautoriseerde uitzondering
HTTP-statuscode
401
Foutcode niet geautoriseerd
Scenariovoorbeelden
- Kan attestation-beleid niet beheren omdat de gebruiker niet is toegewezen met de juiste rollen
- Kan attestation-beleidsaantekenaars niet beheren omdat de gebruiker niet is toegewezen met de juiste rollen
Gebruiker met de rol Lezer die probeert een attestation-beleid te bewerken in PowerShell
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
Stappen voor probleemoplossing
Voor het beheren van beleid heeft een Microsoft Entra-gebruiker de volgende machtigingen nodig voor 'Acties':
Microsoft.Attestation/attestationProviders/attestation/read
Microsoft.Attestation/attestationProviders/attestation/write
Microsoft.Attestation/attestationProviders/attestation/delete
Als u deze acties wilt uitvoeren, moet een Microsoft Entra-gebruiker de rol Attestation-inzender hebben voor de attestation-provider. Deze machtigingen kunnen ook worden overgenomen met rollen zoals 'Eigenaar' (machtigingen voor jokertekens), Inzender (machtigingen voor jokertekens) voor het abonnement/de resourcegroep.
Als u beleid wilt lezen, heeft een Microsoft Entra-gebruiker de volgende machtiging nodig voor 'Acties':
Microsoft.Attestation/attestationProviders/attestation/read
Als u deze actie wilt uitvoeren, moet een Microsoft Entra-gebruiker de rol Attestation Reader hebben voor de attestation-provider. Leesmachtigingen maken ook deel uit van rollen zoals 'Lezer' (machtigingen voor jokertekens) voor het abonnement/de resourcegroep.
Voer de volgende stappen uit om de rollen in PowerShell te controleren:
a. Start PowerShell en meld u aan bij Azure via de cmdlet Connect-AzAccount
b. Raadpleeg de richtlijnen hier om uw Azure-roltoewijzing te controleren op de attestation-provider
c. Als u geen geschikte roltoewijzing vindt, volgt u de instructies hier
HTTP- 400-fouten
HTTP-statuscode
400
Er zijn verschillende redenen waarom een aanvraag 400 kan retourneren. Hier volgen enkele voorbeelden van fouten die worden geretourneerd door Azure Attestation-API's.
Attestation-fout vanwege beleidsevaluatiefouten
Attestation-beleid omvat autorisatieregels en uitgifteregels. Enclave-bewijs wordt geëvalueerd op basis van de autorisatieregels. Uitgifteregels definiëren de claims die moeten worden opgenomen in het attestation-token. Als claims in enclave-bewijs niet voldoen aan autorisatieregels, retourneert attest-aanroepen beleidsevaluatiefout.
Foutcode PolicyEvaluationError
Scenariovoorbeelden Wanneer claims in de enclave-offerte niet overeenkomen met de autorisatieregels van attestation-beleid
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"]
Stappen voor probleemoplossing: gebruikers kunnen enclave-bewijs evalueren op basis van een SGX-attestation-beleid voordat ze hetzelfde configureren.
Verzend een aanvraag om de API te bevestigen door beleidstekst op te geven in de parameter draftPolicyForAttestation. De AttestSgxEnclave-API gebruikt dit beleidsdocument tijdens de attest-aanroep en dit kan worden gebruikt om attestation-beleid te testen voordat deze worden gebruikt. Het attestation-token dat wordt gegenereerd wanneer dit veld aanwezig is, is onbeveiligd.
Voorbeelden van attestation-beleid bekijken
Attestation-fout vanwege ongeldige invoer
Foutcode InvalidParameter
Scenariovoorbeelden van een SGX-attestation-fout vanwege ongeldige invoer. Hier volgen enkele voorbeelden van foutberichten:
- De opgegeven offerte is ongeldig vanwege een fout in het offertepand
- De opgegeven offerte is ongeldig omdat het apparaat waarop de offerte is gegenereerd niet voldoet aan de Vereisten voor de Azure-basislijn
- De opgegeven aanhalingsteken is ongeldig omdat de TCBInfo of QEID van de PCK-cacheservice ongeldig was
Stappen voor probleemoplossing
Microsoft Azure Attestation ondersteunt attestation van SGX-aanhalingstekens die zijn gegenereerd door Intel SDK en Open Enclave SDK.
Raadpleeg codevoorbeelden voor het uitvoeren van attestation met behulp van Open Enclave SDK/ Intel SDK
Ongeldige certificaatketenfout tijdens het uploaden van beleid/beleids ondertekenaar
Foutcode InvalidParameter
Scenariovoorbeelden : ondertekend beleid configureren of beleidsondertekening toevoegen/verwijderen, die is ondertekend met een ongeldige certificaatketen (bijvoorbeeld wanneer de extensie Basisbeperkingen van het basiscertificaat niet is ingesteld op Onderwerptype = CA)
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
Stappen voor probleemoplossing Het basiscertificaat moet worden gemarkeerd als worden uitgegeven door een CA (de basisbeperkingen van X.509), anders wordt het niet beschouwd als een geldig certificaat.
Zorg ervoor dat de uitbreiding basisbeperkingen van het basiscertificaat is ingesteld om aan te geven dat onderwerptype = CA
Anders wordt de certificaatketen beschouwd als ongeldig.
Voorbeelden van beleids ondertekenen en beleid bekijken
Fout bij toevoegen/verwijderen van beleids ondertekenaar
Foutcode InvalidOperation
Scenariovoorbeelden
Wanneer de gebruiker JWS uploadt zonder 'maa-policyCertificate'-claim
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
Wanneer de gebruiker geen certificaat uploadt in JWS-indeling
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
Probleemoplossingsstappen Voor het toevoegen/verwijderen van een nieuw certificaat voor beleidsaantekening gebruikt u RFC7519 JSON Web Token (JWT) met een claim met de naam x-ms-policyCertificate. De waarde van de claim is een RFC7517 JSON-websleutel, die het certificaat bevat dat moet worden toegevoegd. JWT moet zijn ondertekend met een persoonlijke sleutel van een van de geldige certificaten voor beleidsondertekening die aan de provider zijn gekoppeld. Zie voorbeelden van beleids ondertekenen.
Configuratiefout voor Attestation-beleid
Foutcode PolicyParsingError
Scenariovoorbeelden beleid met onjuiste syntaxis (bijvoorbeeld ontbrekende puntkomma)/geldig JWT-beleid)
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
Foutcode InvalidOperation
Scenariovoorbeelden van ongeldige inhoud die is opgegeven (bijvoorbeeld uploadbeleid/niet-ondertekend beleid wanneer beleidsondertekening is vereist)
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
Stappen voor probleemoplossing: zorg ervoor dat het beleid in tekstindeling UTF-8 is gecodeerd.
Als beleidsondertekening is vereist, moet attestation-beleid alleen worden geconfigureerd in de indeling van RFC7519 JSON Web Token (JWT). Als beleidsondertekening niet vereist is, kan beleid worden geconfigureerd in tekst- of JWT-indeling.
Als u een beleid in JWT-indeling wilt configureren, gebruikt u JWT met een claim met de naam AttestationPolicy. De waarde van de claim is base64URL gecodeerde versie van de beleidstekst. Als de attestation-provider is geconfigureerd met certificaten voor beleidsondertekening, moet de JWT zijn ondertekend met een persoonlijke sleutel van een van de geldige certificaten voor beleidsondertekening die aan de provider zijn gekoppeld.
Als u een beleid in tekstindeling wilt configureren, geeft u beleidstekst rechtstreeks op.
Geef in PowerShell PolicyFormat op als JWT om beleid in JWT-indeling te configureren. Standaardbeleidsindeling is Tekst.
Bekijk voorbeelden van attestation-beleid en hoe u een attestation-beleid maakt
Installatieproblemen met Az.Attestation in PowerShell
Kan de Az PowerShell-module of Az.Attestation PowerShell-module niet installeren in PowerShell.
Error
WAARSCHUWING: Kan pakketbronhttps://www.powershellgallery.com/api/v2 '' PackageManagement\Install-Package niet oplossen: er is geen overeenkomst gevonden voor de opgegeven zoekcriteria en modulenaam
Stappen voor probleemoplossing
PowerShell Gallery heeft TLS-versies (Transport Layer Security) 1.0 en 1.1 afgeschaft.
TLS 1,2 of een latere versie wordt aanbevolen.
Als u wilt blijven werken met de PowerShell Gallery, voert u de volgende opdracht uit vóór de installatie-module-opdrachten
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Problemen met toegang/configuratie van beleid in PowerShell
Gebruiker toegewezen met de juiste rollen. Maar ondervindt autorisatieproblemen bij het beheren van attestation-beleid via PowerShell.
Error
De client met object-id-object-id <> heeft geen autorisatie voor het uitvoeren van actie Microsoft.Authorization/roleassignments/write over bereik 'subcriptions/<subscriptionId>resourcegroups/secure_enclave_poc/providers/Microsoft.Authorization/roleassignments/roleassignments/<role assignmentId>' of het bereik is ongeldig. Als onlangs toegang is verleend, vernieuwt u uw referenties
Stappen voor probleemoplossing
De minimale versie van de Az PowerShell-modules die nodig zijn om attestation-bewerkingen te ondersteunen, zijn:
- Az 4.5.0
- Az.Accounts 1.9.2
- Az.Attestation 0.1.8
Voer de onderstaande opdracht uit om de geïnstalleerde versie van alle AZ-modules te controleren
Get-InstalledModule
Als de versies niet voldoen aan de minimale vereiste, voert u de PowerShell-cmdlet Update-Module uit.
Update-Module -Name Az.Attestation