|
| 1 | +--- |
| 2 | +title: Azure TPM VBS attestation usage |
| 3 | +description: Learn about how to apply TPM and VBS attestation |
| 4 | +services: attestation |
| 5 | +author: prsriva |
| 6 | +ms.service: attestation |
| 7 | +ms.topic: overview |
| 8 | +ms.date: 09/05/2022 |
| 9 | +ms.author: prsriva |
| 10 | +ms.custom: tpm attestation |
| 11 | +--- |
| 12 | + |
| 13 | +# Using TPM/VBS attestation |
| 14 | + |
| 15 | +Attestation can be integrated into various applications and services, catering to different use cases. Azure Attestation service, which acts the remote attestation service can be used for desired purposes by updating the attestation policy. The policy engine works as processor, which takes the incoming payload as evidence and performs the validations as authored in the policy. This architecture simplifies the workflow and enables the service owner to purpose build solutions for the varied platforms and use cases.The workflow remains the same as described in [Azure attestation workflow](workflow.md). The attestation policy needs to be crafted as per the validations required. |
| 16 | + |
| 17 | +Attesting a platform has its own challenges with its varied components of boot and setup, one needs to rely on a hardware root-of-trust anchor which can be used to verify the first steps of the boot and extend that trust upwards into every layer on your system. A hardware TPM provides such an anchor for a remote attestation solution. Azure Attestation provides a highly scalable measured boot and runtime integrity measurement attestation solution with a revocation framework to give you full control over platform attestation. |
| 18 | + |
| 19 | +## Attestation steps |
| 20 | + |
| 21 | +Attestation Setup has two setups. One pertaining to the service setup and one pertaining to the client setup. |
| 22 | + |
| 23 | +:::image type="content" source="./media/tpm-attestation-setup.png" alt-text="A diagram that shows the different interactions for attestation." lightbox="./media/tpm-attestation-setup.png"::: |
| 24 | + |
| 25 | +Detailed information about the workflow is described in [Azure attestation workflow](workflow.md). |
| 26 | + |
| 27 | +### Service endpoint setup: |
| 28 | +This is the first step for any attestation to be performed. Setting up an endpoint, this can be performed either via code or using the Azure portal. |
| 29 | + |
| 30 | +Here's how you can set up an attestation endpoint using Portal |
| 31 | + |
| 32 | +1 Prerequisite: Access to the Microsoft Azure Active Directory(Azure AD) tenant and subscription under which you want to create the attestation endpoint. |
| 33 | +Learn more about setting up an [Azure AD tenant](../active-directory/develop/quickstart-create-new-tenant.md). |
| 34 | + |
| 35 | +2 Create an endpoint under the desired resource group, with the desired name. |
| 36 | +> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE5azcU] |
| 37 | +
|
| 38 | +3 Add Attestation Contributor Role to the Identity who will be responsible to update the attestation policy. |
| 39 | +> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE5aoRj] |
| 40 | +
|
| 41 | +4 Configure the endpoint with the required policy. |
| 42 | +> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE5aoRk] |
| 43 | +
|
| 44 | +Sample policies can be found in the [policy section](tpm-attestation-sample-policies.md). |
| 45 | + |
| 46 | +> [!NOTE] |
| 47 | +> TPM endpoints are designed to be provisioned without a default attestation policy. |
| 48 | +
|
| 49 | + |
| 50 | +### Client setup: |
| 51 | +A client to communicate with the attestation service endpoint needs to ensure it's following the protocol as described in the [protocol documentation](virtualization-based-security-protocol.md). Use the [Attestation Client NuGet](https://www.nuget.org/packages/Microsoft.Attestation.Client) to ease the integration. |
| 52 | + |
| 53 | +1 Prerequisite: An Azure AD identity is needed to access the TPM endpoint. |
| 54 | +Learn more [Azure AD identity tokens](../active-directory/develop/v2-overview.md). |
| 55 | + |
| 56 | +2 Add Attestation Reader Role to the identity that will be need for authentication against the endpoint. Azure i |
| 57 | +> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE5aoRi] |
| 58 | +
|
| 59 | + |
| 60 | +## Execute the attestation workflow: |
| 61 | +Using the [Client](https://github.com/microsoft/Attestation-Client-Samples) to trigger an attestation flow. A successful attestation will result in an attestation report (encoded JWT token). Parsing the JWT token, the contents of the report can be easily validated against expected outcome. |
| 62 | + |
| 63 | +> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE5azcT] |
| 64 | +
|
| 65 | + |
| 66 | +Here's a sample of the contents of the attestation report. |
| 67 | +:::image type="content" source="./media/sample-decoded-token.jpg" alt-text="Sample snapshot of a decoded token for tpm attestation." lightbox="./media/sample-decoded-token.jpg"::: |
| 68 | + |
| 69 | +Using the Open ID [metadata endpoint](/rest/api/attestation/metadata-configuration/get?tabs=HTTP) contains properties, which describe the attestation service.The signing keys describe the keys, which will be used to sign tokens generated by the attestation service. All tokens emitted by the attestation service will be signed by one of the certificates listed in the attestation signing keys. |
| 70 | + |
| 71 | +## Next steps |
| 72 | +- [Set up Azure Attestation using PowerShell](quickstart-powershell.md) |
| 73 | +- [Attest an SGX enclave using code samples](/samples/browse/?expanded=azure&terms=attestation) |
| 74 | +- [Learn more about policy](policy-reference.md) |
0 commit comments