Avancement

Le travail portait depuis un moment sur la création de nouvelles entités. Il fallait commencer par la création de nouvelles entités indépendantes sans déverrouillage préalable. C’est à dire pour un portail public la possibilité pour tout un chacun de pouvoir créer une entité.

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2015-04-26_00.48.16

C’est maintenant fonctionnel. Voici une création :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2015-04-25_23.32.14

On peut voir que aucune entité n’est préalablement déverrouillée. En bas apparaît quelques lignes sur les actions de création de l’entité. Le nommage complet, c’est à dire le nom, prénom, surnom, préfixe, suffixe et type, sont fonctionnels. Le surnom apparaît dans l’interface entre double cotes.

Après, en basculant vers la nouvelle entité, il est tout a fait possible de la déverrouiller. La nouvelle entité est fonctionnelle. Voici l’entité créée ci-dessus lorsque déverrouillée :

sylabe_-_153153bf7f7f98c41e3fbdce6a7f9dfe2c854974d5310d6047de862459e2dd8b_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2015-04-25_23.55.40

La traduction est aussi effective pour toute l’interface de création.

Évidemment, un serveur est par défaut configuré pour refuser la création ouverte au public. Ce qui donne ce message sur la page de création ou lors d’une tentative de création forcée :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2015-04-25_23.47.46

Avancement

L’identification et l’authentification de l’entité en cours d’utilisation se font dans la librairie nebule. Mais l’interface avec l’utilisateur pour ça est faite par sylabe, et plus particulièrement par le module de gestion des entités.

L’interface de verrouillage/déverrouillage (connexion) a été modifiée pour avoir un style plus épurée et direct tout en présentant les informations minimums vitales. Elle met aussi beaucoup plus en évidence le fond d’écran, ce qui n’est plus le cas dans les autres page qui affichent beaucoup plus de contenu.

Voici ce que cela donne lorsque l’on va pour déverrouiller son entité :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_975571a8a470a6d975662e284f5ef1bd0396c06b31a2207b81bef2e24c5bf0c5_-_2015-03-07_17.31.46

Et on arrive tout de suite sur la fenêtre pour verrouiller l’entité :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_975571a8a470a6d975662e284f5ef1bd0396c06b31a2207b81bef2e24c5bf0c5_-_2015-03-07_17.32.47

Enfin, en cas de problème grave avec un composant interne remettant en cause le fonctionnement sécurisé, un indicateur passe en jaune (warning) ou en rouge (erreur) :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_975571a8a470a6d975662e284f5ef1bd0396c06b31a2207b81bef2e24c5bf0c5_-_2015-03-07_17.35.03

Avancement

Il y avait une erreur de frappe dans la fonction de téléchargement des objets dans sylabe, ce qui empêchait l’affichage de l’image des entités. C’est corrigé.

Lorsque un message d’avertissement ou d’erreur s’affichait, il y avait une icône correspondante dans la barre du haut à côté de l’entité. Maintenant, en cliquant dessus, c’est un lien web, on est automatiquement déconnecté de l’entité et la session php de l’utilisateur est réinitialisée. La mise en cache des entités/objets et liens est désactivée pour cette page. Tous les objets et liens sont donc fermés si ils étaient protégés. C’est un mode de secours.

Voici ce qu’il s’affiche si suite à une corruption du bootstrap on clique sur le gros bouton rouge :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_7855163e7ad8be9534cba394b63f0da6432fbe537d3e9ed8ffb687a29fd1cdbd_-_2015-02-15_13.14.06

Étape suivante, rediriger l’utilisateur sur la page d’aide par défaut…

Avancement

Pour le nouveau fond d’écran, il faut attendre encore un peu, le temps de remettre en place la création de liens…

Par contre le déverrouillage et le verrouillage sont fonctionnels. Cela a pris beaucoup plus de temps que prévu puisqu’il a fallu déplacer la gestion de la session avant le chargement de la librairie. Il a fallu aussi un peu modifier la gestion des entités dans la librairie. CF Blog nebule – Authentification et mot de passe.

Une fois déverrouillé, cela donne ça, avec le fil rouge :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_7855163e7ad8be9534cba394b63f0da6432fbe537d3e9ed8ffb687a29fd1cdbd_-_2015-02-14_23.13.17

Symbologie du verrouillage/déverrouillage

La remise en forme de l’interface sylabe suivant le responsive design impose de permettre à l’interface de réduire très fortement dans son affichage. Ainsi, le lien web qui permet à l’utilisateur (entité) de se déverrouiller (se connecter, s’authentifier) ne peut plus forcément être un texte explicite de l’état de connexion et surtout de l’action du lien web. Il faut pouvoir réduire cette action à une icône unique.

On trouve souvent ce genre de lien sur les sites web : Se connecter / Créer un compte

On pourrait aussi utiliser deux icônes, une pour l’état de connexion et une pour le lien d’action. Mais cela pourrait être difficile à comprendre par un utilisateur en fait.
Une des icônes ne serait pas fonctionnelle puisqu’elle ne ferait que afficher l’état : je suis connecté.
L’autre icône serait le lien web de connexion ou déconnexion : je me déconnecte.

Il y a aussi le problème de vocabulaire. On ne parle pas sous nebule d’état connecté ou déconnecté, donc pas plus de connexion ou de déconnexion. On est verrouillé ou déverrouillé, donc on déverrouille et on verrouille, enfin son entité numérique en fait. Ce changement de sémantique traduit une différence profonde dans le sens, et ce même si on peut abusivement faire les traductions connecté/déverrouillé et déconnecté/verrouillé.
Dans la pratique, lorsque l’on consulte la page d’une entité, même si elle est verrouillée, on est connecté à cette entité. Il n’est donc pas besoin de se connecter plus avec cette entité. Par contre, tant qu’elle n’est pas déverrouillée, on ne voit de cette entité que sa partie publique. Dans ce cas, ses informations privées sont verrouillées.

Alors ? Comment doit-on afficher simplement l’état de verrouillage et l’action inverse associée ?

Un autre moyen peut être utilisé pour indiqué l’état de verrouillage. Puisque cela n’a pas à être un lien web et qu’il est peut-être inopportun d’utiliser une image, ce peut être un autre élément de décoration. Il faut quand même qu’il soit visible.
On trouve sur certains sites web, en bordure de la barre d’utilisateur en haut de page, un liseret de couleur en fonction de l’état de connexion. On peut réutiliser ce principe. Un liseret noir peut être utilisé lorsque l’entité est verrouillée, un liseret relativement visible de quelques pixels. Ce même liseret peut passer rouge dès que l’entité est déverrouillée. C’est un code couleur qu’il faut apprendre, mais il peut être imposé systématiquement quelque soit le thème de couleur de la page appliqué, et surtout il est binaire : noir ou rouge.

Reste le lien de changement d’état de verrouillage.
Doit-il être un affichage positif, c’est à dire qu’il représente l’état et non l’action (d’inversion d’état) ?
Ou doit-il être un affichage négatif, c’est à dire qu’il représente l’action et l’état (inversé) ?

T̩l̩chargement et suivi de liens u Рsuite

Suite au post Téléchargement et suivi de liens u, la réflexion peut être poussée plus loin.

Le dossier /o/ va recevoir tout un tas d’objets, dont du code divers, varié et avarié. Si le serveur web qui héberge sait interpréter du code (donc autre chose que du HTML), alors le dossier /o/ ne doit pas être accessible directement. Dans ce cas la redirection et le traitement par une interface dédiée telle que sylabe est obligatoire.

Téléchargement et suivi de liens u

Avant de mettre en place le téléchargement d’objets et de liens via sylabe et non sur une URL directe, je voulais terminer la résolution du suivi des liens de type mise à jour u.

Mais la mise à jours des icônes dans sylabe est bloquée en l’état faute de pouvoir les faire télécharger. Encore que leur chargement peut être fait par une URL directe. C’est dans ce cas le serveur web qui donne le bon type mime.
Et puis ce n’est pas au serveur, donc aux programmes derrières, de déterminer si on envoi l’objet demandé ou sa version la plus à jour, c’est à dire un autre objet. Le serveur doit qui qu’il arrive transmettre le bon objet ou une erreur.

Cependant, la méthode de chargement direct par une URL ne permet pas le chargement de contenus chiffrés. Ou plutôt ils sont bien téléchargés, mais chiffrés. Il n’est pas possible de les faire afficher directement dans le navigateur. La seule possibilité est de déchiffrer l’objet chiffré dans une zone réservée, puis de permettre le transfert vers le navigateur.

De base, on peut donc tout simplement accéder aux objets et liens publics sans modifier le serveur web. Il n’est donc pas besoin d’insérer non plus de code dans le programme index.php .
Pour les objets chiffrés (privés), il faut cependant être authentifié. Cela ne peut être réalisé que par programme sylabe.php .

Si l’on veut rester dans un fonctionnement standard de nebule, y compris pour les objets privés, il faudra ajouter un fichier .htaccess (pour Apache) qui transformera les demandes en /o/ et /l/ vers leur équivalent, c’est à dire /?o= et /?l= . Le programme sylabe.php se chargera ensuite de transmettre l’objet en zone public ou privée en fonction de l’état de l’authentification…

EDIT 13/09/2013 : Grosse erreur corrigée, ce n’est pas un lien f mais un lien u…

Identification/authentification unique

Il y a une chose à implémenter rapidement, une chose assez facile à faire en fait. C’est de pouvoir se connecter sur une instance de sylabe avec une autre entité que celle qui héberge normalement l’instance de sylabe.

En clair, lorsque l’on consulte la page sylabe de son voisin (numériquement), on voit par défaut l’entité de son voisin ainsi que ses objets et liens publiques. Mais on voit aussi les entités qu’il connaît, et notamment la notre. Et si on se connectait avec une autre entité ?

Si la clé privée est publique (mais protégée par mot de passe), alors elle est disponible partout (si on connaît le mot de passe). Ainsi on obtient une authentification unifiée et universelle.

Mais est-ce vraiment nouveau ?
Non, on le faisait déjà avec des annuaires de sécurité (Active Directory, NDS, LDAP, etc…). Mais il n’y a ici rien à ajouter, pas de configuration, pas d’approbation, rien. Enfin si, juste connaître l’entité et ses clés RSA.

Par contre, si la clé privée est enfermée dans une puce cryptographique (type carte à puce par exemple), ça ne marchera pas sans disposer de la puce en question. L’utilisation à distance sur sylabe est donc impossible. Une solution serait de déporter côté poste utilisateur la logique de signature des liens via par exemple du javascript.