Spécification

Le porte-feuille de document permettra à une personne de stocker des documents et de les utiliser sur différents services en ligne via des web-services avec une autorisation basée sur le protocole OAuth 2.0. Il sera possible pour un télé-service de proposer de nouveaux documents à un utilisateur si celui-ci l'aura préalablement autorisé à le faire, et ce pour une durée déterminée. Ces fichiers ne seront pas automatiquement introduits dans le porte-feuille, mais gardés dans un section "Réception de nouveaux documents" jusqu'à acceptation par l'utilisateur. Les fichiers déposés par un télé-service ne pourront pas être modifiés, seulement supprimés, et garderont une trace de leur origine qui pourra être transmise à un télé-service tiers.

Les documents seront des fichiers ayant éventuellement un type et une date de validité.

Les documents seront chiffrés avec une clé personnelle, cette clé personnelle sera conservée dans un cookie de session chiffré durant toute nouvelle session mais ne sera jamais copiée sur un stockage persistant par le porte-document. Cette clé ne servira qu'au chiffrement/déchiffrement des données mais pas à l'authentification qui pourra provenir d'un système plus classique de SSO.

Intégration

Lors de la demande d'autorisation le téléservice pourra indiquer s'il désire que les pages du porte-document soit habillées, si celui-ci sera utilisé en pleine page, ou non habillées. si celui-ci s'ouvrira dans une iframe ou une popup. Dans le cas d'utilisation d'une iframe ou d'une popup, le contenu présenté sur l'URL de retour du téléservice devra se charger de fermer ceux-ci.

Diagramme de séquence récupération d'un document

title Récupération d'un document

participant "Navigateur" as N
participant "Téléservice" as T
participant "Porte-document" as F

N->T: l'utilisateur accède à son téléservice
note over T: pendant ce temps authentification potentielle\nde l'utilisateur au niveau du téléservice
T->N: le téléservice est présenté à l'utilisateur
N->T: l'utilisateur demande à attacher un document\nà une demande qu'il prépare
T->N: le téléservice redirige le navigateur sur\nla page d'autorisation OAuth2.0 du porte-document
N->F: le navigateur récupère la page d'autorisation du porte documents
note over F: pendant ce temps authentification potentielle\nde l'utilisateur au niveau du porte-document
F->N: le porte document affiche à l'utilisateur\nune vue de ses documents
note over F: la vue des documents éventuellement\nrestreinte à certains types de documents si une\nindication à été transmis par le téléservice\ndans la demande d'autorisation
N->F: l'utilisateur sélectionne un document
F->N: le porte-document renvoie le navigateur sur\nle télé-service avec un code d'autorisation (protocole OAuth 2.0)
N->T: le navigateur procède à la redirection
T->F: le télé-service transforme son code d'autorisation\nen un jeton d'accès ou « access token »\nqui lui permettra d'appeler le web-service\nde récupération de fichier
F->T: le porte-document retourne un jeton d'accès\nvalide pour une durée T et uniquement pour\nle ficher sélectionné précédemment par l'utilisateur
T->F: le télé-service appelle le web-service de\nrécupération de fichier en utilisant le jeton d'accès\npour son authentification
note over F: le porte-document recherche le jeton dans sa base\net retrouve le fichier associé ainsi que\nla durée de vie du jeton, il vérifie l'existence\ndu fichier et la fraîcheur du jeton
F->T: le porte-document retourne le fichier ainsi\nque ses éventuelles métadonnées: type, date de validité, origine.
T->N: le télé-service ré-affiche la page de demande\nen prenant en compte le nouveau document attaché

Diagramme de séquence de dépôt d'un document

title Récupération d'un document

participant "Navigateur" as N
participant "Téléservice" as T
participant "Porte-document" as F

N->T: l'utilisateur accède à son téléservice
note over T: pendant ce temps authentification potentielle\nde l'utilisateur au niveau du téléservice
T->N: le téléservice indique à l'utilisateur\nqu'un nouveau document est disponible ou\npourra être disponible, et permet de le récupérer dans son porte-document
N->T: l'utilisateur demande à permettre au\ntéléservice de déposer un document\nmaintenant ou plus tard, d'un certain type
T->N: le téléservice redirige le navigateur sur\nla page d'autorisation OAuth2.0 du porte-document
N->F: le navigateur récupère la page d'autorisation du porte documents
note over F: pendant ce temps authentification potentielle\nde l'utilisateur au niveau du porte-document
F->N: le porte document affiche à l'utilisateur\n un formulaire lui demandant s'il désire\npermettre au télé-service de déposer un\ndocument tout de suite ou plus tard d'un certain\ntype, ex.: Attestation d'inscription
N->F: l'utilisateur autorise le téléservice
F->N: le porte-document renvoie le navigateur sur\nle télé-service avec un code d'autorisation (protocole OAuth 2.0)
N->T: le navigateur procède à la redirection
T->F: le télé-service transforme son code d'autorisation\nen un jeton d'accès ou « access token »\nqui lui permettra d'appeler le web-service\nde dépôt de fichier maintenant ou plus tard
note over T: un certain temps peut se passer\navant que le téléservice ne décide\nde déposer un document
T->F: une procédure vient de se terminer sur\nle téléservice et un document est déposé\nsur le porte-document, si l'évènement est\ndans la fenêtre de durée de vie du jeton\nd'accès obtenu, le téléservice appelle\nsimplement le web-service de dépôt de\nfichier avec son jeton, il ne peut\ndéposer un fichier que d'un certain type
F->T: le porte-document accepte la demande et\ndépose le fichier dans la liste des nouveaux\ndocuments de l'utilisateur et l'informe par un email

Suite à ces échanges l'utilisateur pourra consulter le nouveau document dans son porte-document.