- Add Legal Office of the Master seal (SVG design with Maltese Cross, scales of justice, legal scroll) - Create legal-office-manifest-template.json for Legal Office credentials - Update SEAL_MAPPING.md and DESIGN_GUIDE.md with Legal Office seal documentation - Complete Azure CDN infrastructure deployment: - Resource group, storage account, and container created - 17 PNG seal files uploaded to Azure Blob Storage - All manifest templates updated with Azure URLs - Configuration files generated (azure-cdn-config.env) - Add comprehensive Azure CDN setup scripts and documentation - Fix manifest URL generation to prevent double slashes - Verify all seals accessible via HTTPS
Entra VerifiedID Credential Manifest Templates
This directory contains templates and guides for creating credential manifests in Entra VerifiedID.
Manifest Templates
Default/Identity Manifest
File: default-manifest-template.json
Use this for general identity credentials. Includes:
- email (required)
- name (required)
- role (optional)
- userId (optional)
Diplomatic Manifest
File: diplomatic-manifest-template.json
Use this for Letters of Credence. Includes:
- recipientName (required)
- recipientTitle (required)
- missionCountry (required)
- missionType (required: embassy, consulate, delegation, mission)
- appointmentDate (required)
- expirationDate (optional)
Judicial Manifest
File: judicial-manifest-template.json
Use this for judicial appointments. Includes:
- role (required: judge, magistrate, justice, prosecutor)
- appointmentAuthority (required)
- jurisdiction (required)
- appointmentDate (required)
- termLength (optional)
Financial Manifest
File: financial-manifest-template.json
Use this for financial role credentials. Includes:
- role (required: financial-officer, treasurer, accountant, auditor)
- appointmentAuthority (required)
- jurisdiction (required)
- appointmentDate (required)
Creating Manifests
Step 1: Access Azure Portal
- Go to: https://portal.azure.com/#view/Microsoft_AAD_IAM/VerifiedIDBlade
- Navigate to: Verified ID → Credentials
Step 2: Create Manifest
- Click "Add credential" or "Create new credential"
- Choose "Custom credential" or appropriate template
- Configure using the JSON templates in this directory
Step 3: Configure Claims
For each claim in the template:
- Add the claim name
- Set the data type (String, Number, DateTime, Boolean)
- Mark as required if specified
- Add enum values if specified
Step 4: Configure Issuer
- Name: "The Order"
- Domain: "theorder.org" (or your domain)
- DID: Will be auto-generated (format:
did:web:<tenant-id>.verifiedid.msidentity.com)
Step 5: Save and Note Manifest ID
After creating the manifest:
- Note the Manifest ID (displayed after creation)
- Run:
./collect-manifest-ids.sh - Or manually add to
ENTRA_MANIFESTSenvironment variable
Quick Reference
Default Manifest
- Purpose: General identity credentials
- Use Case: Member identification, basic credentials
- Manifest ID Variable:
ENTRA_CREDENTIAL_MANIFEST_ID
Diplomatic Manifest
- Purpose: Letters of Credence
- Use Case: Diplomatic appointments
- Manifest Name:
diplomatic
Judicial Manifest
- Purpose: Judicial appointments
- Use Case: Judge, magistrate, justice credentials
- Manifest Name:
judicial
Financial Manifest
- Purpose: Financial role credentials
- Use Case: Financial officers, treasurers, accountants
- Manifest Name:
financial
Multi-Manifest Configuration
After creating all manifests, configure multi-manifest support:
./scripts/deploy/configure-multi-manifest.sh
Or manually set:
export ENTRA_MANIFESTS='{"default":"id1","diplomatic":"id2","judicial":"id3","financial":"id4"}'
Testing Manifests
After creating manifests, test with:
# Test default manifest
curl -X POST http://localhost:4002/vc/issue/entra \
-H "Content-Type: application/json" \
-d '{"claims": {"email": "test@example.com", "name": "Test User"}}'
# Test diplomatic manifest
curl -X POST http://localhost:4002/vc/issue/entra \
-H "Content-Type: application/json" \
-d '{"claims": {...}, "manifestName": "diplomatic"}'
Troubleshooting
Manifest Not Found
- Verify Manifest ID is correct
- Check manifest exists in Azure Portal
- Verify API permissions are granted
Invalid Claims
- Ensure claim names match exactly
- Check data types are correct
- Verify required claims are provided
Issuance Fails
- Check manifest is active
- Verify issuer DID is correct
- Review Entra API logs
Last Updated: [Current Date]