{
  "@context": [
    "https://www.w3.org/ns/credentials/v2"
  ],
  "type": [
    "VerifiableCredential",
    "BlogPostCredential"
  ],
  "id": "urn:uuid:166d4c26-00b2-4d33-8afa-f391d22d3633",
  "issuer": "did:webvh:QmTVQnV3qGxWzWmnmWJAy1zkYswgbUmE95K5qodmAizVfr:mjendza.net",
  "validFrom": "2026-09-09T15:18:31Z",
  "credentialSubject": {
    "title": "Announcement: Terraform Provider for Entra Verified ID",
    "author": "Mateusz Jendza",
    "body": "Announcing: Terraform Provider for Entra Verified ID\r\n\r\nExcited to share something I’ve been working on for the identity community \r\n👉 GitHub Repository: https://github.com/mjendza/terraform-provider-verifiedid\r\n\r\n![provider](/images/vc/provider.jpg)\r\n\r\nI’ve created a Terraform Provider for Microsoft Entra Verified ID, enabling you to manage decentralised identity components as code - finally bringing Verifiable Credentials into your IaC workflows.\r\nWhy is it important?\r\nIdentity is evolving beyond users and apps.\r\nWith Entra Verified ID, we can model trust, credentials, and verification flows — but until now, automation has been limited.\r\nThis provider helps you: \r\n\r\n✅ Define Verified ID configurations declaratively - automate credential setup\r\n\r\n✅ Integrate VC lifecycle into CI/CD pipelines\r\n\r\nLearn it hands-on (Bonus Stage)\r\nI’ve also integrated this into a bonus stage of my workshop:\r\n👉 Entra as Code – Interactive Workshop\r\nhttps://github.com/mjendza/workshop-entra-as-code-interactive#extra and https://github.com/mjendza/workshop-entra-as-code-interactive/blob/main/doc/stage-101-vc\r\n\r\nIn this stage, you’ll see how: \r\n\r\n🔹 Terraform + Entra ID + Verified ID come together\r\n\r\n🔹 Identity automation expands into decentralised identity scenarios\r\n\r\nBuild and store your credential as code and move across environments with Terraform!",
    "datePublished": "2026-05-19",
    "url": "/post/terraform-verified-id-provider",
    "description": "Happy to share that I deployed and published workshop for Terraform Provider for Entra Verified ID",
    "tags": [
      "Authorization",
      "Security",
      "Verifiable Credentials",
      "Verified ID"
    ]
  },
  "didLog": [
    {
      "versionId": "1-QmSxeBTasSjnf9tNPskJNcg3hxC7oiap1xzcDFzTcspmzQ",
      "versionTime": "2026-03-12T22:30:56Z",
      "parameters": {
        "method": "did:webvh:1.0",
        "scid": "QmTVQnV3qGxWzWmnmWJAy1zkYswgbUmE95K5qodmAizVfr",
        "updateKeys": [
          "did:key:z6MksoqpqENZmzzA4nhCPkfcbWtRHVegGV38Yqu2arRc5Er2#z6MksoqpqENZmzzA4nhCPkfcbWtRHVegGV38Yqu2arRc5Er2"
        ],
        "portable": false,
        "nextKeyHashes": [],
        "watchers": [],
        "witness": {},
        "deactivated": false
      },
      "state": {
        "@context": [
          "https://www.w3.org/ns/did/v1",
          "https://w3id.org/security/multikey/v1"
        ],
        "id": "did:webvh:QmTVQnV3qGxWzWmnmWJAy1zkYswgbUmE95K5qodmAizVfr:mjendza.net",
        "controller": "did:webvh:QmTVQnV3qGxWzWmnmWJAy1zkYswgbUmE95K5qodmAizVfr:mjendza.net",
        "verificationMethod": [
          {
            "type": "Multikey",
            "publicKeyMultibase": "z6MksoqpqENZmzzA4nhCPkfcbWtRHVegGV38Yqu2arRc5Er2",
            "purpose": "assertionMethod",
            "id": "did:webvh:QmTVQnV3qGxWzWmnmWJAy1zkYswgbUmE95K5qodmAizVfr:mjendza.net#arRc5Er2"
          }
        ],
        "authentication": [],
        "assertionMethod": [
          "did:webvh:QmTVQnV3qGxWzWmnmWJAy1zkYswgbUmE95K5qodmAizVfr:mjendza.net#arRc5Er2"
        ],
        "keyAgreement": [],
        "capabilityDelegation": [],
        "capabilityInvocation": []
      },
      "proof": [
        {
          "type": "DataIntegrityProof",
          "cryptosuite": "eddsa-jcs-2022",
          "verificationMethod": "did:key:z6MksoqpqENZmzzA4nhCPkfcbWtRHVegGV38Yqu2arRc5Er2#z6MksoqpqENZmzzA4nhCPkfcbWtRHVegGV38Yqu2arRc5Er2",
          "created": "2026-03-12T22:30:56Z",
          "proofPurpose": "assertionMethod",
          "proofValue": "z3KyoDrjFzZbrH8Y36NHT5k9X5hBiQAD8nScjiZdZXRfauQQei4E8KKSwmxaWb8ZhEwrYgXVgs6jf5cm4T4XgjuKV"
        }
      ]
    }
  ],
  "proof": {
    "type": "DataIntegrityProof",
    "cryptosuite": "eddsa-jcs-2022",
    "verificationMethod": "did:key:z6MksoqpqENZmzzA4nhCPkfcbWtRHVegGV38Yqu2arRc5Er2#z6MksoqpqENZmzzA4nhCPkfcbWtRHVegGV38Yqu2arRc5Er2",
    "created": "2026-09-09T15:18:31Z",
    "proofPurpose": "assertionMethod",
    "proofValue": "z251HM2kPd3PbcPk2tYrmnWVXooyicX9ngnbkmDkNXnqKZ5whet5W2jim39n37h1dSavLk4Fn8trWQcW6sX1a41TS"
  }
}