✨ Nouvelles fonctionnalités : - Configuration des URLs Lambda PAdES et TSA dans .env - Certificats Odentas Media SAS (CN=Odentas Seal, O=Odentas Media SAS) - Ajout champs /Name, /Reason, /Location dans signature PDF - Documentation complète des URLs Lambda (ODENTAS_SIGN_LAMBDA_URLS.md) 🔧 Améliorations : - Gestion stricte des erreurs dans webhook completion - Ne marque plus 'completed' si scellage échoue - Vérification des variables LAMBDA_PADES_URL et LAMBDA_TSA_URL - Build Docker multi-arch (ARM64 → AMD64) avec --platform 🔐 Certificats : - CA Root: CN=Odentas Media SAS Root CA, O=Odentas Media SAS - Certificat signature: CN=Odentas Seal, O=Odentas Media SAS, OU=Signature Electronique - Chaîne complète uploadée sur S3 (s3://odentas-sign/certs/chain.pem) ✅ Tests : - Lambda PAdES testée et fonctionnelle - Lambda TSA testée et fonctionnelle - Affichage 'Odentas Media SAS' dans Adobe Reader confirmé ⚠️ Niveau eIDAS actuel : SES (Signature Électronique Simple) TODO: Améliorer conformité PAdES pour niveau AES (voir TODO_PADES_CONFORMITE.md)
101 lines
3.2 KiB
Markdown
101 lines
3.2 KiB
Markdown
# Odentas Sign - Configuration Lambda URLs
|
|
|
|
## URLs des Lambdas de Production
|
|
|
|
### Lambda PAdES Seal
|
|
**Fonction:** Scellage des PDFs avec signature électronique qualifiée (PAdES)
|
|
- **Nom:** `odentas-pades-sign`
|
|
- **URL:** `https://to6vdbnrcencifu3rlg5rygrua0hhdqc.lambda-url.eu-west-3.on.aws/`
|
|
- **Région:** eu-west-3 (Paris)
|
|
- **Variable d'environnement:** `LAMBDA_PADES_URL`
|
|
|
|
### Lambda TSA Timestamp
|
|
**Fonction:** Horodatage des documents signés (RFC 3161)
|
|
- **Nom:** `odentas-tsa-stamp`
|
|
- **URL:** `https://fs5drdovby3tye4i3fmb27b3gi0zfqyw.lambda-url.eu-west-3.on.aws/`
|
|
- **Région:** eu-west-3 (Paris)
|
|
- **Variable d'environnement:** `LAMBDA_TSA_URL`
|
|
|
|
## Configuration KMS
|
|
|
|
**Clé KMS pour chiffrement des signatures:**
|
|
```
|
|
arn:aws:kms:eu-west-3:292468105557:key/4d08be1d-a871-486e-bf70-f651f18c5f19
|
|
```
|
|
**Variable d'environnement:** `KMS_KEY_ID`
|
|
|
|
## Serveur d'Horodatage TSA
|
|
|
|
**URL du serveur TSA (Sectigo):**
|
|
```
|
|
https://timestamp.sectigo.com
|
|
```
|
|
**Variable d'environnement:** `TSA_URL`
|
|
|
|
## Configuration dans .env
|
|
|
|
Ajoutez ces lignes dans votre fichier `.env` :
|
|
|
|
```bash
|
|
# Odentas Sign - Lambda URLs
|
|
LAMBDA_PADES_URL=https://to6vdbnrcencifu3rlg5rygrua0hhdqc.lambda-url.eu-west-3.on.aws/
|
|
LAMBDA_TSA_URL=https://fs5drdovby3tye4i3fmb27b3gi0zfqyw.lambda-url.eu-west-3.on.aws/
|
|
KMS_KEY_ID=arn:aws:kms:eu-west-3:292468105557:key/4d08be1d-a871-486e-bf70-f651f18c5f19
|
|
TSA_URL=https://timestamp.sectigo.com
|
|
```
|
|
|
|
## Déploiement sur Vercel
|
|
|
|
Pour déployer en production sur Vercel, ajoutez ces variables d'environnement :
|
|
|
|
1. Aller dans **Settings** > **Environment Variables**
|
|
2. Ajouter chaque variable :
|
|
- `LAMBDA_PADES_URL`
|
|
- `LAMBDA_TSA_URL`
|
|
- `KMS_KEY_ID`
|
|
- `TSA_URL`
|
|
3. Sélectionner **Production**, **Preview**, et **Development**
|
|
4. Redéployer l'application
|
|
|
|
## Workflow de Signature Complet
|
|
|
|
1. **Signature électronique** → Les signataires signent via l'interface web
|
|
2. **Déclenchement automatique** → Quand tous ont signé, webhook appelé
|
|
3. **Lambda PAdES** → Scellage du PDF avec signature qualifiée
|
|
4. **Lambda TSA** → Horodatage du document
|
|
5. **S3 Archive** → Stockage avec compliance lock (10 ans)
|
|
6. **Email de confirmation** → Notification aux signataires
|
|
|
|
## Gestion des Erreurs
|
|
|
|
Si une Lambda échoue :
|
|
- ❌ Le statut de la demande passe à `failed`
|
|
- 🔔 Un événement `sealing_failed` est loggé
|
|
- 🚫 Le document n'est **pas** marqué comme `completed`
|
|
|
|
Avant ce correctif, le système marquait le document comme `completed` même en cas d'échec du scellage, ce qui posait un problème de conformité.
|
|
|
|
## Vérification des URLs
|
|
|
|
Pour vérifier que les Lambdas sont accessibles :
|
|
|
|
```bash
|
|
# Test Lambda PAdES
|
|
curl -X POST https://to6vdbnrcencifu3rlg5rygrua0hhdqc.lambda-url.eu-west-3.on.aws/ \
|
|
-H "Content-Type: application/json" \
|
|
-d '{}'
|
|
|
|
# Test Lambda TSA
|
|
curl -X POST https://fs5drdovby3tye4i3fmb27b3gi0zfqyw.lambda-url.eu-west-3.on.aws/ \
|
|
-H "Content-Type: application/json" \
|
|
-d '{}'
|
|
```
|
|
|
|
## Sécurité
|
|
|
|
Les Function URLs sont actuellement configurées avec `auth-type: NONE` pour permettre l'accès direct depuis Next.js.
|
|
|
|
Pour une sécurité renforcée en production, considérez :
|
|
- Utiliser IAM authentication
|
|
- Ajouter une API Gateway avec authentification
|
|
- Implémenter un système de tokens/signatures
|