265 lines
7.7 KiB
Markdown
265 lines
7.7 KiB
Markdown
|
|
# Connector Status - Microsoft Entra VerifiedID & Azure Logic Apps
|
||
|
|
|
||
|
|
**Last Updated**: 2024-12-28
|
||
|
|
**Status**: ✅ All Connectors Implemented
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Microsoft Entra VerifiedID Connector
|
||
|
|
|
||
|
|
**Status**: Fully Implemented
|
||
|
|
**Package**: `@the-order/auth`
|
||
|
|
**File**: `packages/auth/src/entra-verifiedid.ts`
|
||
|
|
|
||
|
|
### Features Implemented
|
||
|
|
- ✅ OAuth2 client credentials authentication
|
||
|
|
- ✅ Automatic access token caching and refresh
|
||
|
|
- ✅ Verifiable credential issuance
|
||
|
|
- ✅ Verifiable credential verification
|
||
|
|
- ✅ Presentation request creation
|
||
|
|
- ✅ QR code generation for mobile wallets
|
||
|
|
- ✅ Issuance status checking
|
||
|
|
|
||
|
|
### API Integration
|
||
|
|
- ✅ Microsoft Entra VerifiedID REST API v1.0
|
||
|
|
- ✅ Token endpoint: `https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token`
|
||
|
|
- ✅ VerifiedID endpoint: `https://verifiedid.did.msidentity.com/v1.0/{tenantId}`
|
||
|
|
|
||
|
|
### Environment Variables
|
||
|
|
- ✅ `ENTRA_TENANT_ID` - Azure AD tenant ID
|
||
|
|
- ✅ `ENTRA_CLIENT_ID` - Azure AD application (client) ID
|
||
|
|
- ✅ `ENTRA_CLIENT_SECRET` - Azure AD client secret
|
||
|
|
- ✅ `ENTRA_CREDENTIAL_MANIFEST_ID` - Credential manifest ID
|
||
|
|
|
||
|
|
### Service Integration
|
||
|
|
- ✅ Integrated into Identity Service
|
||
|
|
- ✅ API endpoints: `/vc/issue/entra`, `/vc/verify/entra`
|
||
|
|
- ✅ Swagger documentation included
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Azure Logic Apps Connector
|
||
|
|
|
||
|
|
**Status**: Fully Implemented
|
||
|
|
**Package**: `@the-order/auth`
|
||
|
|
**File**: `packages/auth/src/azure-logic-apps.ts`
|
||
|
|
|
||
|
|
### Features Implemented
|
||
|
|
- ✅ Workflow trigger support
|
||
|
|
- ✅ Access key authentication
|
||
|
|
- ✅ Managed identity authentication (via @azure/identity)
|
||
|
|
- ✅ Pre-configured workflow triggers:
|
||
|
|
- ✅ eIDAS verification workflows
|
||
|
|
- ✅ VC issuance workflows
|
||
|
|
- ✅ Document processing workflows
|
||
|
|
|
||
|
|
### Authentication Methods
|
||
|
|
- ✅ Access key authentication
|
||
|
|
- ✅ Azure Managed Identity authentication
|
||
|
|
- ✅ Dynamic import of @azure/identity (optional dependency)
|
||
|
|
|
||
|
|
### Environment Variables
|
||
|
|
- ✅ `AZURE_LOGIC_APPS_WORKFLOW_URL` - Logic Apps workflow URL
|
||
|
|
- ✅ `AZURE_LOGIC_APPS_ACCESS_KEY` - Access key (if not using managed identity)
|
||
|
|
- ✅ `AZURE_LOGIC_APPS_MANAGED_IDENTITY_CLIENT_ID` - Managed identity client ID
|
||
|
|
|
||
|
|
### Service Integration
|
||
|
|
- ✅ Integrated into Identity Service
|
||
|
|
- ✅ Integrated into eIDAS bridge
|
||
|
|
- ✅ Optional integration (gracefully degrades if not configured)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ eIDAS to Microsoft Entra VerifiedID Bridge
|
||
|
|
|
||
|
|
**Status**: Fully Implemented
|
||
|
|
**Package**: `@the-order/auth`
|
||
|
|
**File**: `packages/auth/src/eidas-entra-bridge.ts`
|
||
|
|
|
||
|
|
### Features Implemented
|
||
|
|
- ✅ eIDAS signature verification
|
||
|
|
- ✅ Automatic credential issuance via Entra VerifiedID after eIDAS verification
|
||
|
|
- ✅ Certificate chain validation
|
||
|
|
- ✅ Certificate validity period checking
|
||
|
|
- ✅ Optional Logic Apps workflow integration
|
||
|
|
- ✅ Two-step process: verify then issue
|
||
|
|
|
||
|
|
### Flow
|
||
|
|
1. ✅ Request eIDAS signature for document
|
||
|
|
2. ✅ Verify eIDAS signature and certificate
|
||
|
|
3. ✅ Extract certificate information
|
||
|
|
4. ✅ Issue verifiable credential via Entra VerifiedID with eIDAS claims
|
||
|
|
5. ✅ (Optional) Trigger Logic Apps workflow
|
||
|
|
|
||
|
|
### Service Integration
|
||
|
|
- ✅ Integrated into Identity Service
|
||
|
|
- ✅ API endpoint: `/eidas/verify-and-issue`
|
||
|
|
- ✅ Swagger documentation included
|
||
|
|
|
||
|
|
### Environment Variables
|
||
|
|
- ✅ All eIDAS variables (`EIDAS_PROVIDER_URL`, `EIDAS_API_KEY`)
|
||
|
|
- ✅ All Entra VerifiedID variables
|
||
|
|
- ✅ All Azure Logic Apps variables (optional)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## API Endpoints Summary
|
||
|
|
|
||
|
|
### Identity Service Endpoints
|
||
|
|
|
||
|
|
#### Microsoft Entra VerifiedID
|
||
|
|
- ✅ `POST /vc/issue/entra` - Issue credential via Entra VerifiedID
|
||
|
|
- ✅ `POST /vc/verify/entra` - Verify credential via Entra VerifiedID
|
||
|
|
|
||
|
|
#### eIDAS Bridge
|
||
|
|
- ✅ `POST /eidas/verify-and-issue` - Verify eIDAS and issue credential via Entra
|
||
|
|
|
||
|
|
#### Existing Endpoints (Still Available)
|
||
|
|
- ✅ `POST /vc/issue` - Issue credential via KMS (original method)
|
||
|
|
- ✅ `POST /vc/verify` - Verify credential (original method)
|
||
|
|
- ✅ `POST /sign` - Sign document via KMS
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Recommended Additional Connectors
|
||
|
|
|
||
|
|
### High Priority
|
||
|
|
|
||
|
|
1. **Azure Key Vault Connector**
|
||
|
|
- **Purpose**: Secure secret storage
|
||
|
|
- **Status**: Not yet implemented
|
||
|
|
- **Priority**: High
|
||
|
|
- **Use Case**: Store Entra client secrets, eIDAS API keys securely
|
||
|
|
|
||
|
|
2. **Azure Service Bus / Event Grid Connector**
|
||
|
|
- **Purpose**: Event-driven architecture
|
||
|
|
- **Status**: Not yet implemented
|
||
|
|
- **Priority**: High
|
||
|
|
- **Use Case**: Async workflow processing, event notifications
|
||
|
|
|
||
|
|
### Medium Priority
|
||
|
|
|
||
|
|
3. **Azure Active Directory B2C Connector**
|
||
|
|
- **Purpose**: User authentication
|
||
|
|
- **Status**: Not yet implemented
|
||
|
|
- **Priority**: Medium
|
||
|
|
- **Use Case**: User sign-up and sign-in flows
|
||
|
|
|
||
|
|
4. **Azure Monitor / Application Insights Connector**
|
||
|
|
- **Purpose**: Enhanced observability
|
||
|
|
- **Status**: Partially implemented (OpenTelemetry exists)
|
||
|
|
- **Priority**: Medium
|
||
|
|
- **Use Case**: Enhanced monitoring for Entra VerifiedID operations
|
||
|
|
|
||
|
|
### Low Priority
|
||
|
|
|
||
|
|
5. **Azure Storage (Blob) Connector**
|
||
|
|
- **Purpose**: Document storage alternative
|
||
|
|
- **Status**: Not yet implemented (S3/GCS supported)
|
||
|
|
- **Priority**: Low
|
||
|
|
- **Use Case**: Azure-native document storage
|
||
|
|
|
||
|
|
6. **Azure Functions Connector**
|
||
|
|
- **Purpose**: Serverless function integration
|
||
|
|
- **Status**: Not yet implemented
|
||
|
|
- **Priority**: Low
|
||
|
|
- **Use Case**: Serverless workflow steps
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Testing Status
|
||
|
|
|
||
|
|
### Unit Tests
|
||
|
|
- ⚠️ Not yet implemented
|
||
|
|
- **Recommended**: Add tests for:
|
||
|
|
- EntraVerifiedIDClient
|
||
|
|
- AzureLogicAppsClient
|
||
|
|
- EIDASToEntraBridge
|
||
|
|
|
||
|
|
### Integration Tests
|
||
|
|
- ⚠️ Not yet implemented
|
||
|
|
- **Recommended**: Add tests for:
|
||
|
|
- Identity service Entra endpoints
|
||
|
|
- eIDAS bridge flow
|
||
|
|
- Logic Apps workflow triggers
|
||
|
|
|
||
|
|
### Manual Testing
|
||
|
|
- ✅ Code compiles successfully
|
||
|
|
- ✅ Type checking passes
|
||
|
|
- ⚠️ Requires Azure setup for full testing
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Configuration Checklist
|
||
|
|
|
||
|
|
### Microsoft Entra VerifiedID Setup
|
||
|
|
- [ ] Create Azure AD app registration
|
||
|
|
- [ ] Configure API permissions
|
||
|
|
- [ ] Create client secret
|
||
|
|
- [ ] Create credential manifest in Azure Portal
|
||
|
|
- [ ] Set environment variables:
|
||
|
|
- [ ] `ENTRA_TENANT_ID`
|
||
|
|
- [ ] `ENTRA_CLIENT_ID`
|
||
|
|
- [ ] `ENTRA_CLIENT_SECRET`
|
||
|
|
- [ ] `ENTRA_CREDENTIAL_MANIFEST_ID`
|
||
|
|
|
||
|
|
### eIDAS Provider Setup
|
||
|
|
- [ ] Configure eIDAS provider
|
||
|
|
- [ ] Obtain API key
|
||
|
|
- [ ] Set environment variables:
|
||
|
|
- [ ] `EIDAS_PROVIDER_URL`
|
||
|
|
- [ ] `EIDAS_API_KEY`
|
||
|
|
|
||
|
|
### Azure Logic Apps Setup (Optional)
|
||
|
|
- [ ] Create Logic App workflow
|
||
|
|
- [ ] Configure trigger endpoints
|
||
|
|
- [ ] Set environment variables:
|
||
|
|
- [ ] `AZURE_LOGIC_APPS_WORKFLOW_URL`
|
||
|
|
- [ ] `AZURE_LOGIC_APPS_ACCESS_KEY` OR
|
||
|
|
- [ ] `AZURE_LOGIC_APPS_MANAGED_IDENTITY_CLIENT_ID`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Security Considerations
|
||
|
|
|
||
|
|
### ✅ Implemented
|
||
|
|
- ✅ OAuth2 client credentials flow
|
||
|
|
- ✅ Automatic token refresh
|
||
|
|
- ✅ Secure secret handling (via environment variables)
|
||
|
|
- ✅ Certificate chain validation for eIDAS
|
||
|
|
- ✅ Validity period checking
|
||
|
|
|
||
|
|
### ⚠️ Recommended
|
||
|
|
- ⚠️ Store secrets in Azure Key Vault (not yet implemented)
|
||
|
|
- ⚠️ Use managed identity when possible
|
||
|
|
- ⚠️ Implement rate limiting for external API calls
|
||
|
|
- ⚠️ Add retry logic with exponential backoff
|
||
|
|
- ⚠️ Implement circuit breaker pattern
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Documentation
|
||
|
|
|
||
|
|
- ✅ [Microsoft Entra VerifiedID Integration Guide](./MICROSOFT_ENTRA_VERIFIEDID.md)
|
||
|
|
- ✅ [Integration Summary](./INTEGRATION_SUMMARY.md)
|
||
|
|
- ✅ [Environment Variables Documentation](../configuration/ENVIRONMENT_VARIABLES.md)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Summary
|
||
|
|
|
||
|
|
**All requested connectors are fully implemented:**
|
||
|
|
|
||
|
|
1. ✅ **Microsoft Entra VerifiedID Connector** - Complete
|
||
|
|
2. ✅ **Azure Logic Apps Connector** - Complete
|
||
|
|
3. ✅ **eIDAS to Entra Bridge** - Complete
|
||
|
|
4. ✅ **eIDAS verification connected for issuance through Entra VerifiedID** - Complete
|
||
|
|
|
||
|
|
**Next Steps:**
|
||
|
|
1. Configure Azure resources (app registration, credential manifest)
|
||
|
|
2. Set environment variables
|
||
|
|
3. Test integration end-to-end
|
||
|
|
4. Add comprehensive tests
|
||
|
|
5. Consider additional connectors (Key Vault, Service Bus, etc.)
|
||
|
|
|