Add Life to the Web, Afterburner, Aftershock, Andromedia, Allaire, Animation PowerPack, Aria, Attain, Authorware,
Authorware Star, Backstage, Bright Tiger, Clustercats, ColdFusion, Contribute, Design In Motion, Director, Dream Templates,
Dreamweaver, Drumbeat 2000, EDJE, EJIPT, Extreme 3D, Fireworks, Flash, Fontographer, FreeHand, Generator, HomeSite,
JFusion, JRun, Kawa, Know Your Site, Knowledge Objects, Knowledge Stream, Knowledge Track, LikeMinds, Lingo, Live
Effects, MacRecorder Logo and Design, Macromedia, Macromedia Action!, Macromedia Breeze, Macromedia Contribute,
Macromedia Flash, Macromedia M Logo and Design, Macromedia Spectra, Macromedia xRes Logo and Design, MacroModel,
Made with Macromedia, Made with Macromedia Logo and Design, MAGIC Logo and Design, Mediamaker, Movie Critic,
Open Sesame!, Roundtrip, Roundtrip HTML, Shockwave, Sitespring, SoundEdit, Titlemaker, UltraDev, Web Design 101, what
the web can be et Xtra sont des marques commerciales ou des marques déposées de Macromedia, Inc. qui peuvent être déposées
aux Etats-Unis et/ou dans d'autres juridictions ou pays. Les autres noms de produits, logos, graphiques, mises en page, titres,
mots ou expressions mentionnés dans cette publication peuvent être des marques commerciales, des marques de service ou des
noms de marque appartenant à Macromedia, Inc. ou à d’autres entités et peuvent être déposés dans certaines juridictions ou pays.
Autres marques mentionnées
Ce guide contient des liens vers des sites Web qui ne sont pas sous le contrôle de Macromedia, qui n’est donc aucunement
responsable de leur contenu. L’accès à ces sites se fait sous votre seule responsabilité. Macromedia ne mentionne ces liens qu'à titre
pratique et leur inclusion n'implique en aucun cas que Macromedia peut être tenu pour responsable du contenu de ces sites.
Gestion du projet : Stephanie Gowin
Rédaction : Jed Hartman
Responsable d'édition : Rosana Francescato
Edition : Linda Adler, Barbara Milligan, Noreen Maher, Anne Szabla
Gestion de la production : Patrice O’Neill
Conception et production des supports : Adam Barnett, Christopher Basmajian, Aaron Begley
Première édition : mars 2004
Macromedia, Inc.
600 Townsend St.
San Francisco, CA 94103
Les services Web XML Macromedia Breeze permettent à un système externe (tel qu'une
application Web) d'interagir avec un serveur Breeze.
Le présent guide explique comment appeler des services Web XML (« actions ») sur le serveur
Breeze à partir du système externe et comment interpréter les résultats XML renvoyés par Breeze.
Il comporte également des sections de référence expliquant l'effet des différentes actions et
indique les paramètres pouvant être associés à ces actions.
Remarque : Pour utiliser les services Web XML de Breeze, vous devez disposer d'une clé d'accès
valide. Pour plus d'informations, consultez la section A propos de la sécurité, page 15.
Les services Web mentionnés dans ce document sont sujets à modifications. Consultez la page de
mises à jour (http://www.macromedia.com/go/breeze_xmlapi_updates_fr) pour prendre
connaissance des dernières mises à jour et modifications.
Utilisateurs concernés
Le présent document a été conçu pour les développeurs qui souhaitent intégrer les services Web
XML de Breeze dans leurs systèmes externes, tels que les applications Web.
Il implique des notions de base du code XML et de l'utilisation des requêtes HTTP permettant de
communiquer entre une application et un serveur. Vous devez également savoir comment écrire
du code en langage serveur, tel que le langage CFML (Macromedia ColdFusion Markup
Language).
Guide des supports pédagogiques
Macromedia Breeze dispose de plusieurs supports qui permettent de maîtriser rapidement ce
produit. Outre le présent document, les manuels électroniques et les systèmes d'aide en ligne
suivants sont disponibles :
• Guide d'installation de Breeze indique comment installer les modules de Breeze. Ce guide est
disponible sous forme d'insert sur le DVD pour les utilisateurs professionnels, ainsi qu'au
format PDF.
• Utilisation de Breeze Manager décrit comment utiliser les composants d'administration, de
présentation et de formation de Breeze Live. Vous pouvez accéder à ce guide à partir de la page
d'accueil de Breeze Manager et du lien Aide de l'application Web Breeze Manager.
7
• Mode d’emploi de Breeze Live à l’intention des présentateurs de réunions comprend des
informations sur l'utilisation de l'application Web Breeze Live pour héberger des réunions en
temps réel en ligne. La documentation inclut des procédures qui démontrent à quel point il est
facile d'ajouter des diapositives, des fichiers Flash SWF, des images, du son et des vidéos à votre
présentation. Vous pouvez accéder à ce document à partir de la page d'accueil de l'application
Breeze Manager et du menu Aide dans une salle de réunion Breeze Live (lorsque vous entrez en
tant que présentateur) en sélectionnant Réunion > Aide.
• Mode d’emploi de Breeze Live à l’intention des participants aux réunions comprend les
informations qui s'appliquent aux utilisateurs participant à une réunion en temps réel en ligne.
Breeze Live met à la disposition des participants différentes options qui facilitent la
participation, ce qui inclut la possibilité d'envoyer des messages et des questions aux
présentateurs et aux autres participants, ainsi que la possibilité de participer en direct à l'aide
des fonctions audio et vidéo. Vous pouvez accéder à ce document à partir de la page d'accueil
de l'application Breeze Manager et du menu Aide dans une salle de réunion Breeze Live
(lorsque vous entrez en tant que participant) en sélectionnant Réunion > Aide.
• Utilisation du plug-in Breeze pour PowerPoint explique comment utiliser le plug-in qui permet
aux utilisateurs de créer des présentations Breeze à partir de PowerPoint. Vous pouvez accéder à
ce document à partir de la page d'accueil de Breeze Manager et du menu Breeze de PowerPoint
en cliquant sur Breeze > Aide.
• Utilisation de l'Assistant de publication de Breeze comprend les procédures de publication sur un
serveur Breeze des présentations Breeze créées dans PowerPoint. Vous pouvez accéder à ce
document à partir de la page d'accueil de l'application Breeze Manager et du bouton Aide de
l'Assistant de publication.
Remarque : L'intérêt de ces guides dépend des modules installés sur la plate-forme de présentation
Breeze, du type d'utilisateur (tel que gestionnaire du contenu de la réunion, ingénieur informatique ou
présentateur de cours) et des autorisations du compte Breeze de l'utilisateur.
Ressources supplémentaires
Vous trouverez ci-dessous les principales ressources disponibles sur le Web :
Remarque : Pour obtenir la liste des ressources de Breeze, consultez le manuel Guide des supports
pédagogiques, page 7.
The Web Service Primer
webservices/) constitue un excellent point de départ pour les services Web.
« Working with XML and ColdFusion » dans le manuel ColdFusion Developer’s Handbook (http:/
/www.macromedia.com/devnet/mx/coldfusion/articles/cf_handbk_ch6.html) comporte des
informations supplémentaires sur les notions de base du code XML et la rédaction de code avec
CFML.
« Leveraging XML with ColdFusion » (http://www.macromedia.com/devnet/mx/coldfusion/
articles/cf_handbk_ch7.html) traite des services Web, de SOAP et des méthodes d'appel des
services Web avec le langage CFML.
La spécification XSL Transformations (XSLT) (http://www.w3.org/TR/xslt) introduit le code
XSLT, que vous pouvez utiliser pour convertir les données.
8Introduction: Avant de commencer
à xml.com (http://webservices.xml.com/pub/a/ws/2001/04/04/
Numeric representation of Dates and Time (http://www.iso.ch/iso/en/prods-services/popstds/
datesandtime.html) fournit des informations sur le format de date et d'heure de la norme ISO
8601. De façon plus spécifique, la note W3C relative aux dates et aux heures (http://www.w3.org/
TR/NOTE-datetime) fournit des informations sur le profil ISO 8601 retenu par Breeze.
Conventions typographiques
Ce manuel utilise les conventions typographiques suivantes :
• La police en italique indique une valeur qui doit être remplacée (par exemple, dans le chemin
d'un dossier).
• La police de codeidentifie le code. Elle met également en avant le nom des actions, des
paramètres, des balises et des attributs.
• La police en gras désigne une citation ou un élément de menu.
Conventions typographiques9
10Introduction: Avant de commencer
CHAPITRE 1
Vue d'ensemble de l'architecture
Le modèle d'API de Macromedia Breeze convertit les interfaces en un ensemble de services Web
XML. Ces services permettent à un système externe, tel qu'un portail, de communiquer avec le
serveur Breeze en utilisant le protocole HTTP ou HTTPS pour appeler des actions sur le serveur
et recevoir les résultats formatés en tant que code XML. Vous pouvez utiliser les services Web
pour ajouter le service de gestion de Breeze et les fonctionnalités de création de rapports sur votre
système externe.
Remarque : Breeze ne prend pas encore en charge le protocole SOAP (Simple Object Access
Protocol).
Le présent chapitre porte sur les flux de données entre le serveur Breeze et les applications Web, et
indique comment définir les paramètres et les autorisations de sécurité.
11
Flux de données
Le diagramme suivant illustre le flux de données dans une application Web qui interagit avec le
serveur Breeze :
Navigateur Web
Etape 1 : Le
navigateur Web
demande une page.
Etape 2 : Le serveur
Web trouve la page
et la passe au
serveur
d'applications.
Etape 3 : Le serveur
d'applications
exécute du code.
Requête
SERVEUR WEB
<HTML>
<code>
</HTML>
Serveur d’application
Réponse
<HTML>
<p>Hi</p>
</HTML>
Etape 7 : Le serveur
Web envoie la page
finale au navigateur
ayant émis la requête.
Etape 6 : Le serveur
d'applications insère
des données dans la
page, puis passe la
page au serveur Web.
Etape 4 : Le serveur
d'application appelle
l'action sur le serveur
Breeze.
Action
Données XML
Serveur Breeze
Etape 5 : Le serveur
Breeze renvoie des
données XML au
serveur d'applications.
L'exemple suivant décrit ce qui peut de se produire lorsqu'un utilisateur se connecte au portail de
formation d'un site intranet créé avec Macromedia ColdFusion MX et ayant recours aux services
Web XML de Breeze :
1 Un utilisateur connecté se sert d'un navigateur Web pour demander une page qui affiche la liste
des cours auquel il est inscrit.
2 Le serveur Web trouve la page et la passe au serveur d'applications.
3 Le serveur d'applications analyse et exécute le code ColdFusion contenu dans la page.
4 Lors de l'exécution du code, le serveur d'applications appelle une action sur le serveur Breeze de
la société, afin d'obtenir la liste des cours. Cet appel d'action prend la forme d'une requête
HTTP disposant d'informations d'identification de sécurité incluses dans la requête.
12Chapitre 1 : Vue d'ensemble de l'architecture
POST
5 Le serveur Breeze exécute l'action, en renvoyant les données XML résultantes au serveur
d'applications.
6 Le code d'application analyse le code XML renvoyé et insère des données dans la page Web en
fonction des besoins, puis passe la page finale au serveur Web.
7 Le serveur Web passe la page finale au navigateur, ce qui permet de l'afficher.
Appel d'une action sur le serveur
Pour appeler une action sur le serveur Breeze, passez les paramètres voulus au servlet de services
Web à l'adresse http://nom_serveur/api/xml.
Toutes les actions nécessitent au moins deux paramètres : le paramètre
l'action et le paramètre
accesskey donne la clé d'action du compte. La plupart des actions
action spécifie le nom de
disposent également d'autres paramètres. Pour plus d'informations sur les clés d'accès, consultez la
section A propos de la sécurité, page 15. Pour plus de détails sur les paramètres supplémentaires
correspondant à une action donnée, consultez la documentation de cette action dans le
Chapitre 3, Guide de référence des actions, page 27.
Utilisez l'une des méthodes suivantes pour transmettre les paramètres au serveur :
• Créez une chaîne de requête — une URL qui inclut les paramètres de la requête — et
transmettez-la au serveur sous forme de requête HTTP,
sur
"application/x-www-form-urlencoded". (Dans la plupart des cas, il n'est pas nécessaire
de définir le type de contenu de façon explicite lorsque vous appliquez cette méthode.)
L'URL à utiliser pour la chaîne de requête prend la forme http://breeze.exemple.com/api/
xml?action=nom_action&accesskey=clé_accès. Les autres paramètres de l'action sont ajoutés en
tant que paramètres de requête en option et séparés par des signes &.
GET ou POST, dont le contenu est défini
• Crée un objet XML contenant les paramètres sous forme de balises param contenues dans une
balise
params, puis envoie une requête HTTP POST au serveur, dont le type de contenu HTTP
est défini sur
Pour consulter un exemple de code indiquant comment appeler une action, reportez-vous au
Chapitre 2, Tâc h e s co ura nt es , page 19.
Remarque : L'exemple de code figurant dans ce document utilise l'approche avec paramètres de
requête, pour plus de clarté et parce que l'utilisation du code CFML pour envoyer des objets XML
contenant des paramètres est soumise à certaines limitations. Macromedia recommande d'utiliser la
méthode
POST. POST permet de renforcer la sécurité lorsque vous passez des paramètres dans la chaîne de
requête. Pour plus d'informations, consultez la section A propos de la sécurité, page 15.
"text/xml".
POST si possible ; en raison de la façon dont le code HTTP implémente les méthodes GET et
A propos des paramètres
La plupart des actions permettent de spécifier un ou plusieurs paramètres.
Vous pouvez généralement spécifier les paramètres sous forme de paire nom-valeur, mais le
processus exact dépend du langage utilisé pour appeler l'action sur le serveur Breeze. Pour
consulter un exemple de code en langage CFML (ColdFusion Markup Language), consultez le
chapitre Chapitre 2, Tâc he s co ura n te s, page 19.
La documentation des actions affiche les paramètres requis. Les paramètres facultatifs sont
signalés de façon explicite.
A propos des paramètres13
Certaines actions permettent de fournir plusieurs paramètres du même nom. Par exemple,
l'action
plusieurs paires nom-valeur
principals-delete prend un paramètre appelé principal-id. Vous pouvez spécifier
principal-id (portant toutes le nom principal-id) lorsque vous
appelez l'action sur le serveur Breeze. L'exemple de code CFML suivant illustre comment
supprimer deux utilisateurs spécifiés à l'aide d'un appel d'action unique, en spécifiant deux
paramètres
loginCookie que vous avez définies pendant le processus de connexion. Pour plus de détails,
principal-id. (Cet exemple recourt aux variables baseurl, accesskey et
consultez la section Scénario : Intégration de Breeze à un service d’annuaire, page 19.)
Certaines actions permettent de fournir des jeux de paramètres multiples. Par exemple, l'action
group-membership-update prend les paramètres group-id, principal-id, et is-member pour
procéder à plusieurs mises à jour suite à un appel unique. Spécifiez chacun de ces paramètres pour
le mandant et le groupe, puis spécifiez-les (en conservant les mêmes noms de paramètre) pour un
autre, etc.
A propos des mandants, des entités SCO et des identifiants
Breeze comporte deux types d'identités de base : les mandants et les SCO (Shareable Content
Objects).
Le terme mandant couvre toutes les entités qui disposent d'autorisations régissant leurs
interactions avec les entités SCO. Vous trouverez ci-dessous les principaux types de mandant :
user Un utilisateur spécifique.
group Un groupe d'utilisateurs.
Il existe d'autres types de mandants, appelés « groupes primaires » :
"live-admins" et "course-admins". Pour plus d'informations sur les groupes primaires,
consultez la section Utilisation de Breeze Manager.
Vous pouvez créer et modifier des utilisateurs et des groupes, mais pas des groupes primaires.
Une entité SCO est un document Breeze, tel qu'une réunion ou une présentation. Les dossiers
sont également des SCO.
Breeze Inclut les deux types d'entité SCO suivants :
tree La racine d'une hiérarchie de dossiers. La racine d'une arborescence est traitée en tant que
hiérarchie indépendante. Vous ne pouvez pas déterminer le dossier parent d'une arborescence à
partir de cette arborescence.
folder Un dossier sur le disque dur du serveur qui renferme le contenu Breeze.
presentation Une présentation.
course Un cours.
meeting Une réunion.
flv Un fichier vidéo Flash.
"admins", "authors",
14Chapitre 1 : Vue d'ensemble de l'architecture
swf Un fichier SWF Flash.
image Un fichier d'images.
session Une session de réunion. Une session commence lorsqu'une personne pénètre dans une
salle de réunion vide et se termine lorsque la dernière personne quitte la salle.
archive Une réunion archivée.
attachment Un fichier partagé utilisant le module de partage de fichiers au cours d'une
réunion.
pod Un plug-in de réunion.
logos Une image (telle qu'un logo d'entreprise) qui peut être attachée à du contenu, tel qu'une
présentation.
Chaque mandant et entité SCO dispose d'un identifiant numérique unique. Lorsque vous
appelez une action qui utilise l'identifiant d'une entité en tant que paramètre, le nom de
paramètre indique le type d'entité auquel l'identifiant appartient, mais cet identifiant reste le
même quel que soit le nom de paramètre. Les noms de paramètres qui s'appliquent aux
identifiants incluent
user-id.
Par exemple, pour mettre à jour un mot de passe utilisateur, appelez l'action
donnez l'identifiant de l'utilisateur en tant que paramètre
d'utilisateur, appelez l'action
paramètre
principal-id.
Vous disposez de quelques autres types d'identifiants, tels que
permission-id et question-id. Dans la plupart des cas, un nom de paramètre qui se termine en
-id indique que la valeur de ce paramètre est un identifiant de mandant ou d'entité SCO.
acl-id, folder-id, group-id, parent-acl-id, principal-id, sco-id et
user-update-pwd et
user-id. Pour déterminer un nom
principal-info et donnez l'identifiant de l'utilisateur en tant que
account-id, answer-id,
A propos de la sécurité
Le modèle de sécurité de Breeze garantit que tout code appelant une action donnée a été autorisé.
Pratiquement tous les appels d'action incluent deux types d'informations d'identification : une clé
d'accès et un cookie qui représentent un utilisateur connecté donné.
La clé d'accès ou « clé de connexion » est un code permettant de protéger le serveur contre toute
utilisation non autorisée. Toute action (ce qui inclut
spécifiez en tant que paramètre appelé
accesskey. Les clés d'accès tiennent compte des
majuscules et des minuscules.
Seuls les utilisateurs connectés peuvent appeler la plupart des actions. Par conséquent, vous devez
appeler l'action
de connexion préalable, sont
accounts
login avant toute autre action. (Les exceptions, les actions qui ne nécessitent pas
accesskey-exec, action-list, common-info, login et user-
.)
Lors de la connexion, le serveur Breeze renvoie des résultats en code XML pour indiquer si la
connexion a réussi. Les en-têtes HTTP de ces résultats incluent un cookie appelé JSESSIONID.
Lorsque vous recevez les résultats d'un appel
login, vous devez enregistrer la valeur de ce cookie
de façon à pouvoir l'utiliser par la suite. Vous devez ensuite inclure la valeur de ce cookie dans
toutes les requêtes transmises ultérieurement avec cet identifiant. Pour obtenir des exemples,
consultez le Chapitre 2, Tâ c h e s c ou ran te s, page 19.
login) nécessite une clé d'accès, que vous
A propos de la sécurité15
Pour appeler une action avec succès, par conséquent, vous devez fournir une clé d'accès et le
cookie correspondant à l'utilisateur connecté qui dispose d'autorisations pour appeler cette
action. Si vous ne fournissez pas ces deux informations d'identification (par exemple, si vous
fournissez le cookie d'un utilisateur qui ne dispose pas des bonnes autorisations), l'action échoue.
Votre application permet de connecter plusieurs utilisateurs et d'appeler des actions quel que soit
l'utilisateur. Par exemple, lorsqu'un utilisateur ordinaire exécute votre application, il peut être
nécessaire d'utiliser les informations d'identification de cet utilisateur tout en conservant une
connexion administrateur pour effectuer les tâches nécessitant ce niveau d'autorisation.
Pour plus de détails sur les codes d'état pouvant être renvoyés par le serveur, consultez la section
relative à la balise
status.
Clés d'accès pour les clients dont le compte est hébergé sur un système
Macromedia Breeze (ASP)
Par défaut, votre compte n'est pas activé pour les services Web XML. Vous devez contacter le
service de support technique de Macromedia pour obtenir une clé d'accès XML valide à utiliser
en conjonction avec les actions.
Pour contacter le centre de support technique, consultez la page de support de Breeze (http://
www.macromedia.com/support/breeze/) et demandez la génération d'une clé d'accès XML pour
votre compte.
Clés d'accès pour les clients dont le compte est hébergé sur un système
Macromedia Breeze Enterprise (sous licence)
Le serveur ne dispose pas d'une clé d'accès XML en standard. Vous devez ajouter cette clé avant
d'utiliser les services Web XML.
Pour ajouter une clé d'accès :
1 Recherchez le fichier custom.ini dans le sous-répertoire breeze du répertoire d'installation.
2 Ajoutez un paramètre à la fin du fichier en tapant le code suivant sur une nouvelle ligne :
XML_API_KEY=
3 Juste après le signe égal, sur la même ligne, tapez une clé d'accès. Cette clé doit comporter 16
caractères et doit comporter des chiffres et des lettres. Les clés d'accès tiennent compte des
majuscules et des minuscules.
4 Arrêtez le serveur Breeze, puis redémarrez-le.
A propos des autorisations
Les autorisations régissent les interactions entre un mandant et une entité SCO.
L'association d'autorisations à un mandant en fonction d'une entité SCO donnée est appelée
ACL. Tout ACL comprend trois éléments d'information : l'identifiant d'un SCO (généralement
appelé identifiant d'ACL dans ce contexte), l'identifiant d'un mandant et un un mot clé spécifiant
les autorisations (généralement désigné comme identifiant d'autorisation).
Breeze dispose de deux types d'autorisation : les autorisations associées à des SCO spécifiques et
les autorisations qui s'appliquent à l'ensemble des utilisateurs qui appartiennent à des groupes
spéciaux, appelés groupes primaires. Les autorisations relatives aux groupes primaires sont
prioritaires par rapport aux autorisations définies sur une entité SCO.
16Chapitre 1 : Vue d'ensemble de l'architecture
Pour identifier les autorisations d'un utilisateur connecté sur un élément donné, appelez l'action
permissions-info. Pour modifier les autorisations d'un mandant, appelez l'action principal-
.
update
Si un mandant ne dispose pas d'autorisations spécifiques sur une entité SCO donnée, les
autorisations de ce mandant sur le parent du SCO s'appliquent.
Vous pouvez spécifier les autorisations suivantes sur un SCO :
view Le mandant peut afficher l'entité SCO, mais ne peut pas la modifier. Dans le cadre d'un
cours, l'autorisation
permet au mandant de participer. Dans le cadre d'un dossier,
view permet au mandant de s'inscrire. Dans le cadre d'une réunion, view
view permet au mandant d'afficher
le contenu.
publish Le mandant peut publier l'entité SCO sur le serveur et la mettre à jour. Cette
autorisation inclut l'autorisation
en relation avec le SCO. Pour un dossier,
view. Elle permet également au mandant d'afficher des rapports
publish ne permet pas au mandant de créer de
nouveaux dossiers dans le dossier ou de définir des autorisations pour ce dernier. Vous ne pouvez
pas appliquer cette autorisation à des réunions ou des cours.
manage Le mandant peut afficher, supprimer, déplacer et modifier l'entité SCO. Cette
autorisation permet également au mandant de définir des autorisations pour l'entité SCO.
Lorsqu'il s'agit d'un dossier, l'autorisation
manage permet au mandant d'afficher des rapports sur
les fichiers contenus dans le dossier et de créer de nouveaux dossiers. Vous ne pouvez pas associer
cette autorisation à des réunions ou des cours.
denied Le mandant ne peut pas afficher, accéder à ou gérer l'entité SCO. Vous ne pouvez pas
associer cette autorisation à des réunions ou des cours.
presenter (Réunions uniquement) Le mandant peut créer ou présenter une réunion. Cette
autorisation permet au mandant de créer ou présenter la réunion, même si le mandant ne dispose
pas d'une autorisation
view pour le dossier parent de la réunion.
Dans la mesure où un groupe constitue un mandant, vous pouvez définir les autorisations citées
ci-dessus sur une entité SCO pour un groupe non primaire ou un utilisateur donné. Si un groupe
dispose d'une autorisation spécifique, tous les membres en héritent. Utilisez l'action
membership-update
update
pour définir les autorisations d'un groupe en fonction d'une entité SCO donnée.
pour ajouter un membre à un groupe. Utilisez l'action permissions-
group-
Le seul moyen d'obtenir certains types d'autorisation est d'appartenir à un groupe primaire,
comme indiqué ci-dessous :
Le groupe primaire des auteurs permet à ses membres de créer ou modifier une présentation
dans tout le système, quelles que soient les autorisations ACL.
Le groupe primaire des administrateurs permet de gérer des utilisateurs et des groupes.
Le groupe primaire des administrateurs de réunion permet de créer et de présenter des
réunions dans tout le système, quelles que soient les autorisations ACL.
Le groupe primaire des gestionnaires de cours permet de créer et de modifier des réunions
dans tout le système, quelles que soient les autorisations ACL.
Pour accéder à l'ensemble du système, vous devez être membre des quatre groupes primaires.
A propos de la sécurité17
A propos des autorisations d'accès public
Il existe un identifiant spécial de mandant qui n'a pas de valeur numérique :
"public-access".
Cet identifiant définit les paramètres globaux d'accès, en ligne ou hors connexion. Vous pouvez
attribuer les autorisations suivantes à une entité SCO pour le mandant public-access :
denied Personne ne peut afficher, accéder à ou gérer l'entité SCO.
view Tout le monde peut afficher l'entité SCO, même hors connexion.
view-only (Présentation uniquement) Tout le monde peut afficher la présentation, même hors
connexion. Cependant, les autorisations définies sur le dossier parent de la présentation ne
s'appliquent pas à cette dernière. Par exemple, même si un utilisateur dispose d'une autorisation
manage sur le dossier parent, l'utilisateur ne peut pas supprimer les présentations dont
l'autorisation est
Si l'utilisateur dispose d'une autorisation
view-hidden (Réunions uniquement) Tout le monde peut participer à la réunion, même hors
view-only. (Les autorisations normales s'appliquent toujours à la présentation.
manage sur la présentation, il peut la supprimer.)
connexion. Cependant, les autorisations définies sur le dossier parent de la réunion ne
s'appliquent pas à cette dernière.
N'attribuez pas les autorisations
N'attribuez pas les autorisations
manage, presenter ou publish au mandant public-access.
view-only ou view-hidden à des mandants ordinaires.
A propos de la sécurité et du lancement du contenu
Lorsque vous lancez une entité SCO, vous devez fournir une authentification. Pour ce faire,
utilisez l'une des approches suivantes :
• Lorsque vous ouvrez l'URL du contenu, ajoutez un paramètre de requête appelé session dont
la valeur doit être égale à celle du cookie de connexion, comme indiqué dans l'exemple
suivant :
Cette approche risque de remettre en cause la sécurité, dans la mesure où toute personne
disposant de l'URL spécifiée peut se comporter en tant qu'utilisateur connecté. Par
conséquent, utilisez le cookie d'un utilisateur ordinaire et non pas celui d'un administrateur.
En outre, si un utilisateur transmet l'URL à quelqu'un d'autre (dans un message électronique,
par exemple), il donne accès à son compte, ce qui représente également un risque d'atteinte à la
sécurité.
• Vous pouvez définir un cookie JSESSIONID sur le navigateur d'un utilisateur, en appliquant
la valeur du cookie de connexion.
Cependant, cette approche ne peut fonctionner que si votre application fonctionne sur un
serveur utilisant le même nom de domaine que le serveur Breeze.
En outre, si votre serveur d'applications fonctionne dans un environnement de servlet J2EE
(tel que ColdFusion ou Java), le serveur d'application doit également utiliser un cookie appelé
JSESSIONID, ce qui risque de provoquer un conflit entre Breeze et le serveur d'applications.
• Vous pouvez vous contenter d'ouvrir l'URL et de demander à l'utilisateur de se connecter de
nouveau.
Cette approche est plus sûre, mais moins pratique du point de vue des utilisateurs.
18Chapitre 1 : Vue d'ensemble de l'architecture
CHAPITRE 2
Tâches courantes
Ce chapitre décrit des scénarios typiques d’intégration de Macromedia Breeze à des applications
ou systèmes externes. Ces scénarios illustrent la mise en œuvre de diverses tâches courantes. Pour
effecturer ces tâches, l’utilisateur appelle une ou plusieurs actions sur le serveur Breeze, puis les
balises XML renvoyées par le serveur sont analysées. Dans certains cas, les informations renvoyées
sont utilisées comme paramètres pour l’action suivante.
Ce chapitre comporte des exemples de code montrant la mise en œuvre de certaines tâches à l’aide
du langage CFML ( ColdFusion Markup Language) de Macromedia.
Remarque : Certaines descriptions ne sont pas accompagnées d’exemples de code. La syntaxe
d’appel d’une action est similaire pour toutes les actions. Il est donc possible d’utiliser les exemples de
code fournis comme modèles pour accomplir d’autres tâches.
Chaque appel d’une action sur le serveur Breeze doit comporter une clé d’accès et des
informations d'identification permettant de connaître l’auteur authentifié de l’action. Pour plus
d’informations sur le modèle de sécurité de Breeze, en particulier sur les clés d’accès, consultez la
section A propos de la sécurité, page 15.
Pour une description détaillée de chaque action et de chaque balise XML, voir Chapitre 3, Guide
de référence des actions, page 27 et Chapitre 4, Références pour les résultats XML, page 61.
Scénario : Intégration de Breeze à un service d’annuaire
Supposons que votre organisation utilise un référentiel central pour toutes les informations sur les
utilisateurs, par exemple LDAP (Lightweight Directory Access Protocol). Breeze permet
d’importer ou synchroniser ces informations à partir de ce service d’annuaire.
La procédure ci-dessous décrit les étapes que doit suivre votre application pour effectuer cette
tâche. Cette procédure part du principe que si les informations transmises par le service
d’annuaire ne correspondent pas aux informations fournies par le serveur Breeze, ce sont celles qui
proviennent du service d’annuaire qui sont correctes et actuelles.
Pour synchroniser Breeze avec le service d’annuaire :
1 Connectez-vous en appelant l’action login sur le serveur Breeze, en indiquant l’identifiant de
connexion et le mot de passe d’un administrateur de comptes. Dans les en-têtes HTTP
renvoyés, recherchez la valeur du cookie JSESSIONID. Ce paramètre est nécessaire pour
appeler les actions suivantes.
19
Remarque : Il peut être utile de créer un utilisateur doté de privilèges d’administration,
spécifiquement chargé des synchronisations. Dans ce cas, il est conseillé d’exclure cet utilisateur
de la liste des utilisateurs à synchroniser.
L’exemple de code suivant ouvre une session utilisateur et récupère la valeur du cookie :
<!--- Pas de code d’état "ok". Vérifier les autres codes d’état pour
traiter les erreurs. --->
</cfif>
3 Appelez l’action principal-list pour demander au serveur Breeze une liste des utilisateurs
de Breeze. Le serveur renvoie la liste complète de tous les mandants, y compris ceux qui ne sont
pas des utilisateurs. (Pour plus d'informations sur les mandants, consultez A propos des
mandants, des entités SCO et des identifiants, page 14.
Le code ci-dessous appelle l’action
principal-list. Notez que la valeur de cookie reçue à
Remarque : Cette requête HTTP utilise la méthode
représente la seule méthode permettant de spécifier un paramètre HTTP en CFML. Toutefois,
l’URL et les paramètres de la requête restent les mêmes que pour
"post" et non pas "get", car "post"
"get".
20Chapitre 2 : Tâches courantes
4 Pour vérifier que l’action s’est terminée correctement, analysez le code XML renvoyé et vérifiez
que la valeur de l’attribut
status du code XML renvoyé après chaque action.
code de la balise status est "ok". Il est conseillé de vérifier la balise
5 Si le code d’état est "ok", recherchez la liste des mandants qui a été renvoyée, afin de trouver
tous les mandants dont l’attribut
tous les utilisateurs de Breeze dans le tableau
type est user. L’exemple de code ci-dessous place la liste de
allUsers.
6 Récupérez la liste de tous les utilisateurs figurant dans le service d’annuaire. La procédure exacte
dépend du service d’annuaire utilisé.
7 Comparez les valeurs contenues dans la balise login des utilisateurs de Breeze aux adresses e-
mail du service d’annuaire, en utilisant l’algorithme de comparaison de listes de votre choix.
Déterminez les utilisateurs qui figurent dans le service d’annuaire mais pas dans Breeze ; ces
nouveaux utilisateurs doivent être ajoutés à Breeze. Déterminez ensuite les utilisateurs qui
figurent dans Breeze , mais pas dans le service d’annuaire ; ces utilisateurs doivent être
supprimés de Breeze. Enfin, déterminez les utilisateurs qui apparaissent à la fois dans Breeze et
dans le service d’annuaire, mais sous des noms différents ; les noms de ces utilisateurs doivent
être changés dans Breeze.
8 Ajoutez dans Breeze tous les utilisateurs apparaissant dans le service d’annuaire mais pas dans
Breeze, en procédant comme suit :
a Extrayez du service d’annuaire le prénom, le nom et l’identifiant de connexion de chaque
utilisateur.
Dans Breeze, l’identifiant de connexion de l'utilisateur est généralement son adresse
électronique.
b Appelez l’action principal-update en définissant le paramètre type comme user.
Ne spécifiez pas de paramètre
principal-id. L’absence de ce paramètre indique que vous
n’actualisez pas un utilisateur existant, mais que vous ajoutez un nouvel utilisateur.
c Dans le code XML renvoyé, vérifiez que le code d’état est "ok".
L’exemple de code ci-dessous montre comment ajouter un utilisateur à Breeze. Il fait appel à
des variables définies antérieurement, par exemple
baseurl. Pour préserver la simplicité et la
clarté de cet exemple, ce code spécifie les informations sur l’utilisateur dans les premières lignes,
au lieu de les extraire d’un service d’annuaire.
<cfhttpparam type="Cookie" name="JSESSIONID" value="#loginCookie#">
</cfhttp>
...
<!--- Ajouter ici le code de vérification de la présence du code d’état
"ok". --->
...
<cfset xml= XmlParse(cfhttp.FileContent)>
<cfset firstElement= XmlSearch(xml, "results/contact/first-name")>
<cfset firstName= firstElement[1].XmlText>
<cfset lastElement= XmlSearch(xml, "results/contact/last-name")>
<cfset lastName= lastElement[1].XmlText>
...
<!--- Ajouter ici le code attribuant de nouvelles valeurs de prénom et de
nom, appeler principal-update, et vérifier la présence du code d’état
"ok". --->
22Chapitre 2 : Tâches courantes
Scénario : Intégration de Breeze à un portail
Supposons que vous administrez une application portail, par exemple le portail de l’intranet de
votre entreprise. Vous pouvez intégrer Breeze à ce portail pour permettre aux utilisateurs de voir et
modifier les informations relatives à Breeze dans le contexte du portail. Cela permettra par
exemple aux utilisateurs de voir les prochaines réunions Breeze et de consulter la liste des cours
auxquels ils sont inscrits.
Les procédures décrites dans cette section montrent comment accomplir diverses tâches liées à
l’intégration de Breeze à une application de portail.
Pour vous connecter sous une identité spécifique :
1 Utilisez un formulaire Web pour extraire l’identifiant de connexion et le mot de passe de cet
utilisateur.
2 Appelez l’action login sur le serveur Breeze en utilisant l’identifiant de connexion et le mot de
passe ainsi reçus.
3 Dans le code XML renvoyé, vérifiez que le code d’état est "ok".
Pour déterminer l’ID d’un utilisateur à partir de son identifiant de connexion et son mot de
passe :
1 Connectez-vous avec son identifiant.
2 Appelez l’action common-info.
3 Dans le code XML renvoyé, recherchez la valeur de l’attribut user-id de la balise user. Cette
valeur est l’ID de cet utilisateur.
Pour vérifier qu’un mot de passe saisi est correct :
1 Connectez-vous avec l’identifiant de cet utilisateur.
2 Si le code d’état renvoyé est "ok", le mot de passe est correct.
Cette procédure est la seule méthode permettant de vérifier un mot de passe ; pour des raisons
de sécurité, Breeze ne permet pas de demander au serveur le mot de passe d’un utilisateur.
Pour obtenir la liste de tous les cours auxquels l’utilisateur s’est inscrit :
1 Connectez-vous avec l’identifiant de cet utilisateur.
2 Appelez l’action report-my-courses.
3 Analysez le code XML renvoyé et affichez les résultats. Pour plus d'informations sur le code
XML renvoyé par le serveur, consultez la section my-courses.
Pour obtenir la liste de toutes les réunions auxquelles l’utilisateur doit participer :
1 Connectez-vous avec l’identifiant de cet utilisateur.
2 Appelez l’action report-my-meetings.
3 Analysez le code XML renvoyé et affichez les résultats. Pour plus d'informations sur le code
XML renvoyé par le serveur, consultez la section
Pour afficher le dossier de contenu de cet utilisateur :
1 Connectez-vous avec l’identifiant de cet utilisateur.
2 Appelez l’action sco-shortcuts.
my-meetings.
Cette action permet d’obtenir l’emplacement du dossier racine du compte actuel, ainsi que
l’emplacement des autres dossiers (réunions auxquelles doit participer cet utilisateur, etc.)
Scénario : Intégration de Breeze à un portail23
Le code ci-dessous utilise les mêmes variables baseurl, accesskey et loginCookie que le
code d’ouverture de session indiqué dans la section Scénario : Intégration de Breeze à un service
7 Pour mettre à la disposition des utilisateurs des liens pointant directement sur des éléments de
contenu, appelez l’action
sco-info pour chaque élément, et déterminez son adresse URL
complète en insérant le contenu de la balise url-path renvoyée après le nom de domaine que
vous avez obtenu précédemment. Vous obtenez ainsi une adresse URL complète, par exemple
http://breeze.exemple.com/p12345678/.
24Chapitre 2 : Tâches courantes
Pour plus d'informations sur l’activation d’un lien vers du contenu, consultez A propos de la
sécurité et du lancement du contenu, page 18.
Pour créer une nouvelle réunion :
1 Connectez-vous avec l’identifiant de cet utilisateur.
2 (Facultatif) Vous pouvez permettre à l’utilisateur de choisir, dans une interface Web, le dossier
dans lequel la nouvelle réunion doit être créée. Si vous ne spécifiez pas de dossier particulier, la
réunion est créée dans le dossier my-meetings (Mes réunions). Pour déterminer l’ID de ce
dossier de réunion par défaut, appelez l’action
3 Appelez l’action sco-update en lui transmettant l’ID du dossier pour le paramètre folder-id.
Ne spécifiez pas de paramètre pour
4 Assurez-vous du bon résultat de l’action en vérifiant le contenu de la balise status renvoyée.
Pour rechercher du contenu :
1 Utilisez un formulaire Web pour extraire la chaîne que l’utilisateur doit rechercher.
2 Connectez-vous avec l’identifiant de cet utilisateur.
3 Appelez l’action sco-search, en lui passant la chaîne spécifiée comme valeur du paramètre
query.
4 Dans le code XML renvoyé, recherchez les informations sur le SCO qui contiennent cette
sco-id.
sco-shortcuts.
chaîne; et affichez les informations utiles.
Scénario : génération de rapports
Supposons que vous souhaitez que votre application puisse présenter les détails de tous les cours
auxquels un utilisateur est inscrit, ou identifier les utilisateurs inscrits à une réunion donnée. Les
services Web XML de Breeze comportent un grand nombre de rapports affichant des données sur
l’utilisation de Breeze.
Les données des rapports sont renvoyées dans des formulaires XML. Vous pouvez utiliser
directement les résultats, par exemple dans le cadre d’une application Web, ou convertir les
données dans d’autres formats tels que des fichiers CSV (comma-separated-values).
Pour générer le rapport de formation d’un utilisateur sous forme de fichier CSV :
1 Connectez-vous avec l’identifiant de cet utilisateur.
2 Détermine l’ID d’un cours. Dans la plupart des cas, la démarche consiste à présenter une liste
de cours (obtenue en appelant l’action
sco-contents, qui renvoie également les ID des cours)
dans l’interface de l’application, et à permettre à l’utilisateur d’en sélectionner un.
3 Appelez l’action report-course-takers.
Cette action renvoie une série de balises
row dont chacune fournit des informations sur un
utilisateur inscrit au cours.
4 Convertissez les données renvoyées en XML dans un fichier texte, en utilisant des virgules
comme séparateurs de champs, et enregistrez ce fichier en CSV. L’approche la plus courante
consiste à afficher le fichier CSV résultant dans le navigateur de l’utilisateur, ce qui permet à
celui-ci d’enregistrer ces données sur son disque dur local.
Pour transformer le fichier en données séparées par des virgules, vous pouvez utiliser soit un
langage interprété sur le serveur comme CFML, soit un langage de conversion comme XSLT.
Pour toutes informations sur XSLT, reportez-vous à la rubrique Ressources supplémentaires,
page 8.
Scénario : génération de rapports25
26Chapitre 2 : Tâches courantes
CHAPITRE 3
Guide de référence des actions
Ce chapitre est le guide de référence de toutes les actions exposées dans l’API XML de
Macromedia Breeze. Il indique les paramètres pouvant être passés à chaque action. Dans ce
chapitre, les actions apparaissent en ordre alphabétique.
Pour toutes informations sur les balises, données et codes d’état XML renvoyés par le serveur
Breeze, consultez le Chapitre 4, Références pour les résultats XML, page 61. Le Chapitre 2, Tâ c he s
courantes, page 19, présente des exemples de diverses tâches courantes faisant appel à des actions.
Tout appel d’une action doit comporter des informations d'identification permettant de connaître
l’auteur authentifié de l’action. Pour plus d'informations, consultez la section A propos de la
sécurité, page 15.
Chaque action renvoie une balise
balise d’état (
status). La section « Éléments renvoyés » de la documentation de chaque action
n’indique que les autres éléments renvoyés ; les éléments
renvoyés.
Pour plus d'informations sur le passage de paramètres, consultez la section A propos des paramètres,
page 13. Pour plus d'informations sur les mandants et les SCO, consultez la section A propos des mandants, des entités SCO et des identifiants, page 14.
results contenant une ou plusieurs autres balises, dont une
results et status sont implicitement
accesskey-exec
Description
Exécute des fonctions spéciales associées à des clés d’accès spécifiques.
Actuellement, la seule fonction spéciale prise en charge est celle qui permet aux utilisateurs de
s’auto-inscrire à des réunions et à des cours. La documentation relative à cette action n’aborde
donc que la fonction d'auto-inscription.
Pour appeler cette action, vous devez disposer à la fois de la clé d’accès normale du compte et
d’une clé d’accès spéciale associée à une réunion ou à un cours. Il est possible d’indiquer la clé
d’accès spéciale à une personne qui n’est pas utilisatrice de Breeze. Cette personne peut ensuite,
via une interface spécifique, s’inscrire à la réunion ou au cours, ce qui crée alors un nouvel
utilisateur Breeze.
Pour obtenir la clé d’accès spéciale, appelez l’action
accesskey-info.
27
La différence entre accesskey-exec et principal-update pour créer un nouvel utilisateur
réside dans le fait qu’il est possible d’appeler
accesskey-exec sans avoir ouvert une session et
sans être administrateur.
Paramètres
accesskey
access-key Clé d’accès spéciale qui permet à l’utilisateur de s’inscrire de lui-même.
first-name Nouveau prénom de l’utilisateur.
has-children Ce paramètre doit toujours être mis à 0 pour l’inscription d’un nouvel
Clé d’accès du compte.
utilisateur.
first-name Nouveau prénom de l’utilisateur.
login Nouvel identifiant de connexion de l'utilisateur (qui est fréquemment l’adresse de
messagerie de cet utilisateur).
password Nouveau mot de passe de l’utilisateur.
type Ce paramètre doit toujours être "user" pour l’inscription d’un nouvel utilisateur.
Éléments renvoyés
Aucun.
Exemple de résultat
<results>
<status code="ok" />
</results>
accesskey-info
Description
Permet d’obtenir une clé d’accès spéciale, si cette clé est associée au SCO spécifié.
Pour plus d'informations, consultez l’action
Pour connaître le groupe auquel l’utilisateur sera automatiquement ajouté lorsqu’il s’inscrira à
l’aide de la clé d’accès spéciale, appelez l’action
Renvoie la liste de toutes les actions que vous pouvez appeler.
Paramètres
accesskey
Éléments renvoyés
actions
Exemple de résultat
<results>
<status code="ok" />
<actions>
</actions>
</results>
Clé d’accès du compte.
<action>accesskey-exec</action>
<action>accesskey-info</action>
<action>action-list</action>
...
[la liste des autres actions figure ici]
...
<action>user-accounts</action>
<action>user-update-pwd</action>
common-info
Description
Renvoie des informations de base sur l’utilisateur actuel et le serveur.
Si vous appelez
renvoyées à l’exception de la balise
Paramètres
accesskey
Éléments renvoyés
common
common-info sans vous être identifié au préalable, ces mêmes informations sont
user. De plus, la valeur de account-id peut être différente.
Permet d’ajouter un ou plusieurs mandants (principals) à un groupe, ou de supprimer des
mandants d’un groupe.
Pour actualiser plusieurs mandants et groupes, transmettez autant de groupes de trois paramètres
group-id, principal-id et is-member que nécessaire. Pour plus d'informations, reportez-vous
à la rubrique A propos des paramètres, page 13.
Paramètres
accesskey
group-id Identifiant du groupe dont vous souhaitez actualiser l’appartenance.
principal-id Identifiant du mandant dont vous souhaitez actualiser le statut d’appartenance.
is-member Indique si le mandant est membre du groupe.
Clé d’accès du compte.
Éléments renvoyés
Aucun.
Exemple de résultat
<results>
<status code="ok" />
</results>
login
Description
Connecte un utilisateur (ouverture de session) avec l’identifiant de celui-ci.
Remarque : Après l’ouverture de session, vous devez lire et conserver le contenu du cookie
JSESSIONID, qui figure dans les en-têtes HTTP du code XML résultant. Vous devez ensuite inclure
la valeur de ce cookie dans toutes les requêtes transmises ultérieurement avec cet identifiant. Pour
plus d'informations, reportez-vous à la section A propos de la sécurité, page 15.
30Chapitre 3 : Guide de référence des actions
Loading...
+ 84 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.