Files
the_order/manifests/entra/README.md
defiQUG 92cc41d26d Add Legal Office seal and complete Azure CDN deployment
- 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
2025-11-12 22:03:42 -08:00

147 lines
3.9 KiB
Markdown

# 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
1. Go to: https://portal.azure.com/#view/Microsoft_AAD_IAM/VerifiedIDBlade
2. Navigate to: Verified ID → Credentials
### Step 2: Create Manifest
1. Click "Add credential" or "Create new credential"
2. Choose "Custom credential" or appropriate template
3. Configure using the JSON templates in this directory
### Step 3: Configure Claims
For each claim in the template:
1. Add the claim name
2. Set the data type (String, Number, DateTime, Boolean)
3. Mark as required if specified
4. 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:
1. Note the Manifest ID (displayed after creation)
2. Run: `./collect-manifest-ids.sh`
3. Or manually add to `ENTRA_MANIFESTS` environment 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:
```bash
./scripts/deploy/configure-multi-manifest.sh
```
Or manually set:
```bash
export ENTRA_MANIFESTS='{"default":"id1","diplomatic":"id2","judicial":"id3","financial":"id4"}'
```
## Testing Manifests
After creating manifests, test with:
```bash
# 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]