le nouveau format xps (xml paper specification) et la sécurité philippe beraud consultant...

39
Le nouveau format XPS ( XML Paper Specification) et la sécurité Philippe Beraud Consultant Principal Microsoft F rance

Upload: edouard-girard

Post on 03-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

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

Le nouveau format XPS (XML Paper Specification) et la sécurité

Le nouveau format XPS (XML Paper Specification) et la sécurité

Philippe BeraudConsultant Principal

Microsoft France

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

Principales demandesOuvertureOuverture

Formats basés sur XML/ZIPFormats basés sur XML/ZIPBénéficier d’une large palette d’outils et de solutions disponiblesBénéficier d’une large palette d’outils et de solutions disponibles

Extensibilité et transparenceExtensibilité et transparencePouvoir étendre les formats avec ses données propresPouvoir étendre les formats avec ses données propres

Pouvoir facilement utilisées les données « capturées » dans les Pouvoir facilement utilisées les données « capturées » dans les documentsdocuments

Intégration facile au sein de solutions et de WorkflowsIntégration facile au sein de solutions et de Workflows

Archivage – Ne pas avoir besoin d’applications particulières pour Archivage – Ne pas avoir besoin d’applications particulières pour reconsulter les documentsreconsulter les documents

Support d’une solution de bout-en-boutSupport d’une solution de bout-en-bout (e2e) (e2e)Applications d’éditionApplications d’édition

Plateformes, Workflows et applications LOBPlateformes, Workflows et applications LOB

Périphériques Périphériques

SécuritéSécuritéDocuments fiablesDocuments fiables

Le contenu est sûr et prévisibleLe contenu est sûr et prévisible

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

Spécifications Open Document

Open Packaging Conventions (Open Packaging Conventions (paquetpaquet))Définit des conventions pour l'usage d'URI, d’XML, et d’Unicode Définit des conventions pour l'usage d'URI, d’XML, et d’Unicode pour stocker le contenu et les ressourcespour stocker le contenu et les ressources

Définit des services communs pour n'importe quel document : Définit des services communs pour n'importe quel document : propriétés élémentaires, signatures numériquespropriétés élémentaires, signatures numériques

Définit le « mapping » du paquet vers l’archive ZIPDéfinit le « mapping » du paquet vers l’archive ZIP

XML Paper Specification (Document XPS)XML Paper Specification (Document XPS)Utilise la spécificationUtilise la spécification Open Packaging Conventions Open Packaging Conventions

« Papier électronique » à disposition fixe et archivable« Papier électronique » à disposition fixe et archivableSpécifie des balises compatibles avec XAMLSpécifie des balises compatibles avec XAML

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

Paquets partagé

Les formats Office system 2007 et les documents XPS Les formats Office system 2007 et les documents XPS partagentpartagent

Open packaging conventions (paquet)Open packaging conventions (paquet)

Services communs dans la spécification : propriétés élémentaires, Services communs dans la spécification : propriétés élémentaires, signatures numériquessignatures numériques

Services établit pour travailler avec le paquet : Gestion des droits Services établit pour travailler avec le paquet : Gestion des droits d’usaged’usage

Les éditeurs de solutions, les entreprises, etc. peuvent utiliser Les éditeurs de solutions, les entreprises, etc. peuvent utiliser le même paquetle même paquet

UtiliserUtiliser les APIs Document de WinFX WPF les APIs Document de WinFX WPFDisposer d’une API de gestion de fichiers plutôt que de devoir définir et Disposer d’une API de gestion de fichiers plutôt que de devoir définir et développer une API propre à chaque format de fichierdévelopper une API propre à chaque format de fichier

Créer des paquets directement à l’aide des outils XML et ZIP Créer des paquets directement à l’aide des outils XML et ZIP disponiblesdisponibles

ObjectifObjectifRéduire substantiellement le code et l’effort d’ingénierie requis Réduire substantiellement le code et l’effort d’ingénierie requis pour gérer et utiliser de multiples types de documentspour gérer et utiliser de multiples types de documents

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

Définitions du format de fichier

XPS : XPS : XML Paper SpecificationXML Paper Specification

Paquetage : la fondation de multiples formats de fichiersPaquetage : la fondation de multiples formats de fichiers

ZIPZIP

Abstraction Parties et RelationsAbstraction Parties et Relations

Services Services CommunsCommuns

Spécification « Spécification « Open Packaging ConventionsOpen Packaging Conventions » » 

XM

L Pap

er

XM

L Pap

er

Speci

fica

tio

Speci

fica

tio

nn

Formats Formats Open XML Open XML

Office Office system system 20072007

Formats Formats personnalispersonnalis

ésés

FormatFormat DocumenDocumen

t t XPSXPS

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

Nouvelles Technologies Document

Open Packaging ConventionsOpen Packaging Conventions et et XML Paper XML Paper Specification (XPS)Specification (XPS) à destination de à destination de n’importe quelle n’importe quelle

application sur n’importe quelle plateformeapplication sur n’importe quelle plateforme

SpécificationsSpécificationsOuvertesOuvertes

Un utilitaire WPF qui permet aux utilisateurs de Un utilitaire WPF qui permet aux utilisateurs de visualiser, de protéger et d’imprimer des documents visualiser, de protéger et d’imprimer des documents

XPS. Hébergé dans IEXPS. Hébergé dans IEXPS ViewerXPS Viewer

Un convertisseur Imprimer-vers-fichier pour la création Un convertisseur Imprimer-vers-fichier pour la création de documents XPS à partir de n’importe quelle de documents XPS à partir de n’importe quelle

application sur la plateforme Microsoft Windowsapplication sur la plateforme Microsoft Windows

Pilote d’impressionPilote d’impressionVers Vers

« Sauvegarder « Sauvegarder sous »sous »

Document XPSDocument XPS

Interfaces de Interfaces de programmationprogrammation (APIs) (APIs) pour la gestion pour la gestion des paquets et du contenudes paquets et du contenu

APIs APIs Document Document WinFX WPFWinFX WPF

Pipeline d’impression avec un format de spool intégré Pipeline d’impression avec un format de spool intégré et un langage de description page-imprimante (PDL) et un langage de description page-imprimante (PDL)

pour accélérer et améliorer la fidélité des travaux pour accélérer et améliorer la fidélité des travaux d’impression. Nouveau modèle de piloted’impression. Nouveau modèle de pilote

XPS Print PathXPS Print Path

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

Usage du « papier électronique »

80% des « papiers électroniques »…80% des « papiers électroniques »…Sont utilisés pour imprimer Sont utilisés pour imprimer partager partager visualiser visualiser archiver archiver

70% de l’ensemble des PDFs provient de Microsoft Word70% de l’ensemble des PDFs provient de Microsoft Word

Les Les nouvelles technologies Document supportent pleinement ces 80% nouvelles technologies Document supportent pleinement ces 80% Utiliser la puissance des outils Microsoft Office pour obtenir le résultat Utiliser la puissance des outils Microsoft Office pour obtenir le résultat souhaitésouhaitéPublier le document vers XPSPublier le document vers XPS

Directement depuis Office system 2007Directement depuis Office system 2007Depuis n’importe quelle application Windows avec le pilote d’impression Depuis n’importe quelle application Windows avec le pilote d’impression Microsoft XPS Document Writer (MXDW)Microsoft XPS Document Writer (MXDW)Depuis des applications .Net en sauvegardant directement au format Depuis des applications .Net en sauvegardant directement au format XPS à partir d’un contenu XAML arbitraire via WPF/MXDWXPS à partir d’un contenu XAML arbitraire via WPF/MXDW

Visualiser depuis IE avec XPS ViewerVisualiser depuis IE avec XPS ViewerPoser et valider les signatures numériques Poser et valider les signatures numériques Publier et consommer des documents XPS avec des droits d’usagePublier et consommer des documents XPS avec des droits d’usage

Archiver dans Windows SharePoint Services (WSS)Archiver dans Windows SharePoint Services (WSS)

……Les autres 20% sont le vecteur d'autres solutions de documentsLes autres 20% sont le vecteur d'autres solutions de documentsAssemblage de documents, collaboration, formulaires, transactions Assemblage de documents, collaboration, formulaires, transactions métier sécurisées (reçu, ticket, bordereau d’envoi, etc.)métier sécurisées (reçu, ticket, bordereau d’envoi, etc.)Les nouvelles technologies Document couvrent également ces 20% Les nouvelles technologies Document couvrent également ces 20%

Utiliser les documents XPS pour publier Utiliser les documents XPS pour publier visualiser visualiser archiver archiver conjointement avec les autres technologies WinFXconjointement avec les autres technologies WinFX

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

Opportunités offertes1.1. Définir des formats personnalisés de fichierDéfinir des formats personnalisés de fichier2.2. Accéder directement au contenu des fichiers Office system Accéder directement au contenu des fichiers Office system

2007 et des documents XPS2007 et des documents XPS3.3. Offrir des solutions pour les documents XPS, Office system Offrir des solutions pour les documents XPS, Office system

2007 ou fichiers personnalisés 2007 ou fichiers personnalisés

API WinFX API WinFX Document XPSDocument XPS

API WinFX API WinFX PackagePackageA

PIs

APIs

Win

FXW

inFX

Formats Formats Open XML Open XML

Office Office system system 20072007

FormatFormat DocumenDocumen

t t XPSXPS

Formats Formats personnalispersonnalis

ésés

APIsAPIspersonnalisépersonnalisé

eses

ApplicationsApplications

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

Modèle de paquet

Offre une fondation pour la définition d’un format de fichierOffre une fondation pour la définition d’un format de fichierA destination de n’importe quelle applicationA destination de n’importe quelle application

De multiples implémentations sous jacentesDe multiples implémentations sous jacentesDocument XPSDocument XPS

Format Open XML Office system 2007Format Open XML Office system 2007

AutresAutres

Bâti sur les conceptsBâti sur les concepts de parties ( de parties (partsparts) et de relations ) et de relations ((relationshipsrelationships))

Les parties correspondent aux flux de Les parties correspondent aux flux de donnéesdonnées (XML (XML ouou binairebinaire))

Les relations décrivent comment les parties sont rattachés entre ellesLes relations décrivent comment les parties sont rattachés entre elles

Stocké dans une archiveStocké dans une archive ZIP ZIPBénéficier de la robustesse de ZIPBénéficier de la robustesse de ZIP

ZIP est recouvrableZIP est recouvrable

La compression bénéficie à la taille des fichiersLa compression bénéficie à la taille des fichiers

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

Services communs : propriétés élémentaires

Un paquetage peut inclure un ensemble de métadonnées Un paquetage peut inclure un ensemble de métadonnées regroupé sous une unique partie XML : la partie regroupé sous une unique partie XML : la partie Core PropertiesCore Properties

Découverte via une relation racine avec un type de relation Découverte via une relation racine avec un type de relation spécifiquespécifique

Utilise un type de contenu spécifiqueUtilise un type de contenu spécifique

Disponibles aussi bien pour les documents XPS que les fichiers Disponibles aussi bien pour les documents XPS que les fichiers Office system 2007Office system 2007

CategoryCategoryContent StatusContent StatusContentTypeContentTypeCreatorCreatorDateCreatedDateCreatedDateModifiedDateModifiedDescriptionDescriptionIdentifierIdentifier

KeywordsKeywordsLanguageLanguageLastModifiedByLastModifiedByLastPrintedLastPrintedRevisionRevisionSubjectSubjectTitleTitleVersionVersion

CoreCore PropertiesProperties

XPS

Pack

ag

eX

PS

Pack

ag

eR

ela

tionsh

ips

Rela

tionsh

ips Common Package PartsCommon Package Parts

Core Properties

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

Services communs : signatures numériques

Permet de valider que le contenu signé n’a pas été altéréPermet de valider que le contenu signé n’a pas été altéré

Disponible pour l’ensemble des formats de fichier basés sur les Disponible pour l’ensemble des formats de fichier basés sur les paquetagespaquetages

Respecte les standardsRespecte les standardsRecommandation W3C XML Digital SignatureRecommandation W3C XML Digital Signature

XML-Signature XML-Signature Syntax and Processing W3C Recommendation 12 FebruarySyntax and Processing W3C Recommendation 12 February 2002, http://www.w3.org/TR/xmldsig-core2002, http://www.w3.org/TR/xmldsig-core

Certificats X509 v3Certificats X509 v3

Les parties signées sont définies par la politique de signatureLes parties signées sont définies par la politique de signatureLes applications valide la signature en accord avec une politique Les applications valide la signature en accord avec une politique spécifiquespécifique

L’ajout de nouvelles parties et relations peut casser une signature, selon L’ajout de nouvelles parties et relations peut casser une signature, selon la politiquela politique

La politique par défaut des documents XPS consiste à signer l’ensemble La politique par défaut des documents XPS consiste à signer l’ensemble des parties et relations définiesdes parties et relations définies

Peut être étendu par un format particulierPeut être étendu par un format particulier

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

Services communs : signatures numériques

ModèleModèleLa partie La partie Signature OriginSignature Origin constitue la racine de l’ensemble des constitue la racine de l’ensemble des signatures dans le paquetagesignatures dans le paquetage

Chaque signature est localisée dans sa propre partieChaque signature est localisée dans sa propre partie

Pack

ag

e X

PS

Pack

ag

e X

PS

Rela

tionsh

ips

Rela

tionsh

ips

Common Package PartsCommon Package PartsCore Properties

Signature Origin X509 Cert

Signature

X509 Cert

Signed part Signed part Signed part Signed part

Signature ResourcesResources

Signed PartsSigned Parts

RecommendedRecommendedPartsParts

RelationshipRelationship

URI ReferenceURI Reference

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

OLE Property Storage Core Properties

RM

“envelo

pe”

RM

“envelo

pe”

RM LicensesRM Licenses

XPS P

ack

age

XPS P

ack

age

Rela

tionsh

ips

Rela

tionsh

ips Common Package PartsCommon Package PartsCore Properties

Signature Origin Signature X509 Cert

SignatureX509 Cert

Signed partSigned partSigned partSigned part

Gestion des droits d’usageSusceptible d’utiliser n’importe quelle solution de gestion de droits d’usageSusceptible d’utiliser n’importe quelle solution de gestion de droits d’usage

Composante externe à la spécification XPSComposante externe à la spécification XPS

Intégration avec l’infrastructureIntégration avec l’infrastructure Windows Right Management Services (RMS) Windows Right Management Services (RMS) fournie avecfournie avec WinFX WinFXLes fichiers Office system 2007 et les documents XPS supportent les même droits Read, Print, Copy, Full ControlLes 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 à l’ensemble des documents XPS insérés dans une bibliothèque SharePoint RM, Outlook 2007 applique automatiquement les droits RM des documents XPS lorsqu’ils sont mis en pièces jointes d’un mèl avec droits d’usageLes droits RM sont maintenus lors de la sauvegarde de fichiers Office system 2007 en documents XPS, les droits RM sont automatiquement appliqués à l’ensemble des documents XPS insérés dans une bibliothèque SharePoint RM, Outlook 2007 applique automatiquement les droits RM des documents XPS lorsqu’ils sont mis en pièces jointes d’un mèl avec droits d’usage

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

DémonstrationDémonstration

Inspection d’un paquetageUtilisation des utilitaires ZIP

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

Document XPS

Défini sur la base d’un paquetageDéfini sur la base d’un paquetageParties clé d’un document XPSParties clé d’un document XPS

FixedDocumentSequenceFixedDocumentSequence : Racine du document: Racine du documentFixedDocumentFixedDocument : : Balise documentBalise document XML XMLFixedPageFixedPage : : BaliseBalise page XML page XMLFontFont : Police de : Police de caractères intégréecaractères intégréeImageImage : : Images intégréeImages intégréeThumbnailThumbnail : Images vignette de la page : Images vignette de la pagePrintTicketPrintTicket : : Paramétrage de l’imprimanteParamétrage de l’imprimante pour la page/le document pour la page/le documentDocumentStructureDocumentStructure : Structure : Structure sémantiquesémantique du document du documentStoryFragmentsStoryFragments : Structure : Structure sémantiquesémantique de la page de la page

Relations clé d’un document XPSRelations clé d’un document XPSStartPartStartPart : Pointe vers la partie : Pointe vers la partie FixedDocumentSequenceFixedDocumentSequenceRequiredResourceRequiredResource : Image/Police de : Image/Police de caractèrescaractères nécessaire pour nécessaire pour « rendre » la page« rendre » la pagePrintTicketPrintTicket : : Paramétrage de l’imprimanteParamétrage de l’imprimante

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

Format des documents XPSPack

ag

e X

PS

Pack

ag

e X

PS

Rela

tionsh

ips

Rela

tionsh

ips

Common Package PartsCommon Package PartsCore Properties

Thumbnail

Signature Origin Signature X509 Cert

Fixed Payload PartsFixed Payload PartsFixedDocumentSequence

FixedDocument

FixedPage

FixedPage

DocumentStructure

FontFonts et Images

Thumbnail

Thumbnail

L’ensemble des parties est signéL’ensemble des parties est signé

ResourcesResources

OptionalOptionalPartsParts

Required orRequired orRecommendedRecommendedPartsParts

RelationshipRelationship

URI ReferenceURI Reference

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

APIs Document WinFX

WinFX WinFX offre à travers offre à travers Windows Presentation FoundationWindows Presentation Foundation (WPF) des (WPF) des APIs vis-à-vis des services communs aux paquetagesAPIs vis-à-vis des services communs aux paquetages

Sérialiser du contenu WPF XAML Sérialiser du contenu WPF XAML versvers XPS XPS

Créer/Utiliser des documents XPSCréer/Utiliser des documents XPS

Créer/Utiliser des paquetsCréer/Utiliser des paquets

Créer/Utiliser des documents Créer/Utiliser des documents avec des permissions restreinteavec des permissions restreinte

Utiliser des « Viewers » Utiliser des « Viewers » personnaliséspersonnalisés

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

Traiter des paquets

// Open existing packagePackage package = Package.Open(fileName, FileMode.Open);

// Find parts based on relationship typestring relType =

“http://schemas.microsoft.com/office/2006/relationships/officeDocument”;PackageRelationshipCollection packRels =

package.GetRelationshipsByType(relType);

// Assuming there is only one relationship of this typeIEnumerator relsEnumerator = packRels.GetEnumerator();relsEnumerator.MoveNext();PackageRelationship rel = relsEnumerator.Current;

// For this sample, fetch only the first part in this collectionPackagePart part = package.GetPart(PackUriHelper.ResolvePartUri(

new Uri(“/”, UriKind.Relative), rel.TargetURI));

// Get the stream for this partStream partStream = part.GetStream();

SSystem.Windows.Xps.Packagingystem.Windows.Xps.Packaging

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

Travailler avec les propriétés élémentaires

Les APIs Packaging permettent de travailler avec les Les APIs Packaging permettent de travailler avec les propriétés élémentairespropriétés élémentaires

Exemple de code – Modifier la version Exemple de code – Modifier la version

<CoreProperties xmlns=“http://schemas.microsoft.com/package/2005/06/metadata/core-properties”><Creator>Philippe Beraud</Creator><Title>Session Journées Microsoft de la Sécurité</Title><Subject>Formats de fichier XML</Subject><Category>Session</Category><Keywords>XML;XPS;Office;Format</Keywords><Description>Session JMS sur les formats de fichiers XML.</Description><ContentType>Présentation</ContentType><ContentStatus>Finale</ContentStatus><Version>1.0</Version><Revision>231</Revision><DateCreated>03/03/2006 09:15:00</DateCreated><DateModified>03/03/2006 10:15:00</DateModified><LastModifiedBy>Philippe Beraud</LastModifiedBy><LastPrinted>03/03/2006 10:15:00</LastPrinted><Language>FR-Fr</Language><Identifier>VEN01</Identifier>

</CoreProperties>

Package p = Package.Open(fileName, FileMode.Open, FileAccess.ReadWrite);p.CoreProperties.Version = "1.0a";p.Close();

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

Signer avec les APIs Packaging

Les APIs Package Digital Signature travaillent avec une Les APIs Package Digital Signature travaillent avec une collection de parties, de relations, et d’objets personnalisés collection de parties, de relations, et d’objets personnalisés intégrés dans la signatureintégrés dans la signature

PackageDigitalSignatureManagerPackageDigitalSignatureManagerObtenir, ajouter ou supprimer une signature depuis/dans le Obtenir, ajouter ou supprimer une signature depuis/dans le paquetagepaquetage

PackageDigitalSignaturePackageDigitalSignatureObtenir la liste des parties signées par la signatureObtenir la liste des parties signées par la signatureObtenir la liste des références vers les relations signéesObtenir la liste des références vers les relations signéesObtenir la liste des objets signés et non signés dans la Obtenir la liste des objets signés et non signés dans la signaturesignatureVérifier la signatureVérifier la signatureVérifier le certificat de signatureVérifier le certificat de signature

System.IO.Packaging / PackageDigitalSignatureManager System.IO.Packaging / PackageDigitalSignatureManager PackageDigitalSignaturePackageDigitalSignature

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

Signer un paquet

Exemple de codeExemple 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<Uri> toSign = new List<Uri>();

// No signing policy defined, just sign everythingforeach (PackagePart packagePart in p.GetParts()){ toSign.Add(packagePart.Uri);}

//Sign CollectionX509Certificate certificate = X509Certificate.CreateFromCertFile(certFilename);

dsm.Sign(toSign, certificate);p.Close();

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

DémonstrationDémonstration

Signatures numériques

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

Traiter des documents XPSLes APIs XPS Document Les APIs XPS Document remplacentremplacent les APIs Packaging pour le les APIs Packaging pour le format Document XPS format Document XPS

Adapté aux besoins spécifiques des documentsAdapté aux besoins spécifiques des documents XPS XPS

Manipuler des documents XPSManipuler des documents XPSAjouter/supprimer des documents à la séquence de documents et des Ajouter/supprimer des documents à la séquence de documents et des pages aux documents pages aux documents Récupérer ou positionner les propriétés élémentairesRécupérer ou positionner les propriétés élémentairesRécupérer ou positionner les vignettesRécupérer ou positionner les vignettes

Ajouter un contenu de pageAjouter un contenu de pageEx. couleurs, polices de caractère, images, dictionnaires de ressourcesEx. couleurs, polices de caractère, images, dictionnaires de ressourcesRécupérer ou positionnerRécupérer ou positionner les les PrintTicketsPrintTickets (XML (XML de contrôle de travail de contrôle de travail d’impressiond’impression))

GérerGérer la signature la signature numériquenumériqueSigner automatiquement en conformité avec la politique de signature Signer automatiquement en conformité avec la politique de signature Document XPSDocument XPSSpécifier les exigences de Spécifier les exigences de co-signatureco-signature

SSystem.Windows.Xps.Packagingystem.Windows.Xps.Packaging / / XpsDocumentXpsDocumentIDocumentSequenceReaderIDocumentSequenceReaderIDocumentSequenceWriterIDocumentSequenceWriterIFixedDocumentReaderIFixedDocumentReaderIFixedDocumentWriterIFixedDocumentWriterIFixedPageReaderIFixedPageReaderIFixedPageWriterIFixedPageWriter

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

Accéder au contenu de documents XPS

Exemple de code – Exemple de code – Fusionner des documentsFusionner des documentsFixedDocumentSequence permet de fusionner de multiple FixedDocumentSequence permet de fusionner de multiple documents en un seul document XPSdocuments 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; }

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

Document XPS et conformité avec des législations

Le contenu est immuable (disposition fixe)Le contenu est immuable (disposition fixe)WYSIWYG (What You See Is What You Get) – WYSIWYG (What You See Is What You Get) – Intéressant pour les Intéressant pour les scénarios d’archivage ainsi que pour la non-répudiationscénarios d’archivage ainsi que pour la non-répudiation

Le contenu est sécurisé et prévisibleLe contenu est sécurisé et prévisible Peut seulement contenu un jeu bien défini de types de contenusPeut seulement contenu un jeu bien défini de types de contenusDu code arbitraire, des macros; des média, etc. ne sont PAS Du code arbitraire, des macros; des média, etc. ne sont PAS autorisésautorisés

Support des signatures numériques et de Windows Rights Support des signatures numériques et de Windows Rights Management (RMS)Management (RMS)

Protection de l’information sensibleProtection de l’information sensibleDes politiques d’entreprise peuvent être imposées même lorsque Des politiques d’entreprise peuvent être imposées même lorsque les documents quittent ses frontièresles documents quittent ses frontièresMaintien de l’authenticité, de l’intégrité et de la confidentialité du Maintien de l’authenticité, de l’intégrité et de la confidentialité du documentdocument

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

Signatures numériques des documents XPS

Systems.Windows.Xps.Packaging / XpsDigitalSignatureSystems.Windows.Xps.Packaging / XpsDigitalSignatureSystem.Security.Cryptography.X509Certificates System.Security.Cryptography.X509Certificates

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

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 codeExemple de code

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

Publier un document XPS avec droits d’usage

Les APIs Packaging supportent la notion de paquetage chiffréLes APIs Packaging supportent la notion de paquetage chiffré

Intégration avec l’infrastructureIntégration avec l’infrastructure Windows Right Management Windows Right Management Services (RMS) Services (RMS) fournie avecfournie avec WinFX WinFX

L’API « enveloppe » l’API RMS L’API « enveloppe » l’API RMS v1.0 SP1 v1.0 SP1 en code natifen code natif

Exemple de codeExemple de codeusing 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

ContentUser("[email protected]", AuthenticationType.Windows), ContentRight.Owner));

ContentUser author = new ContentUser("[email protected]", AuthenticationType.Windows);

unsignedPublishLicense.Owner = author;

unsignedPublishLicense.ValidFrom = new DateTime(…);unsignedPublishLicense.ValidUntil = new DateTime(…);…

System.Securitry.RightsManagement / UnsignedPublishLicenseSystem.Securitry.RightsManagement / UnsignedPublishLicense

Systems.IO.Packaging / EncryptedPackageSystems.IO.Packaging / EncryptedPackage

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

Publier un document XPS avec droits d’usage

Exemple de code (suite)Exemple de code (suite)// Build Secure Environementstring appManifest = "<manifest></manifest>";

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 author’s Use LicenseBindingFailure errorCode; CryptoProvider cryptoProvider = authorUseLicense.Bind(secureEnv, out errorCode);

// Create a EncryptedPackage object to RM the contentsStream packageStream = File.OpenRead(xpsExistingFile);EncryptedPackageEnvelope ePackage =

EncryptedPackageEnvelope.CreateFromPackage(xpsNewFile, packageStream, publishLicense, cryptoProvider);

// Add a Use License for the authorRightManagementInformation rmi = ePackage.RightManagementInformation;Rmi.SaveUseLicense(author, authorUseLicense);

ePackage.Close();…

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

Consommer un document XPS avec droits d’usage

Exemple de codeExemple de codeusing System;using System.Xml;using System.Security.RightsManagement;using System.Security…

ContentUser currentUser = new ContentUser("[email protected]", 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); }

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

Consommer un document XPS avec droits d’usage

Exemple de code (suite)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 }

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

Windows Workflow Foundation (WF)Technologie WinFX de Workflows Technologie WinFX de Workflows commune pour les produits Microsoft, les commune pour les produits Microsoft, les solutions tierces, etc.solutions tierces, etc.Framework extensible pour la Framework extensible pour la construction de Workflows au sein des construction de Workflows au sein des applications Windowsapplications Windows

Ni un serveur ou une applicationNi un serveur ou une applicationFonctionnalités cléFonctionnalités clé

Modèle unifié pour les Workflows humain Modèle unifié pour les Workflows humain et systèmeet système

Les Workflows sont un ensemble d’activitésLes Workflows sont un ensemble d’activitésLes activités sont les éléments constituantsLes activités sont les éléments constituantsLes tâches sont des activités humaines Les tâches sont des activités humaines Les Workflows s’exécutent dans un Les Workflows s’exécutent dans un processus hôte : tout serveur ou applicationprocessus hôte : tout serveur ou application

Framework extensible d’activitésFramework extensible d’activitésPossibilité de construire ses propres Possibilité de construire ses propres bibliothèques d’activitésbibliothèques d’activités

Concepteur visuel pour l’édition graphique Concepteur visuel pour l’édition graphique et de codeet de code

DisponibilitéDisponibilitéIntégré dans le Runtime WinFXIntégré dans le Runtime WinFXA la base des Workflows Office system A la base des Workflows Office system 20072007

WorkflowWorkflow

Concepteur visuelConcepteur visuel

ActivitéActivité

Bibliothèque d’activités Bibliothèque d’activités personnaliséespersonnalisées

Bibliothèque d’activités Bibliothèque d’activités élémentairesélémentaires

Moteur d’exécutionMoteur d’exécution

Services d’exécutionServices d’exécution

Win

dow

s W

indow

s W

ork

flow

W

ork

flow

Fo

undati

on

Fou

ndati

on

Processus HôteProcessus Hôte

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

Automatisation du cycle de vie des documents

Les nouvelles APIs Document WPF offrent aux activités un Les nouvelles APIs Document WPF offrent aux activités un accès transparent aux paquets et documents XPS, qu’il accès transparent aux paquets et documents XPS, qu’il s’agisse du contenu, des ressources ou encore de la s’agisse du contenu, des ressources ou encore de la protectionprotection

Ces APIs autorisent la création d’activités qui automatisent Ces APIs autorisent la création d’activités qui automatisent la gestion du cycle de vie des documentsla gestion du cycle de vie des documents

Pages FiligranePages Filigrane

Obtenir une page, une image, une vignetteObtenir une page, une image, une vignette

Editer (Trouver une chaîne et Remplacer)Editer (Trouver une chaîne et Remplacer)

Ajouter/Obtenir/Supprimer des propriétés élémentairesAjouter/Obtenir/Supprimer des propriétés élémentaires

Imprimer des documents XPSImprimer des documents XPS

Assembler de multiples documents XPSAssembler de multiples documents XPS

Signer avec la politique de signatureSigner avec la politique de signatureAjouter une demande de signatureAjouter une demande de signature

Vérifier des signatures Vérifier des signatures

Appliquer des droits d’usageAppliquer des droits d’usageDéfinir qui dispose de quel(s) droit(s) sur les documents paquetés au Définir qui dispose de quel(s) droit(s) sur les documents paquetés au fur et à mesure que le Workflow progressefur et à mesure que le Workflow progresse

Positionner une date d’expiration pour accéder aux documentsPositionner une date d’expiration pour accéder aux documents

Ouvrir un document avec des droits d’usageOuvrir un document avec des droits d’usage

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

En guise de conclusion

Le paquet partagé réduit considérablement la complexité de Le paquet partagé réduit considérablement la complexité de gérer des documents XPS/Office system 2007/tierces partiesgérer des documents XPS/Office system 2007/tierces parties

Avec à la clé une réduction substantielle des coûts d’ingénierie Avec à la clé une réduction substantielle des coûts d’ingénierie via l’utilisation des APIs WPF pour la gestion des fichiers plutôt via l’utilisation des APIs WPF pour la gestion des fichiers plutôt que de développer une API propreque de développer une API propre

Les documents XPS répondent complètement aux usages Les documents XPS répondent complètement aux usages des « papiers électroniques »des « papiers électroniques »

L’utilisation des documents XPS est une voie facile pour L’utilisation des documents XPS est une voie facile pour assembler, sécuriser, partager et archiver un contenuassembler, sécuriser, partager et archiver un contenu

Les nouvelles APIs WPF permettent d’automatiser le Les nouvelles APIs WPF permettent d’automatiser le contenu et les tâches de gestioncontenu et les tâches de gestion

Les nouvelles APIs WPF et WF créent de nouvelles Les nouvelles APIs WPF et WF créent de nouvelles opportunités dans l’automatisation de la gestion du cycle de opportunités dans l’automatisation de la gestion du cycle de vie de documentsvie de documents

Définition d’activités WF comme blocs constituants de Définition d’activités WF comme blocs constituants de Workflows documentairesWorkflows documentaires

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

Pour plus d’informations sur les packages et XPS

Page d’accueilPage d’accueil XML Paper Specification XML Paper Specification

http://www.microsoft.com/whdc/xps/default.mspxhttp://www.microsoft.com/whdc/xps/default.mspx

Open Package Specifications v0.8 December 2005Open Package Specifications v0.8 December 2005http://www.microsoft.com/whdc/xps/xpspkg.mspxhttp://www.microsoft.com/whdc/xps/xpspkg.mspx

XML Paper Specification v0.8 December 2005XML Paper Specification v0.8 December 2005http://www.microsoft.com/whdc/xps/xpsspec.mspxhttp://www.microsoft.com/whdc/xps/xpsspec.mspx

Document Workflow Advances in Windows VistaDocument Workflow Advances in Windows Vistahttp://www.microsoft.com/whdc/xps/XPSworkflow.mspxhttp://www.microsoft.com/whdc/xps/XPSworkflow.mspx

Posez vos questions surPosez vos questions sur [email protected]@microsoft.com

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

Pour plus d’informations sur les APIs WinFX

Page d’accueil WinFXPage d’accueil WinFXhttp://msdn.microsoft.com/winfxhttp://msdn.microsoft.com/winfx

Bêta WinFXBêta WinFX

http://msdn.microsoft.com/windowsvista/getthebeta/default.aspxhttp://msdn.microsoft.com/windowsvista/getthebeta/default.aspx

WinFX System.IO.Packaging NamespaceWinFX System.IO.Packaging Namespacehttp://windowssdk.msdn.microsoft.com/library/en-us/cpref12/html/http://windowssdk.msdn.microsoft.com/library/en-us/cpref12/html/n_system_io_packaging.aspn_system_io_packaging.asp

WinFX System.Windows.Xps.PackagingWinFX System.Windows.Xps.PackagingNamespaceNamespace

http://windowssdk.msdn.microsoft.com/library/en-us/cpref35/html/http://windowssdk.msdn.microsoft.com/library/en-us/cpref35/html/n_system_windows_xps_packaging.aspn_system_windows_xps_packaging.asp

Windows Presentation Foundation Windows Presentation Foundation Hands-On-LabsHands-On-LabsProgramming XPS Documents, WinFX Printing and Archiving, Programming XPS Documents, WinFX Printing and Archiving, Extending the XPS Document Viewing ExperienceExtending the XPS Document Viewing Experience

http://msdn.microsoft.com/windowsvista/building/presentation/http://msdn.microsoft.com/windowsvista/building/presentation/hands_on_lab/default.aspxhands_on_lab/default.aspx

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

Pour plus d’informations sur les formats Office Open XML

Page d’accueil Office system 2007 PreviewPage d’accueil Office system 2007 Previewhttp://www.microsoft.com/office/previewhttp://www.microsoft.com/office/preview

« « The Microsoft Office Open XML Formats The Microsoft Office Open XML Formats »»http://download.microsoft.com/download/E/3/D/E3DD6FED-0CC1-http://download.microsoft.com/download/E/3/D/E3DD6FED-0CC1-4788-A742-E1596179AE65/FileFormatsPreview.doc4788-A742-E1596179AE65/FileFormatsPreview.doc

« « Microsoft Office Open XML Formats Frequently Asked Microsoft Office Open XML Formats Frequently Asked Questions Questions »»

http://www.microsoft.com/office/preview/developers/filefaq.mspxhttp://www.microsoft.com/office/preview/developers/filefaq.mspx

Office 2003 XML Reference Schemas Office 2003 XML Reference Schemas http://www.microsoft.com/office/xmlhttp://www.microsoft.com/office/xml

Visitez le blog de Brian Jones : Visitez le blog de Brian Jones : http://blogs.msdn.com/Brian_Joneshttp://blogs.msdn.com/Brian_Jones

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

Microsoft FranceMicrosoft France18, avenue du Québec18, avenue du Québec

91 957 Courtaboeuf Cedex91 957 Courtaboeuf Cedex

www.microsoft.com/france

0 825 827 8290 825 827 829

[email protected]@microsoft.com