« Frankiz » : différence entre les versions

De WikiBR
m (Back to the future)
Aucun résumé des modifications
 
(4 versions intermédiaires par 4 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{Archive| Le BR n'utilise plus Frankiz}}
Frankiz est le portail interne des élèves.
Frankiz est le portail interne des élèves.


Ligne 4 : Ligne 6 :


Le code de Frankiz3 est libre, et utilise git comme système de versionnement.
Le code de Frankiz3 est libre, et utilise git comme système de versionnement.
Il est intégralement disponible à l'adresse suivante : http://git.frankiz.net/frankiz/
Il est intégralement disponible à l'adresse suivante : http://dev.frankiz.net/ ou https://github.com/BinetReseau/frankiz
Le code de plat/al, le framework php utilisé par frankiz qui a été développé par polytechnique.org, est disponible ici : http://git.polytechnique.org/?p=platal.git;a=tree;hb=refs/heads/core/master


= Développement =
= Développement =
Ligne 29 : Ligne 32 :
Le site est alors inscrit dans notre base de données, et peut utiliser le système d'authentification externe.
Le site est alors inscrit dans notre base de données, et peut utiliser le système d'authentification externe.


Ci dessous un exemple commenté de script d'authentification, à mettre sur le site externe :
Vous pouvez voir [[Authentification_Frankiz|un exemple de code]].
 
<code php>
 
<?php
    header($_SERVER['SERVER_PROTOCOL'] . ' 403 Forbidden');
 
    //première étape, côté client
 
    $timestamp = time(); // prendre le timestamp permet d'éviter le rejeu de la requête
    $site = 'http://monsite/login'; // url de la page de login, doit correspondre *exactement* à celle entrée dans la base de données de frankiz (définie lors de l'inscription)
 
    $location  = "..."
    // Champ non utile pour l'authentification et retransmis tel quel par frankiz.
    // Il est prévu pour pouvoir mettre en place un système de redirection après
    // authentification, vers la page à partir de laquelle le client avait tenté de se connecter.
 
    $request = json_encode(array('names', 'rights'));
    // Nature de la requête.
    // Fkz renverra ici à la fois les noms de la personne mais aussi ses droits dans différents groupes.
    // Il faut cependant que le site ait les droits sur les informations en question (à définir lors de son inscription).
 
    $key = "..."; // clé fournie par l'équipe frankiz lors de l'inscription du site
 
    $hash = md5($timestamp . $site . $key . $request);
    // On hash le tout authentifier les données
 
    $remote  = $globals->frankiz->url . '/remote?' . 'timestamp=' . $timestamp . '&site=' . $site . '&location=' . $location . '&hash=' . $hash . '&request=' . $request;
    header("Location:" . $remote); // et on redirige
 
    // 2nd étape, côté frankiz :
    // regarder sur git.frankiz.net si le code le code vous intéresse
 
 
    // 3ème étape, côté client :
 
    $timestamp = $_GET['timestamp'];
    // On récupère le timestamp envoyé la première fois


    if (abs($timestamp - time()) < 600)
[[Catégorie:Frankiz]]
    { // On vérifie qu'il est cohérent
        $response = $_GET['response']; // On vérifie le hash de la réponse
        if (md5($timestamp . $globals->frankiz->key . $response) == $_GET['hash'])
        {
            $response = json_decode($response, true); // On décode la réponse qui est en json
            if (in_array('admin', $response['rights']['my_group']))
            { // On peut vérifier le niveau de droit de l'utilisateur dans certains groupes renvoyés
                echo 'gagné !';
            }
        }
    }
       
   
?>
</code>

Version actuelle datée du 11 mars 2023 à 16:48

Warning.png Article archivé.
Le BR n'utilise plus Frankiz
Warning.png

Frankiz est le portail interne des élèves.

La version actuelle (3) a été lancée par le BR2k8 juste avant son départ du plateau. Elle est principalement destinée à pouvoir ouvrir l'utilisation de Frankiz aux écoles arrivant progressivement sur le plateau, et à devenir ainsi un portail de la vie associative du campus.

Le code de Frankiz3 est libre, et utilise git comme système de versionnement. Il est intégralement disponible à l'adresse suivante : http://dev.frankiz.net/ ou https://github.com/BinetReseau/frankiz Le code de plat/al, le framework php utilisé par frankiz qui a été développé par polytechnique.org, est disponible ici : http://git.polytechnique.org/?p=platal.git;a=tree;hb=refs/heads/core/master

Développement

Les principaux projets de développement sont actuellement (juillet 2011) :

  • l'élargissement effectif aux autres écoles, en travaillant notamment sur :
    • la simplicité de création de nouveaux comptes, avec nomination de modérateurs dans chaque école
    • le cloisonnement des données et la possibilité de définir des champs de visibilité
  • la création de mini-forums qui remplaceraient à la fois les annonces et les newsgroups


Outils pour les développeurs

Authentification sur des sites externes

Frankiz permet à des sites externes (binets en particulier) d'utiliser sa base de données pour authentifier les utilisateurs.

Le webmaster du site en question doit auparavant faire une demande de mise en place de ce système en envoyant un mail à l'équipe frankiz (frankiz@frankiz.polytechnique.fr). Il doit alors donner :

  • l'url complète de la page de login de son site
  • les informations auxquelles il souhaite accéder
  • une justification de la demande (et oui, on ne partage évidemment pas notre base de données avec n'importe qui !)

Si la demande est acceptée, l'équipe frankiz renvoie alors une clé permettant d'authentifier les échanges d'informations entre frankiz et le site externe. Le site est alors inscrit dans notre base de données, et peut utiliser le système d'authentification externe.

Vous pouvez voir un exemple de code.