- Impression
- SombreClair
- PDF
Visualisateur de Documents Externe Constellio
Visualisateur de Documents Externe Constellio
Introduction
Le visualisateur de documents externe de Constellio permet à vos utilisateurs de consulter des documents directement dans leur navigateur via une iframe. L’accès à l’URL du visualisateur est sécurisé grâce à OAuth, nécessitant la création d’une application OAuth et l’obtention d’un jeton d’accès JWT.
Fonctionnalités principales
Consultation de documents :
Supporte de nombreux formats, notamment PDF, images, et documents Office.
Génération d’URL dynamique :
Une API fournit une URL prête à être utilisée dans une iframe.
Sécurisation via OAuth :
L’accès est protégé par un processus d’authentification sécurisé avec des jetons JWT.
Configuration
Étapes initiales (à réaliser une seule fois)
1. Générer un token pour l’API OAuth
Pour créer une application OAuth, vous devez disposer d’un token valide. Vous pouvez générer ce token à l’aide de l’API suivante :
Endpoint :
GET https://{domaine}/constellio/generateToken?username={username}&password={password}
Paramètres :
{username}
: Nom d’utilisateur valide dans Constellio.{password}
: Mot de passe associé à l’utilisateur.
Réponse : Si l'API retourne une réponse en XML, voici un exemple du format attendu :
<response>
<serviceKey>abcd1234-ef56-7890-ab12-cd34567890ef</serviceKey>
<token>12345678-abcd-90ef-1234-567890abcdef</token>
</response>
Conservez ce token pour authentifier votre requête lors de la création de l’application OAuth.
2. Créer une application OAuth
Endpoint :
POST https://{domaine}/constellio/oauth/v2/credentials?applicationName={applicationName}&client_type=CONFIDENTIAL&scope=all
En-têtes requis :
Authorization: Bearer {token}
Réponse :
{
"client_id": "votre-client-id",
"client_secret": "votre-client-secret"
}
Conservez ces informations pour générer un jeton JWT.
Étapes régulières (après configuration initiale)
3. Générer un jeton JWT
Endpoint :
POST https://{domaine}/constellio/oauth/v2/token
Payload :
{
"grant_type": "password",
"client_id": "votre-client-id",
"client_secret": "votre-client-secret",
"username": "votre-nom-d'utilisateur",
"password": "votre-mot-de-passe"
}
Note : Les données doivent être envoyées en format x-www-form-urlencoded
.
Réponse :
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "d41d8cd98f00b204e9800998ecf8427e"
}
Conservez le access_token
pour appeler l’API du visualisateur.
4. Générer l’URL du visualisateur
Endpoint :
GET https://{domaine}/constellio/api/v2/documents/{documentId}/viewer
Paramètres dynamiques :
{domaine}
: Domaine de votre instance Constellio.{documentId}
: Identifiant unique du document à consulter.
En-têtes requis :
Authorization: Bearer {access_token}
Réponse : Une URL directe, prête à être utilisée.
Exemple :
https://{domaine}/viewer/{documentId}?token={singleUseToken}&mimeType={documentMimeType}&documentTitle={documentTitle}
Détails de l'URL générée
Structure :
https://{domaine}/viewer/{documentId}?token={singleUseToken}&mimeType={documentMimeType}&documentTitle={documentTitle}
Paramètres :
{domaine}
: Domaine de l'instance Constellio (ex.https://moninstance.constellio.com
).{documentId}
: Identifiant unique du document.token
: Jeton JWT à usage unique permettant de récupérer le contenu binaire.mimeType
: Type MIME du document (ex.application/pdf
,image/jpeg
).documentTitle
: Titre lisible du document affiché dans le visualisateur (ex.Contrat_Client.pdf
).
Configuration de l'application de visualisation
L'application de visualisation est fournie sous forme d'une image Docker. Pour la configurer, il est nécessaire de définir certaines variables d'environnement :
CONSTELLIO_BASE_URL
: L'URL de base de l'instance Constellio (par exemple :https://moninstance.constellio.com
).
Ces variables doivent être configurées au moment du déploiement pour permettre à l'application de communiquer correctement avec l'instance Constellio.
Exemple d'intégration avec iframe
<iframe
src="https://moninstance.constellio.com/viewer/12345?token=eyJhbGciOiJIUzI1NiIsInR...&mimeType=application/pdf&documentTitle=Contrat_Client.pdf"
width="100%"
height="800px"
frameborder="0">
</iframe>