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
© Copyright 2025 ExpyDoc