La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Le nouveau format XPS (XML Paper Specification) et la sécurité Philippe Beraud Consultant Principal Microsoft France.

Présentations similaires


Présentation au sujet: "Le nouveau format XPS (XML Paper Specification) et la sécurité Philippe Beraud Consultant Principal Microsoft France."— Transcription de la présentation:

1 Le nouveau format XPS (XML Paper Specification) et la sécurité Philippe Beraud Consultant Principal Microsoft France

2 Principales demandes Ouverture Formats basés sur XML/ZIP Bénéficier dune large palette doutils et de solutions disponibles Extensibilité et transparence Pouvoir étendre les formats avec ses données propres Pouvoir facilement utilisées les données « capturées » dans les documents Intégration facile au sein de solutions et de Workflows Archivage – Ne pas avoir besoin dapplications particulières pour reconsulter les documents Support dune solution de bout-en-bout (e2e) Applications dédition Plateformes, Workflows et applications LOB PériphériquesSécurité Documents fiables Le contenu est sûr et prévisible

3 Spécifications Open Document Open Packaging Conventions (paquet) Définit des conventions pour l'usage d'URI, dXML, et dUnicode pour stocker le contenu et les ressources Définit des services communs pour n'importe quel document : propriétés élémentaires, signatures numériques Définit le « mapping » du paquet vers larchive ZIP XML Paper Specification (Document XPS) Utilise la spécification Open Packaging Conventions « Papier électronique » à disposition fixe et archivable Spécifie des balises compatibles avec XAML

4 Paquets partagé Les formats Office system 2007 et les documents XPS partagent Open packaging conventions (paquet) Services communs dans la spécification : propriétés élémentaires, signatures numériques Services établit pour travailler avec le paquet : Gestion des droits dusage Les éditeurs de solutions, les entreprises, etc. peuvent utiliser le même paquet Utiliser les APIs Document de WinFX WPF Disposer dune API de gestion de fichiers plutôt que de devoir définir et développer une API propre à chaque format de fichier Créer des paquets directement à laide des outils XML et ZIP disponibles Objectif Réduire substantiellement le code et leffort dingénierie requis pour gérer et utiliser de multiples types de documents

5 Définitions du format de fichier XPS : XML Paper Specification Paquetage : la fondation de multiples formats de fichiers ZIP Abstraction Parties et Relations Services Communs Spécification « Open Packaging Conventions» Spécification « Open Packaging Conventions » XML Paper Specification Formats Open XML Office system 2007 Formatspersonnalisés FormatDocumentXPS

6 Nouvelles Technologies Document Open Packaging Conventions et XML Paper Specification (XPS) à destination de nimporte quelle application sur nimporte quelle plateforme SpécificationsOuvertes Un utilitaire WPF qui permet aux utilisateurs de visualiser, de protéger et dimprimer des documents XPS. Hébergé dans IE XPS Viewer Un convertisseur Imprimer-vers-fichier pour la création de documents XPS à partir de nimporte quelle application sur la plateforme Microsoft Windows Pilote dimpression Vers « Sauvegarder sous » Document XPS Interfaces de programmation (APIs) pour la gestion des paquets et du contenu APIs Document WinFX WPF Pipeline dimpression avec un format de spool intégré et un langage de description page-imprimante (PDL) pour accélérer et améliorer la fidélité des travaux dimpression. Nouveau modèle de pilote XPS Print Path

7 Usage du « papier électronique » 80% des « papiers électroniques »… Sont utilisés pour imprimer partager visualiser archiver 70% de lensemble des PDFs provient de Microsoft Word Les nouvelles technologies Document supportent pleinement ces 80% Utiliser la puissance des outils Microsoft Office pour obtenir le résultat souhaité Publier le document vers XPS Directement depuis Office system 2007 Depuis nimporte quelle application Windows avec le pilote dimpression Microsoft XPS Document Writer (MXDW) Depuis des applications.Net en sauvegardant directement au format XPS à partir dun contenu XAML arbitraire via WPF/MXDW Visualiser depuis IE avec XPS Viewer Poser et valider les signatures numériques Publier et consommer des documents XPS avec des droits dusage Archiver dans Windows SharePoint Services (WSS) …Les autres 20% sont le vecteur d'autres solutions de documents Assemblage de documents, collaboration, formulaires, transactions métier sécurisées (reçu, ticket, bordereau denvoi, etc.) Les nouvelles technologies Document couvrent également ces 20% Utiliser les documents XPS pour publier visualiser archiver conjointement avec les autres technologies WinFX

8 Opportunités offertes Définir des formats personnalisés de fichier Définir des formats personnalisés de fichier Accéder directement au contenu des fichiers Office system 2007 et des documents XPS Accéder directement au contenu des fichiers Office system 2007 et des documents XPS Offrir des solutions pour les documents XPS, Office system 2007 ou fichiers personnalisés Offrir des solutions pour les documents XPS, Office system 2007 ou fichiers personnalisés API WinFX Document XPS API WinFX Package APIsWinFX Formats Open XML Office system 2007 FormatDocumentXPS Formatspersonnalisés APIspersonnalisées Applications

9 Modèle de paquet Offre une fondation pour la définition dun format de fichier A destination de nimporte quelle application De multiples implémentations sous jacentes Document XPS Format Open XML Office system 2007 Autres Bâti sur les concepts de parties (parts) et de relations (relationships) Les parties correspondent aux flux de données (XML ou binaire) Les relations décrivent comment les parties sont rattachés entre elles Stocké dans une archive ZIP Bénéficier de la robustesse de ZIP ZIP est recouvrable La compression bénéficie à la taille des fichiers

10 Services communs : propriétés élémentaires Un paquetage peut inclure un ensemble de métadonnées regroupé sous une unique partie XML : la partie Core Properties Découverte via une relation racine avec un type de relation spécifique Utilise un type de contenu spécifique Disponibles aussi bien pour les documents XPS que les fichiers Office system 2007 Category Content Status ContentType Creator DateCreated DateModified Description Identifier Keywords Language LastModifiedBy LastPrinted Revision Subject Title Version Core Properties XPS Package Relationships Common Package Parts Core Properties

11 Services communs : signatures numériques Permet de valider que le contenu signé na pas été altéré Disponible pour lensemble des formats de fichier basés sur les paquetages Respecte les standards Recommandation W3C XML Digital Signature XML-Signature Syntax and Processing W3C Recommendation 12 February 2002, Certificats X509 v3 Les parties signées sont définies par la politique de signature Les applications valide la signature en accord avec une politique spécifique Lajout de nouvelles parties et relations peut casser une signature, selon la politique La politique par défaut des documents XPS consiste à signer lensemble des parties et relations définies Peut être étendu par un format particulier

12 Services communs : signatures numériques Modèle La partie Signature Origin constitue la racine de lensemble des signatures dans le paquetage Chaque signature est localisée dans sa propre partie Package XPS Relationships Common Package Parts Core Properties Signature Origin X509 Cert Signature X509 Cert Signed part Signature Resources Signed Parts RecommendedParts Relationship URI Reference

13 OLE Property Storage Core Properties RM envelope RM Licenses XPS Package Relationships Common Package Parts Core Properties Signature Origin Signature X509 Cert Signature X509 Cert Signed part Gestion des droits dusage Susceptible dutiliser nimporte quelle solution de gestion de droits dusage Composante externe à la spécification XPS Intégration avec linfrastructure Windows Right Management Services (RMS) fournie avec WinFX Les fichiers Office system 2007 et les documents XPS supportent les même droits Read, Print, Copy, Full Control Les droits RM sont maintenus lors de la sauvegarde de fichiers Office system 2007 en documents XPS, les droits RM sont automatiquement appliqués à lensemble des documents XPS insérés dans une bibliothèque SharePoint RM, Outlook 2007 applique automatiquement les droits RM des documents XPS lorsquils sont mis en pièces jointes dun mèl avec droits dusage

14 Démonstration Inspection dun paquetage Utilisation des utilitaires ZIP

15 Document XPS Défini sur la base dun paquetage Parties clé dun document XPS FixedDocumentSequence : Racine du document FixedDocument : Balise document XML FixedPage : Balise page XML Font : Police de caractères intégrée Image : Images intégrée Thumbnail : Images vignette de la page PrintTicket : Paramétrage de limprimante pour la page/le document DocumentStructure : Structure sémantique du document StoryFragments : Structure sémantique de la page Relations clé dun document XPS StartPart : Pointe vers la partie FixedDocumentSequence RequiredResource : Image/Police de caractères nécessaire pour « rendre » la page PrintTicket : Paramétrage de limprimante

16 Format des documents XPS Package XPS Relationships Common Package Parts Core Properties Thumbnail Signature Origin Signature X509 Cert Fixed Payload Parts FixedDocumentSequence FixedDocument FixedPage DocumentStructure Font Fonts et Images Thumbnail Lensemble des parties est signé Resources OptionalParts Required or RecommendedParts Relationship URI Reference

17 APIs Document WinFX WinFX offre à travers Windows Presentation Foundation (WPF) des APIs vis-à-vis des services communs aux paquetages Sérialiser du contenu WPF XAML vers XPS Créer/Utiliser des documents XPS Créer/Utiliser des paquets Créer/Utiliser des documents avec des permissions restreinte Utiliser des « Viewers » personnalisés

18 Traiter des paquets APIs WPF Packaging Ouvrir et fermer des paquets Créer et supprimer des parties et des relations Obtenir le nom, le type de contenu, et le flux des parties Lire et écrire les flux de partie Obtenir lID, le type, et URI cible pour les relations Exemple de code – Lire les données dun paquets // Open existing package Package package = Package.Open(fileName, FileMode.Open); // Find parts based on relationship type string relType = PackageRelationshipCollection packRels = package.GetRelationshipsByType(relType); // Assuming there is only one relationship of this type IEnumerator relsEnumerator = packRels.GetEnumerator(); relsEnumerator.MoveNext(); PackageRelationship rel = relsEnumerator.Current; // For this sample, fetch only the first part in this collection PackagePart part = package.GetPart(PackUriHelper.ResolvePartUri( new Uri(/, UriKind.Relative), rel.TargetURI)); // Get the stream for this part Stream partStream = part.GetStream(); System.Windows.Xps.Packaging

19 Travailler avec les propriétés élémentaires Les APIs Packaging permettent de travailler avec les propriétés élémentaires Exemple de code – Modifier la version Philippe Beraud Session Journées Microsoft de la Sécurité Formats de fichier XML Session XML;XPS;Office;Format Session JMS sur les formats de fichiers XML. Présentation Finale /03/ :15:00 03/03/ :15:00 Philippe Beraud 03/03/ :15:00 FR-Fr VEN01 Package p = Package.Open(fileName, FileMode.Open, FileAccess.ReadWrite); p.CoreProperties.Version = "1.0a"; p.Close();

20 Signer avec les APIs Packaging Les APIs Package Digital Signature travaillent avec une collection de parties, de relations, et dobjets personnalisés intégrés dans la signature PackageDigitalSignatureManager Obtenir, ajouter ou supprimer une signature depuis/dans le paquetage PackageDigitalSignature Obtenir la liste des parties signées par la signature Obtenir la liste des références vers les relations signées Obtenir la liste des objets signés et non signés dans la signature Vérifier la signature Vérifier le certificat de signature System.IO.Packaging / PackageDigitalSignatureManager PackageDigitalSignature

21 Signer un paquet Exemple de code using System; using System.IO.Packaging; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; … Package p = Package.Open(fileName, FileMode.Open, FileAccess.ReadWrite); PackageDigitalSignatureManager dsm = new PackageDigitalSignatureManager(p); // Get all Parts and add them to the List of Parts to be signed. Cannot pass GetParts() enumeration directly // as it is invalidated during Sign process. List toSign = new List (); // No signing policy defined, just sign everything foreach (PackagePart packagePart in p.GetParts()) { toSign.Add(packagePart.Uri); } //Sign Collection X509Certificate certificate = X509Certificate.CreateFromCertFile(certFilename); dsm.Sign(toSign, certificate); p.Close();

22 Démonstration Signatures numériques

23 Traiter des documents XPS Les APIs XPS Document remplacent les APIs Packaging pour le format Document XPS Adapté aux besoins spécifiques des documents XPS Manipuler des documents XPS Ajouter/supprimer des documents à la séquence de documents et des pages aux documents Récupérer ou positionner les propriétés élémentaires Récupérer ou positionner les vignettes Ajouter un contenu de page Ex. couleurs, polices de caractère, images, dictionnaires de ressources Récupérer ou positionner les PrintTickets (XML de contrôle de travail dimpression) Gérer la signature numérique Signer automatiquement en conformité avec la politique de signature Document XPS Spécifier les exigences de co-signature System.Windows.Xps.Packaging / XpsDocumentIDocumentSequenceReaderIDocumentSequenceWriterIFixedDocumentReaderIFixedDocumentWriterIFixedPageReaderIFixedPageWriter

24 Accéder au contenu de documents XPS Exemple de code – Fusionner des documents FixedDocumentSequence permet de fusionner de multiple documents en un seul document XPS FixedDocumentSequence MergeXpsDocuments(FixedDocumentSequence[] xpsDocs) { FixedDocumentSequence docSeqOut = new FixedDocumentSequence(); foreach (FixedDocumentSequence ds in xpsDocs) { foreach (DocumentReference dr in ds.References) { DocumentReference docRef = new DocumentReference(); FixedDocument fixedDoc = new FixedDocument(); foreach (PageContent pc in dr.GetDocument(false).Pages) { PageContent pageContent = new PageContent(); FixedPage fixedPage = pc.GetPageRoot(false); ((System.Windows.Serialization.IAddChild)pageContent).AddChild(fixedPage); fixedDoc.Pages.Add(pageContent); } docRef.SetDocument(fixedDoc); docSeqOut.References.Add(docRef); } return docSeqOut; }

25 Document XPS et conformité avec des législations Le contenu est immuable (disposition fixe) WYSIWYG (What You See Is What You Get) – Intéressant pour les scénarios darchivage ainsi que pour la non-répudiation Le contenu est sécurisé et prévisible Peut seulement contenu un jeu bien défini de types de contenus Du code arbitraire, des macros; des média, etc. ne sont PAS autorisés Support des signatures numériques et de Windows Rights Management (RMS) Protection de linformation sensible Des politiques dentreprise peuvent être imposées même lorsque les documents quittent ses frontières Maintien de lauthenticité, de lintégrité et de la confidentialité du document

26 Signatures numériques des documents XPS Les documents XPS peuvent intégrer une partie définition de signature qui définit : Intention suggérée de la signature Signataire exigé Date « sign-by » exigée Locale suggérée Emplacement du point de la signature WinFX propose des APIs pour la signature La signature des documents XPS sappuie sur des politiques pour exclure certaines parties, permettant aux utilisateurs de Modifier les propriétés élémentaires Ajouter une nouvelle signature Ajouter des annotations (réservé pour un usage futur) Systems.Windows.Xps.Packaging / XpsDigitalSignature System.Security.Cryptography.X509Certificates

27 Signer au niveau document XPS (aucune exclusion) using System; using System.Windows.Xps.Packaging; using System.Xml; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; … XpsDocument document = new XpsDocument(fileName, FileAccess.ReadWrite); X509Certificate certificate = X509Certificate.CreateFromCertFile(certFilename); document.SignDigitally(certificate, true, XpsDigSigPartAlteringRestrictions.None); … foreach (XpsDigitalSignature digitalSignature in document.Signatures){ if (digitalSignature.Verify() == System.IO.Packaging.VerifyResult.Success) { Console.WriteLine("The digital signature was applied successfully!"); break; } Exemple de code

28 Publier un document XPS avec droits dusage Les APIs Packaging supportent la notion de paquetage chiffré Intégration avec linfrastructure Windows Right Management Services (RMS) fournie avec WinFX LAPI « enveloppe » lAPI RMS v1.0 SP1 en code natif Exemple de code using System; using System.Windows.Xps.Packaging; using System.Xml; using System.Security.RightsManagement; using System.Security … // Build Unsigned publish license UnsignedPublishLicense publishLicense new UnsignedPublishLicense(); unsignedPublishLicense.Grants.Add(new ContentGrant(new AuthenticationType.Windows), ContentRight.Owner)); ContentUser author = new AuthenticationType.Windows); unsignedPublishLicense.Owner = author; unsignedPublishLicense.ValidFrom = new DateTime(…); unsignedPublishLicense.ValidUntil = new DateTime(…); … System.Securitry.RightsManagement / UnsignedPublishLicense Systems.IO.Packaging / EncryptedPackage

29 Publier un document XPS avec droits dusage Exemple de code (suite) // Build Secure Environement string appManifest = " "; SecureEnvironment secureEnv = null; if (SecureEnvironment.IsUserActivated(author)) SecureEnvironment secureEnv = SecureEnvironment.Create(appManifest, author); Else SecureEnvironment secureEnv = SecureEnvironment.Create(appManifest, author.AuthenticationType, UserActivationMode.Permanent); // Sign the Unsigned Publish License to build the Publish License UseLicense authorUseLicense; PublishLicense publishLicense = unsignedPublishLicense.Sign(secureEnv, out authorUseLicense); // Bind the authors Use License BindingFailure errorCode; CryptoProvider cryptoProvider = authorUseLicense.Bind(secureEnv, out errorCode); // Create a EncryptedPackage object to RM the contents Stream packageStream = File.OpenRead(xpsExistingFile); EncryptedPackageEnvelope ePackage = EncryptedPackageEnvelope.CreateFromPackage(xpsNewFile, packageStream, publishLicense, cryptoProvider); // Add a Use License for the author RightManagementInformation rmi = ePackage.RightManagementInformation; Rmi.SaveUseLicense(author, authorUseLicense); ePackage.Close(); …

30 Consommer un document XPS avec droits dusage Exemple de code using System; using System.Xml; using System.Security.RightsManagement; using System.Security … ContentUser currentUser = new AuthenticationType.Windows); // Build Secure Environement SecureEnvironment secureEnv = null; if (SecureEnvironment.IsUserActivated(currentUser)) SecureEnvironment secureEnv = SecureEnvironment.Create(appManifest, currentUser); else SecureEnvironment secureEnv = SecureEnvironment.Create(appManifest, currentUser.AuthenticationType, UserActivationMode.Permanent); if (!EncryptedPackageEnvelope.IsEncryptedPackageEnvelope(xpsFile)) return; EncryptedPackageEnvelope ePackage = EncryptedPackageEnvelope.Open(xpsFile, FileMode.Read); RightManagementInformation rmi = ePackage.RightManagementInformation; String embeddedUseLicense; UseLicense userLicense = rmi.LoadUseLicense(currentUser); if (userLicense == null) { // Acquire Use License PublishLicense publishLicense = rmi.LoadPublishLicense(); useLicense = publishLicense.AcquireUseLicense(secureEnv); }

31 Consommer un document XPS avec droits dusage Exemple de code (suite) // Bind Use License BindingFailure errorCode; CryptoProvider cryptoProvider = useLicense.Bind(secureEnv, out errorCode); if (cryptoProvider != null) { foreach(ContentGrant grant in cryptoProvider.BoundRights) { … } if (cryptoProvider.CanDecrypt) { byte[] clearText = cryptoProvider.Decrypt(byte[] ePackage.GetPackage()); … } else { // Handle the BindingFailure error code here }

32 Windows Workflow Foundation (WF) Technologie WinFX de Workflows commune pour les produits Microsoft, les solutions tierces, etc. Framework extensible pour la construction de Workflows au sein des applications Windows Ni un serveur ou une application Fonctionnalités clé Modèle unifié pour les Workflows humain et système Les Workflows sont un ensemble dactivités Les activités sont les éléments constituants Les tâches sont des activités humaines Les Workflows sexécutent dans un processus hôte : tout serveur ou application Framework extensible dactivités Possibilité de construire ses propres bibliothèques dactivités Concepteur visuel pour lédition graphique et de code Disponibilité Intégré dans le Runtime WinFX A la base des Workflows Office system 2007 Workflow Concepteur visuel Activité Bibliothèque dactivités personnalisées élémentaires Moteur dexécution Services dexécution Windows Workflow Foundation Processus Hôte

33 Automatisation du cycle de vie des documents Les nouvelles APIs Document WPF offrent aux activités un accès transparent aux paquets et documents XPS, quil sagisse du contenu, des ressources ou encore de la protection Ces APIs autorisent la création dactivités qui automatisent la gestion du cycle de vie des documents Pages Filigrane Obtenir une page, une image, une vignette Editer (Trouver une chaîne et Remplacer) Ajouter/Obtenir/Supprimer des propriétés élémentaires Imprimer des documents XPS Assembler de multiples documents XPS Signer avec la politique de signature Ajouter une demande de signature Vérifier des signatures Appliquer des droits dusage Définir qui dispose de quel(s) droit(s) sur les documents paquetés au fur et à mesure que le Workflow progresse Positionner une date dexpiration pour accéder aux documents Ouvrir un document avec des droits dusage

34 En guise de conclusion Le paquet partagé réduit considérablement la complexité de gérer des documents XPS/Office system 2007/tierces parties Avec à la clé une réduction substantielle des coûts dingénierie via lutilisation des APIs WPF pour la gestion des fichiers plutôt que de développer une API propre Les documents XPS répondent complètement aux usages des « papiers électroniques » Lutilisation des documents XPS est une voie facile pour assembler, sécuriser, partager et archiver un contenu Les nouvelles APIs WPF permettent dautomatiser le contenu et les tâches de gestion Les nouvelles APIs WPF et WF créent de nouvelles opportunités dans lautomatisation de la gestion du cycle de vie de documents Définition dactivités WF comme blocs constituants de Workflows documentaires

35 Pour plus dinformations sur les packages et XPS Page daccueil XML Paper Specification Open Package Specifications v0.8 December XML Paper Specification v0.8 December Document Workflow Advances in Windows Vista Posez vos questions sur

36 Pour plus dinformations sur les APIs WinFX Page daccueil WinFX Bêta WinFX WinFX System.IO.Packaging Namespace us/cpref12/html/n_system_io_packaging.asp us/cpref12/html/n_system_io_packaging.asp WinFX System.Windows.Xps.Packaging Namespace us/cpref35/html/n_system_windows_xps_packaging.asp us/cpref35/html/n_system_windows_xps_packaging.asp Windows Presentation Foundation Hands-On-Labs Programming XPS Documents, WinFX Printing and Archiving, Extending the XPS Document Viewing Experience efault.aspx efault.aspx

37 Pour plus dinformations sur les formats Office Open XML Page daccueil Office system 2007 Preview « The Microsoft Office Open XML Formats » A742-E AE65/FileFormatsPreview.doc A742-E AE65/FileFormatsPreview.doc « Microsoft Office Open XML Formats Frequently Asked Questions » Office 2003 XML Reference Schemas Visitez le blog de Brian Jones :

38

39 Microsoft France 18, avenue du Québec Courtaboeuf Cedex


Télécharger ppt "Le nouveau format XPS (XML Paper Specification) et la sécurité Philippe Beraud Consultant Principal Microsoft France."

Présentations similaires


Annonces Google