Azure-Samples / microsoft-azure-attestation

Microsoft Azure Attestation is a solution for attesting Trusted Execution Environments (TEEs)
MIT License
30 stars 17 forks source link

page_type: sample languages:

Sample code for Intel® SGX Attestation using Microsoft Azure Attestation

Intel® SGX Attestation sample code demonstrates how to generate a quote from an SGX enclave using Open Enclave SDK / Intel SDK and then get it validated by Microsoft Azure Attestation. The "enclave held data" for the quote is populated with public key component that's held within the enclave.

The components used in the sample code are outlined in the following diagram: SGX Attestation Overview Diagram

The flow is:

  1. Build an SGX enclave
  2. Launch an SGX enclave and get SGX quote
  3. Persist SGX quote and Enclave Held Data (EHD) to JSON file
  4. Call Azure Attestation for validation
  5. Output validation results

See code sample to perform SGX attestation using Open Enclave SDK

See code sample to perform SGX attestation using Intel SDK

Sample code to manage trusted signing certificates for Isolated providers

The Microsoft Azure Attestation service (MAA) allows users to manage their own attestation provider instance. Furthermore, MAA enables users to operate their instance in Isolated mode. This means:

The user must manage an X509 certificate for each private key. Additionally, to share a signed request with the MAA service, the user must create a specific JWT format as defined in the MAA documentation here. The JWT format is described in great detail in RFC 7519.

See a code sample to manage trusted signing certificates and keys for Isolated providers here

Customer code samples leveraging Azure Attestation