BIJZONDER BESTEK

Cahier des charges du 30/10/2014
Référence : 14/004
CAHIER DES CHARGES 14/004 POUR UN
MARCHÉ DE SERVICES AYANT POUR OBJET
La désignation d’un partenaire pour la conception d’un
nouveau site Internet
Demande d’offre
IPI
Approuvée par le Conseil national du 30/10/2014
1
Cahier des charges du 30/10/2014
Référence : 14/004
TABLE DES MATIÈRES
TABLE DES MATIÈRES .................................................................................................................................................2
I. AU PRÉALABLE ........................................................................................................................................................4
I.1. INFORMATIONS RELATIVES AU PRÉSENT CAHIER DES CHARGES ................................................................................................ 4
I.2. CADRE LÉGAL ............................................................................................................................................................... 4
II. DISPOSITIONS ADMINISTRATIVES ..........................................................................................................................5
II.1. DESCRIPTION DU MARCHÉ ............................................................................................................................................. 5
II.2. IDENTITÉ DE L’ADJUDICATEUR ......................................................................................................................................... 6
II.3. MODE D’ADJUDICATION ................................................................................................................................................ 6
II.4. TARIF ET PAIEMENT ...................................................................................................................................................... 6
II.5. FORME ET CONTENU DE L’OFFRE ..................................................................................................................................... 6
II.6. INTRODUCTION DE L’OFFRE ............................................................................................................................................ 7
II.7. DELAI D’ENGAGEMENT .................................................................................................................................................. 7
II.8. CRITÈRES D’ADJUDICATION ............................................................................................................................................ 7
II.9. OFFRE IRRÉGULIÈRE OU INCOMPLÈTE ............................................................................................................................... 8
III. DISPOSITIONS CONTRACTUELLES ..........................................................................................................................9
III.1. DIRECTION DE L’EXÉCUTION .......................................................................................................................................... 9
III.2. RÉVISIONS DU PRIX ...................................................................................................................................................... 9
III.3. DURÉE ...................................................................................................................................................................... 9
III.4. DROITS DE PROPRIETE INTELLECTUELLE ................................................................................................... 9
IV. DISPOSITIONS TECHNIQUES : DESCRIPTION DU PROJET ......................................................................................11
PRINCIPES GÉNÉRAUX ........................................................................................................................................................ 11
SITE PRINCIPAL ET SITES ENVIRONNANTS ................................................................................................................................ 12
FONCTIONNALITÉ SUR MESURE ............................................................................................................................................ 14
INTÉGRATIONS ET LIENS...................................................................................................................................................... 18
INFRASTRUCTURE ET CONTRAT DE MAINTENANCE .................................................................................................................... 18
MAILCHIMP .................................................................................................................................................................... 18
2
Cahier des charges du 30/10/2014
Référence : 14/004
LOGOS ET STYLE « MAISON » .............................................................................................................................................. 19
V. ANNEXES ..............................................................................................................................................................20
V.1. FORMULAIRE D’OFFRE ................................................................................................................................................ 20
V.2. TABLEAU DES DROITS D’UTILISATION .............................................................................................................................. 24
V.3. STRUCTURE DES PAGES ............................................................................................................................................... 25
V.4. COMPTE DE L’AGENT IMMOBILIER ................................................................................................................................. 26
V.5. WEGOV ................................................................................................................................................................... 29
3
Cahier des charges du 30/10/2014
Référence : 14/004
I. AU PRÉALABLE
I.1. INFORMATIONS RELATIVES AU PRÉSENT C AHIER DES CHARGES
Des informations relatives au présent cahier des charges peuvent uniquement être demandées à l'adresse
suivante / par courriel envoyé à la personne de contact :
Nom : IPI – Institut professionnel des agents immobiliers
Adresse : Rue du Luxembourg 16B, 1000 Bruxelles (Belgique)
Tél : +32 2 505 38 50
Personne de contact: Frank Damen
E-mail: [email protected]
I.2. CADRE LÉGAL
Arrêté royal du 20 juillet 2012 déterminant les règles d’organisation et de fonctionnement de l’Institut
professionnel des Agents immobiliers, en particulier l’article 43.
4
Cahier des charges du 30/10/2014
Référence : 14/004
II. DISPOSITIONS ADMINISTRATIVES
II.1. DESCRIPTION DU MARCHÉ
L’Institut professionnel des Agents immobiliers est une corporation professionnelle de droit public créée
par la loi. Toute personne souhaitant être active comme agent immobilier indépendant en Belgique doit
être agréée auprès de l’IPI. L’IPI contrôle l’accès à la profession, sanctionne sur le plan déontologique et
informe.
L’Institut, bilingue et soumis à la législation fédérale, communique dans deux langues. Il existe par
conséquent deux sites Internet : www.ipi.be (du côté francophone) et www.biv.be (du côté
néerlandophone). Indépendamment de la langue, les deux sites seront, en grande partie mais pas
totalement, identiques.
L’Institut a pour ambitieux projet de remplir sa mission d’information d’une façon digne du 21e siècle. À
cette fin, cette mission doit reposer sur 3 piliers : l’accessibilité, la transparence et la personnalisation.
Accessibilité : un contenu informatif, visualisé, lisible et structuré, qui puisse facilement être consulté sur
tous les appareils.
Transparence : nous montrons qui nous sommes, pourquoi nous sommes là et ce que nous faisons.
Personnalisation : nous offrons à chacun de nos membres un contenu pertinent, utile et sur mesure dans
un environnement personnalisé.
L’objectif de cette nouvelle approche structurée et ciblée consiste à communiquer de façon effective et
efficace et à donner à l’IPI et, partant, à la profession d’agent immobilier, l’image souhaitée. Pour cela,
plusieurs moyens de communication ont besoin d’un sérieux rafraîchissement.
Le site Internet occupera une place centrale et sera une plate-forme complète où toutes les
communications destinées à tous les groupes cibles pourront être retrouvées et à laquelle on pourra se
référer à partir d’autres médias.
5
Cahier des charges du 30/10/2014
Référence : 14/004
II.2. IDENTITÉ DE L’ADJUDICATEUR
Institut professionnel des agents immobiliers (IPI)
Rue du Luxembourg 16B
1000 Bruxelles (Belgique)
Numéro d’entreprise : 0267.300.821
II.3. MODE D’ADJUDICATION
Dans le cadre du présent cahier des charges, l’IPI souhaite rassembler plusieurs devis qu’il soumettra au
Conseil national pour évaluation. Les offres seront évaluées sur la base des critères d’adjudication
énumérés au point II.8.
L’adjudicateur se réserve le droit de négocier avec un ou plusieurs soumissionnaires de son choix au sujet
de tous les points des offres reçues et/ou du présent cahier des charges.
L’adjudicateur se réserve le droit aussi bien de renoncer à l’adjudication ou à la clôture du marché que de
recommencer la procédure, autrement si nécessaire.
II.4. TARIF ET PAIEMENT
Le prix est fixé comme suit, selon le principe du prix global. Le prix à mentionner est « all-in » et comprend
tous les frais du soumissionnaire, en mentionnant séparément le taux de TVA.
Le prix global (X) est présenté clairement comme le résultat de l’addition suivante :
P + (O x 12) = X
→ Un coût unique et all-in pour la conception du projet (P)
→ Un coût unique mensuel pour le support et la maintenance (O) pendant une période de 12 mois
II.5. FORME ET CONTENU DE L’OFFRE
Le soumissionnaire établit son offre en français ou en néerlandais.
6
Cahier des charges du 30/10/2014
Référence : 14/004
L’offre est élaborée sur la base des formulaires prévus à cet effet dans les documents du marché. Si le
soumissionnaire établit son offre sur d’autres documents, lui seul porte l’entière responsabilité de la
correspondance parfaite entre les documents qu'il utilise et le formulaire joint aux documents du marché.
Le soumissionnaire est censé avoir rédigé son offre selon ses propres constatations, opérations, calculs et
estimations.
Tous les documents établis ou complétés par le soumissionnaire ou son mandataire sont datés et signés
par lui.
Les ratures, annotations, ajouts ou modifications, tant dans l’offre que dans les annexes, pouvant
influencer les conditions essentielles du marché comme les prix, les délais ou les spécifications techniques
doivent aussi être signées par le soumissionnaire ou son mandataire.
II.6. INTRODUCTION DE L’OF FRE
L’offre doit être envoyée par courrier recommandé et reçue par l’IPI ou déposée à la réception de l’IPI,
avec signature pour réception (pendant les heures de service : du lundi au vendredi de 8h30 à 16h00), au
plus tard le 5 décembre 2014.
L’offre doit être enfermée dans une double enveloppe.
L’enveloppe intérieure doit comporter la mention "OFFRE SITE WEB IPI".

L’enveloppe extérieure doit être envoyée à l’adresse suivante :
IPI – Institut professionnel des agents immobiliers
à l’attention de Steven Lee
Rue du Luxembourg 16B
1000 Bruxelles
II.7. DELAI D’ENGAGEMENT
Le délai pendant lequel le soumissionnaire est engagé par son offre est de 60 jours civils à compter de la
date ultime de réception.
II.8. CRITÈRES D’ADJUDICATION
Les critères mentionnés dans cette partie s’appliquent à l’adjudication du marché. Les critères
d’adjudication représentent un total de 100 points.
7
Cahier des charges du 30/10/2014
Référence : 14/004
N°
Description
Pondération
1
Qualité de la conception et du service
45
2
Coût de la conception
20
Le soumissionnaire est tenu de mentionner le coût unique pour la conception du projet de façon
transparente. Les points seront accordés sur la base de la formule suivante :
score dx = 20 x (Pl / Px)
avec :
- score dx = points obtenus par le soumissionnaire x
- Pl = le prix du soumissionnaire régulier et sélectionné le moins disant
- Px = le prix du soumissionnaire x
3
Coût de la maintenance et du support
15
Le soumissionnaire est tenu de mentionner le coût mensuel pour la maintenance et le support après la
conception du projet de façon transparente. Les points seront accordés sur la base de la formule
suivante :
score dx = 15 x (Pl / Px)
avec :
- score dx = points obtenus par le soumissionnaire x
- Pl = le prix du soumissionnaire régulier et sélectionné le moins disant
- Px = le prix du soumissionnaire x
4*
Proof of Concept, présentant au moins un projet de mise en page, l'approche
des fonctionnalités et un commentaire d'experts…
10
5*
Approche, mode de conception et communication
10
(*) Le soumissionnaire est tenu de fournir une description / explication détaillée pour chacun de ces critères
d’adjudication. L’adjudicateur se réserve le droit de demander une explication supplémentaire aux
soumissionnaires.
II.9. OFFRE IRRÉGULIÈRE OU INCOMPLÈTE
Les offres ne répondant pas aux exigences minimales posées peuvent être automatiquement exclues.
Si une offre ne contient pas suffisamment d’informations et s’il est dès lors pratiquement impossible de
l'évaluer sérieusement, cette offre peut être automatiquement exclue.
Sous peine d’irrégularité, l’offre ne peut pas faire référence à des conditions de vente générales ou
particulières pour répondre à des exigences spécifiques, ni mentionner ces conditions au verso ou en
annexe.
8
Cahier des charges du 30/10/2014
Référence : 14/004
III. DISPOSITIONS CONTRACTUELLES
III.1. DIRECTION DE L’EXÉCUT ION
La direction de l’exécution des services sera assurée par :
Frank Damen
Tél: +32 2 505 38 50
E-mail: [email protected]
III.2. RÉVISIONS DU PRIX
Les conditions suivantes s'appliquent au marché en matière de révision du prix :
Adaptation annuelle à l’indice des prix à la consommation
Le prix de base par participant mentionné au point II.4. sera adapté une fois par an au coût de la vie.
L’indexation est effectuée chaque fois à la date anniversaire de l’entrée en vigueur du contrat. Cette
adaptation est réalisée sur la base des fluctuations de l’indice des prix à la consommation.
Le prix adapté ne peut pas être supérieur au montant obtenu en appliquant la formule suivante : prix de
base par participant multiplié par le nouvel indice et divisé par l’indice de départ.
Le nouvel indice est l’indice calculé et désigné à cette fin pour le mois précédant celui de l’anniversaire de
l’entrée en vigueur du contrat.
L’indice de départ est l’indice des prix à la consommation du mois précédant le mois au cours duquel le
marché a été adjugé.
III.3. DURÉE
La mission de développement débute à la date de l’attribution et doit être accomplie endéans dans les six
mois.
III.4. DROITS DE PROPRIETE INTELLECTUELLE
Les sites Internet et les modules seront la propriété totale et exclusive de l’IPI.
9
Cahier des charges du 30/10/2014
Référence : 14/004
L’Adjudicataire est tenu de défendre l’IPI contre toute accusation de tiers concernant une violation des
droits intellectuels reposant sur les produits ou services fournis. L’Adjudicataire doit prendre en charge,
sans limite de montant, tous les paiements de dommages et intérêts, de frais ou de dépenses qui en
découlent et sont imputés à l’IPI dans le cadre d’une action en justice basée sur une telle accusation, pour
autant que l’Adjudicataire ait le contrôle de la défense ainsi que des négociations, en vue d’une médiation.
L’Adjudicataire s’engage soit à obtenir le droit de continuer à utiliser les produits concernés pour l’IPI, soit
à modifier ou remplacer les produits à ses frais afin de mettre un terme à la violation, sans toutefois
modifier les spécifications fondamentales des produits.
10
Cahier des charges du 30/10/2014
Référence : 14/004
IV. DISPOSITIONS TECHNIQU ES : DESCRIPTION DU PROJE T
PRINCIPES GÉNÉRAUX
Le front-end du site Internet est conçu selon les normes HTML et CSS les plus récentes et sans Flash.
Comme CMS, nous accordons notre préférence à WordPress en raison de l’accessibilité aisée et de la
multiplicité de la plate-forme. WordPress permet aussi aux collaborateurs qui s’y connaissent moins en
technologie d’apporter eux-mêmes de petites modifications aux informations relatives à leur domaine
professionnel, le tout dans un environnement protégé. Par ailleurs, WP offre la possibilité, entre autres, de
travailler avec des structures de menu de façon très dynamique, de créer rapidement des liens
permanents et de créer des publications tests de manière intuitive. Un autre grand avantage réside dans la
nature « open source » de la plate-forme, qui offre déjà de nombreuses fonctionnalités. Il convient aussi
d’accorder une attention particulière à la sécurité.
La conception du site Internet principal va de pair avec la conception de quelques mini-sites ayant une
fonctionnalité très spécifiquement définie et un objectif bien particulier. Les principes généraux suivants
s’appliquent à chacun des sites Internet à développer.
DESIGN
-
Templates WordPress : à développer (par exemple : homepage, full-width, right-sidebar, leftsidebar, incl-slider, excl-slider, etc.)
Totalement adaptatif, mobile first
Bootstrap, jQuery, purecss, …
Navigation : classique (en haut) ou left sidebar (adaptative, en tout état de cause)
Style des mots-clés et UX : ultra moderne, sleek, élégant et stylé, posé et aéré, exempt de
sécheresse
En ligne avec le style “maison” à développer (voir plus loin)
Police d’écriture lightweight, du style Proxima Nova, Roboto, Open Sans, Ubuntu… (Préférence à
Googlefont)
Accessibilité aux personnes malvoyantes (font size switch)
Caractère reconnaissable grâce à de petites icones, des pictogrammes,…
Prévoir Print.css
Grande compatibilité avec les navigateurs (Chrome, Safari, Firefox et IE)
POINTS IMPORTANTS CO NCERNANT LE CONTENU
Outre les pages permanentes requises, présentant le cas échéant un contenu dynamique, une fonction
« blog » est également prévue pour la création de « posts » (messages) formant, ensemble, une sorte de
knowledge base. Les pages et les posts doivent comporter des blocs générés de façon automatique et avec
des messages tels que « informations sur le même sujet », « également intéressant », « documents
pertinents » ou « sources consultées ». Les posts peuvent faire l’objet de commentaires, sauf lorsque nous
supprimons cette possibilité. Les commentaires ne sont pas anonymes et sont soumis à un filtre anti-
11
Cahier des charges du 30/10/2014
Référence : 14/004
spams de type captcha. Les posts doivent pouvoir être partagés sur les réseaux sociaux. Les liens externes
sont toujours assortis automatiquement d’une petit icone « arrow-out » appropriée. Nous affichons la
date de la dernière modification apportée à une page déterminée. Les fichiers à télécharger sont munis
d’un bref commentaire, du style « Nom du fichier (téléchargé 123x, 321kB, extension) ».
Afin d’éviter les doublons, un choix de langue apparaît dans l’en-tête du site. Le visiteur peut y effectuer
un choix parmi les options NL, FR et DE. Important : [NL] renvoie vers l’équivalent en néerlandais de la
page concernée sur le site biv.be ; [FR] renvoie vers l’équivalent en français de la page concernée sur le
site ipi.be ; [DE] renvoie vers le site ipi.be/de qui résume les informations germanophones les plus
consultées à ce moment-là ainsi que les informations vraiment essentielles (1 longue page, table des
matières avec liens ancrés).
OPTIMALISATION POUR LES MOTEURS DE RECHE RCHE
Nous accorderons une attention permanente à une optimalisation ciblée du site ipi.be et d’autres sites sur
Google, dans le but d’être trouvés et de nous faire entendre. Le site Internet répondra à une liste très
étendue de principes SEO courants. Le concepteur veille à ce que toutes les pages puissent être
entièrement indexées par les moteurs de recherche, à l’exception des sous-dossiers devant de toute façon
être affichés et du compte de l’agent immobilier. Par ailleurs, il est crucial que le concepteur redirige
correctement chaque page ancienne (301) vers son nouvel équivalent (page par page et non au niveau du
domaine ou du folder), de préférence en utilisant une interface dans laquelle l’IPI peut compléter luimême les redirections 301. Il est également important de prévoir des alternatives claires et adaptées à la
SEO pour les URL illisibles, à l’aide de paramètres (voir l’exemple suivant où l’URL marquée est l’URL
« correcte ») :
ACCESSIBILITÉ
Nous sommes un institut public et entendons dès lors respecter autant que possible les principes
d’accessibilité énumérés dans l’AnySurfer Checklist (http://www.anysurfer.be/nl/in-de-praktijk/checklist).
SITE PRINCIPAL ET SITES ENVIRONNANTS
IPI.BE & BIV.BE
Sites principaux contenant toutes les informations disponibles.
Les concepteurs créent des pages et des posts de blog (non encore publiés) conformément à la structure, à
la navigation et aux métadonnées demandées, que nous fournissons dans un document. Étant donné que
12
Cahier des charges du 30/10/2014
Référence : 14/004
nous avons déjà une quantité énorme de contenu, mais que nous allons encore devoir en ajouter
beaucoup, nous optons de préférence pour une approche dans laquelle l’IPI peut déjà placer, à un stade
très précoce, du contenu dans le CMS, en même temps que d’autres phases de la conception. La structure
est donc développée par les concepteurs et le contenu statique y est placé par l’IPI. Les modules et le
contenu dynamique sont mis en œuvre par les concepteurs.
Pages (sous réserve de modifications : voir l’annexe 3)
STAGEIMMOBILIER.BE & VASTGOEDSTAGE.BE
Principes généraux et mise en page : similaires à ipi.be et biv.be
L’Institut doit être immédiatement reconnaissable pour le visiteur. Il doit apparaître clairement que ces
sites ne traitent pas des stages réalisés pendant des formations dans des écoles ou chez Syntra ! En
revanche, ce mini-site doit avoir sa singularité. En effet, le public cible est différent : il s’agit avant tout
d’agents immobiliers stagiaires.
Sur ce site, l’utilisateur retrouve notre en-tête reconnaissable, le titre, des liens vers les sous-pages et vers
le module de recherche de Google Maps permettant aux stagiaires et aux maîtres de stage de se trouver
plus facilement. Le bas de page reconnaissable de l’IPI se trouve en dessous.
Pages (sous réserve de modifications : voir l’annexe 3)
MONAGENTIMMOBILIER.BE & MIJNVASTGOEDMAKELAAR.BE
La redirection existante disparaît et nous plaçons des mini-sites sur ces URL. Ici aussi, l’IPI-BIV doit être
immédiatement reconnaissable (par son style “maison” et les templates) et il convient de mettre l’accent
sur le champ de recherche « à la Google ». L’utilisateur y retrouve notre en-tête reconnaissable et un titre,
suivis du champ de recherche dans lequel apparaissent les résultats avec des liens vers la page publique de
l’IPI propre à cet agent immobilier. Il y a ensuite trois blocs comportant des liens directs vers des
informations supplémentaires sur ipi.be. De cette manière, le site convient tout à fait pour une utilisation à
l’aide d’un appareil mobile. Notre bas de page connu se trouve en bas de l’écran. Les recherches peuvent
être analysées à l’aide de Google Analytics.
Pages (sous réserve de modifications : voir l’annexe 3)
EIPI.BE & EBIV.BE
Le design doit être conforme aux autres sites Internet. Pour le moment, on travaille uniquement en frontend : le back-end sera utilisé dans une phase ultérieure. Il convient toutefois de faire le nécessaire pour
afficher quelques informations concernant l’e-learning (par exemple cours validés et heures) sur le compte
de chaque agent immobilier. À nouveau, le caractère reconnaissable est important : en-tête, style et bas
de page reconnaissables de l’IPI !
13
Cahier des charges du 30/10/2014
Référence : 14/004
FONCTIONNALITÉ SUR MESURE
Le concepteur élabore des modules utiles pour les sites Internet et prévoit l’intégration dans ceux-ci à la
fois des logiciels existants et des logiciels encore à développer sur les sites. Le support et, le cas échéant, la
formation font également partie du package. Le code à développer doit être entièrement compatible avec
GA et GTM. Nous voulons pouvoir surveiller et analyser ce qui se passe sur le site, donc aussi les
recherches effectuées, les liens sur lesquels les visiteurs cliquent, etc. Les URL des pages de résultats
peuvent par exemple nous donner une idée des recherches effectuées si celles-ci comportent le paramètre
de recherche (q=… ou search=…).
Les modules décrits sont associés soit à des bases de données (éventuellement miroirs) existantes, soit à
des bases de données Access.
Voici maintenant une explication plus détaillée sur la fonctionnalité requise par module à développer.
COMPTE PRIVÉ
Un compte destiné à l’agent immobilier permet à chaque membre de l’IPI de consulter, d’utiliser et de
modifier des informations sur mesure. De cette manière, nous faisons un grand pas en direction d’un
bureau “paperless”, réduisant ainsi de façon significative la paperasserie et les frais d’expédition à l’IPI.
L’agent imobilier sera également plus proche de l’Institut et sera davantage impliqué dans notre
fonctionnement (voir l’annexe pour une description fonctionnelle détaillée).
Le compte puise les données dans des banques de données intégrées et avancées dont nous disposons à
l’heure actuelle. Cette intégration comprend Dolmen, Arco, MailChimp, WordPress, Formation Backoffice,
…
L’IPI doit avoir la possibilité d’effectuer un certain nombre de tâches administratives. Par exemple :
supprimer ou rendre inaccessibles, très simplement, des comptes spécifiques, publier des custom
notifications (destinées à une personne ou à plusieurs en même temps), publier des documents marqués
d’une étoile, ajouter des évènements dans le calendrier…
Le caractère reconnaissable de l’IPI, présenté sur les différents sites Internet, se retrouve également ici
dans l’en-tête et le bas de page. Le compte doit aussi être très facilement accessible sur un appareil mobile
: la mise en page doit donc être judicieuse et adaptative. Au lancement du compte et pour les nouveaux
utilisateurs, il convient également de prévoir des infobulles indiquant aux utilisateurs la voie à suivre dans
les différentes fonctions, avec une présentation simple et aérée – « Take the tour ».
Pour une description fonctionnelle détaillée : voir l’annexe 4. Pour de la documentation sur weGov : voir
l’annexe 5.
MODULE DE RECHERCHE POUR L’ENSEMBLE DU SITE INTERNET
Module de recherche général effectuant des recherches dans tout le contenu du site Internet (fonctionnel
dans GA).
14
Cahier des charges du 30/10/2014
Référence : 14/004
MODULE DE RECHERCHE/ FILTRE POUR LES FORM ATIONS
L’IPI offre à ses membres la possibilité de se recycler en permanence. Il s’agit d’ailleurs d’une obligation
légale. En gardant à l’esprit la professionnalisation du métier, nous devons permettre aux agents
immobiliers de s’inscrire facilement et intuitivement à une formation. Il s’agit d’un pilier essentiel de la
professionalisation. L’accès au backoffice de formation est prévu par le biais d’API. L’approche du module
est analogue à celle du module actuel.
Un calendrier contenant toutes les formations est présenté à l’utilisateur du front-end, qui peut lancer une
recherche ou utiliser un filtre pour trouver ce qu’il cherche.
Chaque formation dispose d’une URL distincte propre pour la fenêtre pop-up détaillée de chaque saisie (en
vue du monitoring des formations les plus consultées dans Google Analytics). Les inscriptions sont
possibles sur le site de l’IPI ou sur le site de l'organisateur de la formation (lien direct vers un formulaire).
Une fois inscrit, le participant reçoit idéalement un feedback de confirmation par courriel (avec un lien au
cas où il souhaiterait se décommander) et sur son compte. L’IPI reçoit également, dans le back-end, un
message signalant qu’un membre s’est inscrit.
Les formations dans le module de recherche sont automatiquement assorties d’extraits enrichis
concernant des évènements.
MODULE DE RECHERCHE/ FILTRE POUR LA JURISPRUDENCE DISCIPLINAIRE
Afin de rendre la jurisprudence de l’IPI plus transparente, nous présentons une sélection consultable de
sentences disciplinaires sur le site Internet.
Les données utilisées à cette fin proviennent de fichiers Access. Nous ne voulons pas montrer tous les
jugements par définition. Le système peut donc seulement afficher les résultats pour lesquels la variable
dans la colonne « site » est « true ». Lorsque la variable « site » est « false », le résultat ne peut jamais être
affiché dans les résultats de recherche. Un bouton « en savoir plus » près du résultat de la recherche
entraîne l’apparition d'une fenêtre pop-up contenant des informations plus détaillées. Une recherche
avancée doit être possible dans tous les champs. Des URL distinctes sont prévues pour un aperçu détaillé
de chaque entrée (en vue du monitoring dans Google Analytics).
MODULE DE RECHERCHE/ FILTRE POUR LE SERVICE DÉPISTAGE
Afin de mettre davantage en évidence le fonctionnement de l’Institut à l'égard du problème des agents
immobiliers illégaux, les dossiers clôturés du Service Dépistage doivent pouvoir être consultés. Cette
approche est analogue à celle du module sur la jurisprudence disciplinaire. Le fonctionnement du service
Dépistage est également crucial pour la professionnalisation du métier, car ce service identifie et poursuit
les agents immobiliers illégaux.
Ces données proviennent également d’un fichier Access autre que celui comportant les données
disciplinaires. Un bouton « en savoir plus » conduit à nouveau à une fenêtre pop-up contenant des
15
Cahier des charges du 30/10/2014
Référence : 14/004
informations plus détaillées. Une recherche avancée doit être possible dans tous les champs. Des URL
distinctes sont prévues pour un aperçu détaillé de chaque entrée (en vue du monitoring dans Google
Analytics).
MODULE DE RECHERCHE/ FILTRE POUR LA LISTE DES MEMBRES
Les gens doivent pouvoir vérifier si leur agent immobilier ou leur syndic est bien agréé et exerce donc ses
activités légalement. Pour le moment, cela arrive encore très souvent. C’est pourquoi nous avons besoin
d’un moteur de recherche moderne permettant aux personnes d’effectuer des recherches parmi nos
données.
La base de données est gérée par RealDolmen. Un champ d'entrée doit permettre n'importe quelle saisie
(1 terme, plusieurs termes,…). Une recherche avancée/spécifique peut éventuellement être prévue (si cela
s’avère nécessaire), avec plusieurs champs distincts comportant chacun un type d’entrée propre. Un
système analogue sera prévu pour les personnes morales, dans un seul et même module mais, bien
entendu, celui-ci ne comportera pas les champs « nom » et « prénom » dans les résultats. Conformément
aux bonnes pratiques, les saisies/résultats de recherche doivent pouvoir faire l’objet d’un suivi dans
Google Analytics (par le biais d’un paramètre dans l’URL, par ex. ?q=543210 of ?q=nom). L’objectif consiste
à communiquer au service Dépistage les saisies entraînant le résultat « Introuvable ».
Un clic sur un résultat de recherche redirige vers la page propre du membre de l’IPI, avec des informations
sur le site de l’IPI proprement dit (par ex. ipi.be/agents-immobiliers-agréés/543210). Ces pages sont
générées automatiquement et chaque page est complétée sur la base des informations dont nous
disposons au sujet du numéro IPI concerné. Une petite carte Google Maps avec une punaise indiquant le
siège principal est aussi générée automatiquement sur chaque page de membre. Cette page mentionne
également les postes vacants éventuels que l’agent immobilier en question souhaite afficher sur notre site
Internet. Cette saisie est introduite dans le compte et traitée automatiquement. La page
www.ipi.be/agents-immobiliers-agréés/postes-vacants-dans-le-secteur-immobilier rassemble tous les
postes vacants dans un module de recherche pratique, chaque poste vacant renvoyant vers la page du
membre agréé qui propose ce poste.
Le mode d’intégration de ce module aussi bien sur ipi.be et biv.be que sur monagentimmobilier.be et
mijnvastgoedmakelaar.be est à discuter.
MODULE DE RECHERCHE POUR STAGIAIRES ET M AÎTRES DE STAGE (STAGEIMMOBILIER.BE)
Des stagiaires sont à la recherche de maîtres de stage pour les accompagner. Il n’est pas toujours facile de
trouver un maître de stage libre et qui convienne. C’est pourquoi nous développons un module de
recherche permettant au maître de stage de se présenter comme disponible pendant une période
déterminée et permettant au stagiaire de chercher le maître de stage qui lui convient. Le caractère
temporaire de cette visibilité doit faire en sorte que seuls les maîtres de stage véritablement disponibles
pour un stagiaire soient affichés sur le site.
16
Cahier des charges du 30/10/2014
Référence : 14/004
L’input du côté des agents immobiliers pour ce module de recherche provient directement des comptes, à
savoir de ce qui a été introduit directement dans la rubrique « Maîtrise de stage ». Cet aspect est décrit
plus en détail dans la rubrique Account ci-dessus. Chaque maître de stage se tenant à la disposition d’un
stagiaire est désigné par une « punaise » sur la petite carte Google Maps. Cette punaise mentionne les
informations utiles comme les colonnes pour lesquelles il peut être maître de stage, le message que
l’agent immobilier peut laisser s’il le souhaite, l’adresse e-mail et le numéro de téléphone permettant de
prendre contact avec lui ainsi qu’un lien automatique vers sa propre page contenant des informations sur
le site de l’IPI (par ex. ipi.be/agents-immobiliers-agréés/543210). Pas de liens externes.
Le module de recherche proprement dit se trouve sur le front-end du site stageimmobilier.be, de même
que la carte Google Maps présentant, après une recherche, les punaises pertinentes.
« RELATED LINKS » ET « RELATED FILES » AVEC ÉTOILE
Blocs contenant un renvoi soit vers des « related links », soit vers des « related files » :
-
-
« Related links »
o articles portant sur le même sujet
o pas de fonctionnalité supplémentaire
o il existe peut-être déjà quelque chose de semblable
« Related files »
o formulaires, documents, sources de loi,…
o tout le monde doit pouvoir les ouvrir
o doivent comporter une étoile seulement visible pour les personnes enregistrées dans leur
compte, qui peuvent alors cliquer dessus
o la taille et l'extension du fichier doivent être mentionnées
o event tracking sur la petite étoile par fichier/catégorie
 activé et désactivé en un simple clic
 permet de savoir à quels documents on accorde le plus de valeur
o aperçu du nombre de téléchargements et du nombre de marque-pages pour l’IPI (dans un
back-end ou mid-end)
o
o (Fichiers associés – Nom du fichier – 123x téléchargé – Encore un fichier – 4x téléchargé)
 petit bloc à ajouter ou non par post/page
 à choisir manuellement par post/page : choisir parmi la base de données des
fichiers
 suggestions bienvenues
17
Cahier des charges du 30/10/2014
Référence : 14/004
INTÉGRATIONS ET LIENS
Le concepteur de pages web prévoit les liens nécessaires vers des bases de données synchronisées déjà en
utilisation. Il le fait en collaboration avec une tierce partie qui s’occupe de la synchronisation des données.
La gestion de l’accès (access control management) et la gestion des utilisateurs (identity management)
sont assurées en collaboration avec ce tiers de façon sécurisée.
Vous trouverez dans les annexes les informations provisoires suivantes :
-
un tableau des droits d’utilisation indicateur, mais non exhaustif
des spécifications sur la plate-forme weGov (OAuth 2.0)
INFRASTRUCTURE ET CONTRAT DE MAINTENANCE
L’hébergement du site Internet est actuellement assuré par OpenMinds et le restera jusqu'à nouvel ordre.
Contrat de maintenance ou Intercompany-agreement (SLA)
Le contrat de maintenance a pour but de maintenir le bon fonctionnement du système et d’offrir un
support permanent au gestionnaire.
Dans son offre, le soumissionnaire propose un contrat type prévoyant la maintenance du projet.
La proposition de contrat de maintenance mentionne les informations suivantes :
-
l’objet du contrat de maintenance
-
la durée, les modalités d’extension, la révision du prix
-
la maintenance préventive et corrective prévue
-
les délais et la période d’intervention conformément aux exigences du cahier des charges
la forme de l’assistance technique et du support : par téléphone, par courriel, par un système de
tickets
Le prix de la maintenance fait partie des critères d’adjudication.
MAILCHIMP
Nous avons récemment migré nos données du programme Addemar vers MailChimp. À cet égard, nous
avons besoin d’une série de templates faciles à utiliser et flexibles qui soient conformes au style
« maison » (voir plus loin). Nous voulons envoyer, de façon professionnelle et efficace, des mailings
18
Cahier des charges du 30/10/2014
Référence : 14/004
qualitatifs et nécessitant peu de manipulations. Afin de pouvoir gérer notre contenu en un seul endroit, le
mailing doit faire référence à notre site Internet.
Par le biais du RSS-feed du blog à créer, nous avons la possibilité d'envoyer des articles du site Internet (où
les articles sont rédigés et peuvent être entièrement lus), dans leur intégralité ou avec un bouton
« poursuivre la lecture » renvoyant vers l’article en question sur le site Internet. Nous utilisons des merge
tags dynamiques afin de personnaliser le courriel.
Les mailings sont mis en page conformément au style « maison » à développer. Ils sont faciles à utiliser et
sont compatibles avec un input RSS, le cas échéant. Nous avons plusieurs campagnes de mailings en cours :
IPI-Mail, IPI-Flash, IPIV-Essentials et éventuellement IPI-Hello.
Le concepteur de pages web développe par ailleurs un module nous permettant d’afficher des statistiques
sur la page web comportant les mails IPI. Pour ce faire, nous utilisons des appels API présentés dans une
vue d’ensemble. Quelques rapports sont également établis dans Excel en concertation avec l’Institut afin
de pouvoir réaliser un rapportage détaillé des campagnes de courriels et de les analyser par le biais des
API.
LOGOS ET STYLE « MAISON »
Un logo pour l’IPI-Mail, l’IPI-News, l’IPI-Flash, l’IPI-Essentials et l’IPI-Hello doit accroître le caractère
reconnaissable de ces moyens de communication. Pour des raisons publicitaires, la base de chaque logo
est toujours le logo de l’IPI : celui-ci ne doit pas être redéveloppé. Il peut éventuellement être rafraîchi,
mais il doit absolument rester reconnaissable.
Les logos unilingues sont utilisés sur les pages affichées dans la langue concernée. Cependant, il doit aussi
y avoir des logos bilingues.
Nous avons besoin d’un style « maison » reconnaissable pour tous les moyens de communication :
-
Site Internet
IPI-Mail, IPI-Flash, IPI-Essentials
IPI-News
Rapport annuel version papier/en ligne
Courriers
Communiqués de presse
Bannières et « press walls »
Brochures et dépliants
Signatures de courriels
…
19
Cahier des charges du 30/10/2014
Référence : 14/004
V. ANNEXES
V.1. FORMULAIRE D’OFFRE
OFFRE POUR LE MARCHÉ AYANT POUR OBJET : ‘LA CONCEPTION D’UN SITE INERNET IPI’.
IMPORTANT : CE FORMULAIRE DOIT ÊTRE ENTIÈREMENT COMPLÉTÉ ET SIGNÉ PAR LE
SOUMISSIONNAIRE. TOUS LES MONTANTS DOIVENT ÊTRE MENTIONNÉS À LA FOIS EN CHIFFRES
ET EN TOUTES LETTRES.
Le soumissionnaire :
Personne physique
Soussigné (nom et prénom) :
Qualité ou profession :
Nationalité :
Domicile (adresse complète) :
OF (open laten wat niet van toepassing is)
Société
La société (dénomination, forme juridique) :
Représentée par le(s) soussigné(s) :
Numéro d’entreprise :
Nationalité :
Siège social :
(Les mandataires joignent à leur offre l’acte authentique ou sous seing privé démontrant leur compétence ou une copie certifiée
conforme de leur procuration).
Téléphone :
Fax :
Courriel :
Personne de contact :
20
Cahier des charges du 30/10/2014
Référence : 14/004
S’engage à :
Informations générales
Numéro d’ONSS :
Numéro de TVA (uniquement en Belgique):
Paiements
Les paiements seront effectués valablement par virement au compte ...................................................................
de l’institution financière .....................................................................................
ouvert au nom de ……………………………………...........…………...........…………………….……………….…………….
Documents joints en annexe
Sont joints à cette offre les documents datés et signés qui, conformément au cahier des charges de ce marché,
doivent ou peuvent y être annexés, en particulier en vue de remplir les critères d'adjudication prévus au point
II.8.
21
Cahier des charges du 30/10/2014
Référence : 14/004
Site Internet
Conception (P) :
(en chiffres, TVA non comprise)
……………………………
et
(en lettres, TVA non comprise)
………………………………………………………………………………………………
Support et maintenance (O) :
(en chiffres, TVA non comprise)
…………………………… /mois
et
(en lettres, TVA non comprise)
………………………………………………………………………………………………
Total : P + (O x 12) = X
(en chiffres, TVA non comprise)
……………………………
et
(en lettres, TVA non comprise)
………………………………………………………………………………………………
(Tous les montants doivent être mis par écrit en chiffres et en toutes lettres.)
Inventaire
(Aperçu des éléments de
prix par partie)
22
Cahier des charges du 30/10/2014
Référence : 14/004
Établi à …………………………………………………………………….. le …… / …… / 2014,
Le soumissionnaire,
Nom et prénom :
Fonction :
Signature :
Aucun recours n’est possible concernant des vices de forme, des défauts ou des omissions (article 99 de
l’Arrêté royal du 08/01/1996).
23
Cahier des charges du 30/10/2014
Référence : 14/004
V.2. TABLEAU DES DROITS D’UTILISATION
Le tableau suivant est donné à titre d’indication et n’est pas exhaustif.
négociateur / syndic / négociateur et syndic
colonne de l’agent immobilier
(une de ces colonnes)
statut de l’agent immobilier
(plusieurs possibles)
admin
titulaire
maître
de stage
droits complémentaires
stagiaire
omis
suspendu
radié
titulaire
modules de compte
-
formation (Formation BO)
rwxd
rwx
rwx
rwx
r
r
-
e-learning (eIPI/eBIV)
rwxd
rwx
rwx
rwx
r
r
-
documents (starred WP)
rwxd
rwx
rwx
rwx
r
r
-
calendrier (custom)
rwxd
rwx
rwx
rwx
r
r
-
dossiers (arco docroom)
rwxd
rwx
rwx
rwx
r
r
-
maîtres de stage (custom)
rwxd
rwx
-
-
-
-
-
je cherche un stagiaire
rwxd
rwx
-
-
-
-
-
mes stagiaires
rwxd
rwx
-
-
-
-
-
mon stage (arco)
rwxd
r
r
rwx
r
r
-
cadastrefinder
rwxd
r
r
r
-
-
-
coordonnées (custom)
rwxd
rwx
rwx
rwx
rwx
rwx
-
statut
cotisation
assurance
colonnes
maîtrise de stage
communications
rwxd
r
r
r
r
r
24
-
Cahier des charges du 30/10/2014
Référence : 14/004
V.3. STRUCTURE DES PAGES
La liste suivante est donnée à titre d’indication et n’est pas exhaustive.
IPI.BE
BIV.BE
/0/ Page d’accueil
/1/ À propos de nous
/1.1/ Pourquoi l’IPI ?
/1.2/ Missions légales
/1.3/ Organisation de l’IPI
/1.4/ Services (Dépistage, Chambres, Communication,
Formation, Financier et Logistique)
/1.4.1/ Agents immobiliers illégaux
/2/ Liste des membres
/2.1/ Page par membre
/2.2/ Postes vacants auprès d’agents immobiliers agréés IPI
/3/ Jurisprudence
/4/ Informations thématiques
/4.1/ Législation antiblanchiment
/4.2/ Nouvelle loi relative à la copropriété
/4.3/ Colonnes
/4.4/ Omission
/4.5/ …
/5/ La profession d’agent immobilier
/5.1/ Devenir agent immobilier
/5.1.1/ Actif en Belgique et/ou à l’étranger
/5.1.2/ UE : Libre prestation de services / liberté
d’établissement
/5.2/ Déontologie
/5.3/ Formation
/5.3.1/ Liste des centres de formation permanente
/5.3.2/ Obligation de formation
/5.3.3/ E-learning
/5.3.4/ FAQ Formation
/5.4/ Assurance
/5.5/ Modèles de documents et de formulaires
/5.6/ Cotisation
/6/ Communication
/6.1/ IPI-Mail
/6.2/ IPI-News
/6.3/ IPI-Flash
/6.4/ Rapport annuel de l’IPI
/6.5/ Presse
/6.6/ Articles (Blog)
/7/ Compte/Login
/8/ Le stage
/9/ Le consommateur et l’IPI
/9.1/ L’agent immobilier
/9.2/ Obligations déontologiques de l’agent immobilier
/9.3/ FAQ Consommateur
/9.4/ Déposer plainte
/10/ Nous contacter
/11/ CEPI
/12/ Cahiers des charges
/13/ Liens
/14/ Disclaimer
/15/ Plan du site
STAGEIMMOBILIER.BE
VASTGOEDSTAGE.BE
MONAGENTIMMOBILIER.BE
MIJNVASTGOEDMAKELAAR.BE
/0/ Page d’accueil
/1/ Terminologie
/2/ FAQ Stage
/3/ Documents
/4/ Trajet de stage
/0/ Page d’accueil
25
Cahier des charges du 30/10/2014
Référence : 14/004
V.4. COMPTE DE L’AGENT IMMOBILIER
Voici une description fonctionnelle du compte propre à chaque agent immobilier, qui pourra être
consulté en ligne à l’adresse ipi.be/account.
Une fois enregistré, l’agent immobilier arrive dans son propre compte. Un menu apparaît et lui
permet de naviguer parmi les différents liens vers des notifications le cas échéant, plus ou moins
comme sur l’image ci-dessous.
TABLEAU DE BORD – APERÇU RAPIDE DES PRINCIPALES INFORMATIONS CONTENUES DANS LE S
FICHES
Statut de l’affiliation
-
Cotisation année x (en ordre ; combien à payer et pour quand ; pas en ordre)
Assurance (en ordre ; en cours de traitement ; pas en ordre)
Colonnes (négociateur, syndic ou les deux)
Maîtrise de stage par colonne (visible ; non visible ; pas maître de stage)
Communications (introduites manuellement par l’IPI)
Aperçu des fiches
-
Ma Formation (dernière en date, heures validées, heures d’e-learning validées)
Mes Documents (derniers documents marqués d’une étoile, nouvelle documentation
importante disponible)
Mon Calendrier (évènements à venir)
Mes Dossiers (échange de courriers le plus récent)
Cadastrefinder (activité dans le cadastrefinder)
-
Mes Documents de stage
FICHES
FORMATION
-
Formations auxquelles l’agent s’est inscrit dans la rubrique « formations à venir »
26
Cahier des charges du 30/10/2014
-
Référence : 14/004
Formations déjà suivies avec les attestations délivrées et le nombre d’heures suivies
DOCUMENTS
-
-
Documents marqués d’une étoile : partout sur le site, l'agent immobilier peut marquer d’une
étoile les documents et formulaires qu’il juge « pertinents » et ainsi les retrouver plus
rapidement dans son compte
le cas échéant, nous devons pouvoir aussi y placer des documents très importants, par
exemple avec une icone d’alerte en rouge
décocher une petite étoile dans cette liste propre (ou sur le site) = l’enlever de sa liste
personnelle
CALENDRIER
-
Introduction par l’IPI : faits intéressants, évènements, convocations,…
Formations à venir et heures à valider pour cette formation si la personne y a participé
Dates de procédures et de convocations devant les Chambres
À compléter aussi par l’agent immobilier (par ex. dates de la lettre de convocation ou pour
quoi que ce soit)
DOSSIERS
-
Dates de procédures, convocations
Copies de documents et correspondances dont nous disposons au sujet de l’agent immobilier
Une intégration avec le DocRoom d’Arco est requise (www.arco.be)
MAÎTRISE DE STAGE
-
La permutation entre actif/inactif doit être retirée de la fiche Dolmen (l’IPI doit pouvoir activer
et désactiver ce bloc pour les agents immobiliers)
Je cherche un stagiaire
-
-
Petite case « je cherche actuellement un stagiaire » (disponibilité conditionnelle : peut
seulement être cochée quand il ressort de la base de données que l'agent immobilier peut
accepter un stagiaire (supplémentaire))
o Activée = données automatiquement publiques et apparaissant sur la petite carte du
site stageimmobilier.be
o Notification dans le « newsfeed » sur stageimmobilier.be : X est à la recherche d’un
stagiaire
o Désactivée = ne plus afficher les données et message signalant que X n’est plus à la
recherche d’un stagiaire
Si cette petite case est décochée, le choix (plus spécifique) suivant reste grisé. En cas
d’activation, les données suivantes peuvent être complétées (les dernières données
complétées sont gardées en mémoire)
27
Cahier des charges du 30/10/2014
-
-
-
Référence : 14/004
Case « négociateur », case « syndic », case « négociateur et syndic » (griser ce qui n’est pas
possible sur la base du statut du maître de stage)
o Il s’agit de la/des colonne(s) contenant l’activité pour laquelle l’agent immobilier
cherche un stagiaire
Choix possibles : actif pendant combien de temps (1 semaine, 2 semaines ou 3 semaines)
o Objectif : tenir à jour les données affichées
o Notification lorsque la période est bientôt écoulée
Facultatif : champ de saisie pour un message
o Des liens externes ne peuvent en aucun cas être introduits quelque part.
Mes stagiaires
Cette rubrique contient les documents, formulaires, etc. relatifs au stage en cours.
MON STAGE
-
Uniquement pour les stagiaires
Journal en ligne et module de mise à jour (intégration Arco DocRoom)
Rendre d’autres documents/formulaires disponibles
COORDONNÉES
-
-
Lire et afficher automatiquement les champs
À modifier par l’agent immobilier le cas échéant
Le bouton « Envoyer » envoie des données, par exemple par courriel à [email protected] et
[email protected]
o Regex pour vérifier les données introduites (de préférence avant l’envoi)
o 1 adresse est celle de la vraie boîte de réception, l‘autre représente le transfert vers la
même boîte de réception
o Les champs modifiés sont désignés dans ce courriel par une petite étoile ou par la
mention « (modifié) »
o Le style de l’input est libre, le style de l’output, pour le confort des collègues, est
conforme à leur module de travail
Autre possibilité : Utiliser le proxy qui constituera aussi un stade intermédiaire pour d'autres
données
PETIT BLOC MENTIONNANT LE NUMÉRO DE TÉLÉPHONE DE LA HOTLINE
Uniquement à titre d’information car la hotline est un service réservé à l’agent immobilier.
28
Cahier des charges du 30/10/2014
Référence : 14/004
V.5. WEGOV
OAuth 2.0, OpenIdConnect, UMA
weGov Authorization Server is een realisatie van die 3 officiële standaarden voor beveiliging van persoonsgegevens,
applicaties en resources.
OAuth 2.0
OAuth 2.0 of Open Authentication (v 2.0) is een standaard bedoelt voor de autorisatie van client toepassingen.
Een client applicatie kan toegang krijgen tot een bepaalde resource via de account van een gebruiker van die
resource. De client hoeft de gebruikersgegevens niet te kennen (gebruikersnaam / wachtwoord). De gebruiker geeft
toestemming aan de client om de resource te gebruiken. De eigenlijke toegang tot de beveiligde resource wordt
geregeld via de uitwisseling van beveiligde tokens (JWT) via een beveiligde verbinding (SSL).
Een autorisatie aanvraag verloopt als volgt:
•
De client toepassing stuurt een aanvraag naar de Authorization Server. De client vraagt enkele ‘scopes’ aan.
Scopes zijn hooflettergevoelige strings die een bepaald onderdeel van de API (resource) afbakenen .
•
De gebruiker wordt omgeleid naar de login pagina van de Authorization Server. Hij meldt aan bij de
authorization Server.
•
De gebruiker wordt omgeleid naar een consent pagina. De aangevraagde scopes worden in een lijst
weergegeven (en kunnen aan en uit gevinkt worden). De gebruiker geeft op deze manier toestemming aan de
client applicatie om de resource te gebruiken.
•
De client applicatie krijgt van de Authorization Server een Accesstoken terug. Het Accesstoken is een
geëncrypteerd JWT (JSON Web Token). De toepassing heeft dit token nodig om een beveiligde resource te
gebruiken. De Resource Server controleert de geldigheid van het Accesstoken en antwoordt op gepaste
manier op de aanvraag.
29
Cahier des charges du 30/10/2014
Authorization
server
Client
Référence : 14/004
Resource
Server
Request access token & authentication
Request access token (authorization grant)
Access & refresh token
Request resources
Access token
Protected resource
Invalid access token & refresh
Access token
Invalid token error
Refresh token
Access token (& refresh)
Figuur 1: OAuth 2.0 Basis Sequentie
OAuth 2.0 heeft enkele vereisten
•
SSL: de communicatie tussen client en Authorization Server verloopt over een beveiligde verbinding.
•
De client is gekend (door registratie) bij de Authorization Server
OpenIdConnect
Een uitbreiding op OAuth 2.0. Open Authentication zegt in principe niks over de gebruiker. Het omvat enkel waar een
client toegang tot krijgt op een bepaalde resource server. OpenIdConnect definieert een nieuw OAuth 2.0 token
(OpenId Token) dat profieldata van de gebruiker bevat.
Om een OpenId Token te verkrijgen moet bij de autorisatie aanvraag enkel de scope ‘openid’ worden meegegeven.
De Authorization Server antwoordt op de aanvraag met een OAuth Accesstoken en een OpenId Token.
Het OpenId Token bevat claims over het gebruikersprofiel. Een ‘claim’ is de combinatie van een sleutel en een
waarde, bvb. ‘naam:Jan’.
UMA 1.0
De UMA specificatie is momenteel nog in ‘draft’ maar wordt waarschijnlijk officieel vanaf februari 2015.
30
Cahier des charges du 30/10/2014
Référence : 14/004
UMA is een uitbreiding op OAuth 2.0 waardoor het mogelijk wordt om externe resources te beveiligen via een zelfde
Authorization Server. De beveiligde resources zijn net als de clients gekend door de Authorization Server. De
Authorization Server kan tokens uitgeven voor zijn eigen resources alsook voor externe (niet-WeGov) resources
waartoe clients toegang willen.
De exacte werking van UMA is buiten de scope van dit document.
Praktisch
weGov Authorization Client
weGov Authorization Client is een .NET 4.5 klasse bibliotheek die speciaal ontwikkeld is om op een eenvoudige
manier beveiligde tokens aan te vragen aan de weGov Authorization Server.
In dit voorbeeld wordt enkel OAuth 2.0 en OpenIdConnect belicht. UMA is hier bijna niet van toepassing.
Client Registratie
De client applicatie is gekend door de Authorization Server met minimaal de volgende parameters
•
ClientId: unieke identifier voor de client (aangemaakt door de Authorization Server bij registratie)
•
ClientSecret: unieke key per client (aangemaakt door de Authorization Server bij registratie)
•
RedirectUri: URL binnen de clientapplicatie waarnaar de Authorization Server tokens of eventuele
foutboodschappen zal sturen. De URL staat vooral geregistreerd voor validatie doeleinden.
De client kent zijn eigen clientid en clientsecret.
Authorization Server Configuratie (UMA)
De UMA standaard zegt dat iedere Authorization Server info moet verstrekken over de adressen van de verschillende
endpoints, token formaat, … De configuratie is publiek toegankelijk op http://[AuthorizationServer -domain]/umaconfiguration/ in JSON formaat.
weGovAuthorizationClient maakt gebruik van deze configuratie om te weten te komen waar de aanvragen naartoe
moeten worden gestuurd.
31
Cahier des charges du 30/10/2014
Référence : 14/004
{
"version": "1.0",
"issuer": "weGovID",
"pat_profiles_supported": "bearer",
"aat_profiles_supported": "bearer",
"rpt_profiles_supported": "bearer",
"pat_grant_types_supported": "client_credentials",
"aat_grant_types_supported":
"authorization_code,client_credentials,password,implicit",
"claim_profiles_supported": "openid",
"user_endpoint":
"http://localhost/weGov.Authorization.Web/AuthorizationCore/consent",
"user_info_endpoint":
"http://localhost/weGov.Authorization.Web/AuthorizationCore/userinfo",
"token_endpoint":
"http://localhost/weGov.Authorization.Web/AuthorizationCore/token",
"introspection_endpoint":
"http://localhost/weGov.Authorization.Web/AuthorizationCore/introspection",
"permission_registration_endpoint":
"http://localhost/weGov.Authorization.Web/AuthorizationCore/permissionregistration",
"rpt_endpoint":
"http://localhost/weGov.Authorization.Web/AuthorizationCore/rpt",
"authorization_request_endpoint":
"http://localhost/weGov.Authorization.Web/AuthorizationCore/request_authori
zation",
"oauth_authorization_endpoint":
"http://localhost/weGov.Authorization.Web/AuthorizationCore/authorize",
"logout_endpoint":
"http://localhost/weGov.Authorization.Web/AuthorizationCore/logout"
}
Figuur 2 voorbeeld UMA Configuratie
Tokens verkrijgen
Om toegang te krijgen tot de weGov API’s heeft de client applicatie een accesstoken nodig. Als de client de identiteit
van de gebruiker wil kennen, heeft hij een OpenId token nodig. Al deze tokens kunnen op verschillende manieren
(flows) worden aangevraagd
•
Authorization Code Flow: de client krijgt eerst een authorization code (die slechts 1x kan worden gebruikt).
Die code kan worden ingewisseld voor tokens.
•
Implicit Flow: bedoelt voor JavaScript clients. De client doet een aanvraag en krijgt meteen tokens terug.
•
Password Credential Flow: de client kent de gebruikersnaam en passwoord van de weGov-gebruiker.
•
Client Credential Flow: er worden tokens uitgegeven aan de hand van clientid en clientsecret.
In de meeste gevallen wordt Authorization Code Flow gebruikt
32
Cahier des charges du 30/10/2014
Gebruiker
Référence : 14/004
Authorization
Server
Client
Autorisatie aanvraag
Omleiden naar login pagina
Aanmelden met gebrukersnaam & wachtwoord
Omleiden naar consent pagina
Toestemming (consent)
Authorization Code
Aanvraag tokens (met Authorization Code)
Tokens
Figuur 3: OAuth 2.0 Authorization Code Flow
De aanvraag voor een Authorization Code begint met een GET Request naar het OAuthAuthorizationEndpoint. De
parameters worden als QueryString meegegeven. OAuthClient (onderdeel van weGov. Authorization.Client) bevat
een methode om de juiste URI op te stellen.
OAuthClient client = new OAuthClient(new
Uri(System.Configuration.ConfigurationManager.AppSettings["UMAConfig"]));
string requestUri = await client.CreateAuthorizationCodeRequestUriAsync("6",
"rsclientsecret", "http://localhost/redstart.web/account/wegovidredirect/", new
string[] { "openid", Constants.StandardScopes.authz, "updateprofile" });
return Redirect(requestUri);
Figuur 4: Aanvraag Authorization Code
•
Er wordt een nieuwe instantie van OAuthClient aangemaakt. De URI naar de UMA-Configuratie kan worden
opgegeven. De URI is hier terug te vinden in web.config (of app.config)
•
CreateAuthorizationCodeRequestUriAsync heeft als argumenten clientid, clientsecret, redirecturi en een
array van geldige scopes. Aan de hand hiervan wordt de juiste URI opgesteld.
requestUri heeft hier als waarde: http://ltsfi0002.cibvivo.local/weGov.Authorization.Web/AuthorizationCore/authorize?response_type=code&client_id=6&client_
secret=rsclientsecret&redirect_uri=http%3A%2F%2Flocalhost%2Fredstart.web%2Faccount%2Fwegovidred
irect%2F&scope=openid+http%3A%2F%2Fdocs.kantarainitiative.org%2Fuma%2Fscopes%2Fauthz.json+up
33
Cahier des charges du 30/10/2014
Référence : 14/004
dateprofile
Deze URI bevat alle parameters die nodig zijn om een geldige request uit te voeren.
•
Scope ‘http://docs.kantarainitiative.org/uma/scopes/authz.json’ (toegevoegd door
Constants.StandardScopes.authz) is verplicht. Deze scope zorgt ervoor dat de client applicatie een
accesstoken zal krijgen.
•
Scope ‘openid’ zorgt ervoor dat de Authorization Server een openidtoken aanmaakt met claims over de
gebruiker zijn identiteit.
•
Scope ‘update_profile’ is een scope die gekend is door weGov. De scope zorgt ervoor dat de client applicatie
methodes van de weGov API kan gebruiken om het profiel van de gebruiker te updaten. (‘update_profile’ is
hier fictief)
•
De gebruiker wordt omgeleid naar de Authorization Server. Als hij nog niet eerder heeft aangemeld, zal eerst
de login pagina getoond worden en daarna de consent pagina.
De Authorization Server zal de gebruiker omleiden naar de redirectUri van de client applicatie. De geldige
Authorization Code wordt als QueryString parameter meegegeven:
http://localhost/redstart.web/account/wegovidredirect/?code=97621d95-e497-43d9-a889-27d7ed1a7982
Indien er fouten opgetreden zijn (bvb. een ongeldig clientid of clientsecret, ongeldige scopes, …), worden parameters
‘error’ en ‘error_description’ meegegeven. Hun waarde is conform aan de OAuth 2.0 specificaties. Het is aan de client
applicaties om deze fouten correct te behandelen en eventueel de gebruiker op de hoogte te stellen.
De ontvangen Authorization Code (parameter ‘code’), kan nu worden gebruikt om de juiste tokens aan te vragen.
Hiervoor moet een POST Request naar het TokenEndpoint van de Authorization Server worden gestuurd.
string code = Request.QueryString["code"];
OAuthClient client = new OAuthClient(new
Uri(System.Configuration.ConfigurationManager.AppSettings["UMAConfig"]));
var response = await client.GetAuthorizationCodeGrantAsync(code,
"http://localhost/redstart.web/account/wegovidredirect/", "6");
Figuur 5: Token Request
Aan methode GetAuthorizationCodeGrantAsync wordt de code, de redirecturi en de clientid meegegeven.
RedirectURI en ClientId worden als validatie gebruikt.
De response returnvalue is van het type OAuthTokenResponse en bevat verschillende properties.
•
AccessToken: het accesstoken om de weGov API’s aan te spreken.
•
OpenIdtoken: het openid token bevat de claims over het gebruikersprofiel van de aangemelde gebruiker. Deze
property heeft enkel een waarde als de ‘openid’ scope is aangevraagd.
•
Refresh: een refreshtoken. Tokens hebben een beperke levensduur. Als een token vervallen is, kan een nieuw
aangevraagd worden door middel van een refreshtoken. Een refreshtoken heeft een langere levensduur.
•
TokenType: zal altijd ‘bearer’ zijn
•
ExpiresIn: Tijdspanne waarbinnen de tokens geldig zijn.
•
Scope: de aangevraagde scopes
34
Cahier des charges du 30/10/2014
Référence : 14/004
•
State: optionele waarde die aan het begin van een authorization request kan worden meegegeven door de
client. De client kan deze waarde bij het ontvangen van de tokens controleren en zo de geldigheid bepalen.
•
Error: Enkel ingevuld als er fouten zijn opgetreden. De waarde komt overeen met de voorgeschreven waardes
in de OAuth 2.0 specificaties
•
Error_Description: meer info omtrent de foutcode
JWT
Tokens worden verstuurd als versleutelde JWT’s (JSON Web Token). Ze zijn dus niet leesbaar voor de mens.
Om de inhoud van een JWT te kunnen bekijken, moeten ze eerst omgezet worden naar een Token object
(weGov.Authorization.Core.Domain). weGov.Authorization.Core.Utils heeft een static class JwtHelper die een JWT
naar een Token kan omvormen.
var accessToken = JwtHelper.GetTokenFromJwt(response.AccessToken);
Figuur 6: Omvormen JWT naar Token
Token bevat een property ‘Claims’ die de info bevat.
Het is eveneens mogelijk om het JWT naar plain JSON om te zetten. OAuthClient heeft een methode ‘DecriptJWT’ die
een JSON string terug geeft
var json = OAuthClient.DecryptJWT(response.AccessToken);
Figuur 7: Omvormen JWT naar JSON
Eenmaal gedecrypteerd, kan een token niet opnieuw geldig geëncrypteerd worden. Op die manier worden
aangepaste, en dus onveilige, tokens vermeden.
Inhoud van het AccessToken
Als we een accesstoken JWT omzetten naar zijn simpele JSON vorm, krijgen we het volgende te zien:
{"sub":"1","name":"matijs","aum":"password","aut":"1412675445,31402","scope":["http://docs.kant
arainitiative.org/uma/scopes/authz.json","openid"],"client_id":"6","token_type":"AuthorizationAPIT
oken","iss":"weGovID","aud":"6","exp":1412718646,"nbf":1412675446}
Figuur 8: AccessToken als JSON string
•
sub: ‘Subject’ = userid van de aangemelde weGov gebruiker
•
name: Gebruikersnaam van de aangemelde weGov gebruiker
•
aum: ‘Authentication Method’, manier van aanmelden (password of eid)
•
scope: de aangevraagde scopes
•
client_id
•
token_type: duidt aan dat het om een AuthorizationAPIToken gaat. Dit is een accesstoken voor client
applicaties (UMA)
•
iss: ‘Issuer’, de uitgever van het token
•
aud: ‘Audience’, de client_id
35
Cahier des charges du 30/10/2014
•
exp: ‘Expires’, tijdstip wanneer het token vervalt
•
nbf: ‘Not Before’, tijdstip vanaf wanneer het token geldig is
Référence : 14/004
Inhoud van het openid token
Het openid token bevat claims omtrent het gebruikersprofiel. Daarnaast zijn de gebruikelijke JWT claims ook
aanwezig (sub, iss, nbf, ...)
{"sub":"1","preferred_username":"matijs","name":"matijs","email":"[email protected]
om","given_name":"Matijs","family_name":"Vandenberghe","role":"Administrator
User","client_id":"6","token_type":"OpenIdToken","iss":"weGovID","aud":"6","exp":1412718646,"nb
f":1412675446}
Figuur 9: OpenId token als JSON string
OpenIdConnect voorziet een aantal standaard claims om een profiel te defniëren. Die hoeven niet allemaal aanwezig
te zijn. Er kunnen ook niet-standaard claims toegevoegd worden, afhankelijk van de provider (in dit voorbeeld: ‘role’).
•
given_name
•
family_name
•
middle_name
•
nickname
•
preferred_username
•
profile: URI waar het gebruikersprofiel kan bekeken worden
•
picture
•
website
•
email
•
email_verified: of het email adres gevalideerd werd (bvb. bevestigingsmail)
•
gender
•
birthdate
•
zoneinfo
•
locale
•
phone_number
•
phone_number_verified: of het telefoonnummer gevalideerd werd.
•
address
•
updated_at
Uitbreidbaarheid
Naast de standaard claims is het mogelijk om provider afhankelijke claims te definiëren. Geen enkel gebruikersprofiel
is namelijk overal op dezelfde wijze geïmplementeerd. OpenIdConnect laat toe om eigen claims toe te voegen,
afhankelijk van wat er bekend is over de gebruikersaccount.
36
Cahier des charges du 30/10/2014
Référence : 14/004
Figuur 10: Basis Gebruikersprofiel met
Client
-ClientID
-ClientName
-ClientSecret
1
User
0..*
1
Role
-UserID
-UserName
rol
0..*
-RoleID
-UserID
-ClientID
-RoleName
Volgens bovenstaande schema, heeft een gebruiker een rol binnen een clientapplicatie (bvb. ‘Administator’ of
’User’). Men zou dus kunnen stellen dat ‘Role’ een onderdeel van het gebruikersprofiel is. ‘Role’ kan dus toegevoegd
worden aan het OpenId Token dat profieldata bevat:
{"sub":"1","preferred_username":"matijs","name":"matijs","email":"[email protected]
om","given_name":"Matijs","family_name":"Vandenberghe","role":"Administrator
User","client_id":"6","token_type":"OpenIdToken","iss":"weGovID","aud":"6","exp":1412718646,"n
bf":1412675446}
De weGov Authorization Server kan zo geconfigureerd worden, dat ieder aspect van het gebruikersprofiel als claim
aan het OpenId token kan worden toegevoegd (bvb. Organisatie, Laatste tijdstip aanmelden, alternatieve contact
gegevens, …)
37