BoZoN
BoZoN copied to clipboard
Authentification LDAP
Hello,
Étant assez fan de cette application, j'aimerai la promouvoir dans mon entreprise. Serait-il fou d'imaginer une authentification LDAP des utilisateurs, avec une gestion minimale des droits ?
Merci
m/
Bonjour et merci pour cet enthousiasme :-)
L'authentification LDAP n'est pas à l'ordre du jour pour le moment. La prochaine version va permettre de fixer la taille maxi des dossiers utilisateurs. Quels types de droits seraient-ils nécéssaires ? A+
Le 16 février 2016 14:43:46 CET, maitrey0da [email protected] a écrit :
Hello,
Étant assez fan de cette application, j'aimerai la promouvoir dans mon entreprise. Serait-il fou d'imaginer une authentification LDAP des utilisateurs, avec une gestion minimale des droits ?
Merci
m/
Reply to this email directly or view it on GitHub: https://github.com/broncowdd/BoZoN/issues/87
Envoyé de mon appareil Android avec K-9 Mail. Veuillez excuser ma brièveté.
Et bien gestion simple des utilisateurs émanant d'une base LDAP : ajout et suppression d'un compte, groupe LDAP des managers qui administrent les comptes
Justement, ce n'est pas simple d'implémenter le protocole LDAP. Pour l'heure, l'admin est le premier inscrit (ce qui peut être changé en ajoutant des profils utilisateurs): il peut créer des comptes et les supprimer ainsi que limiter la taille des dossiers utilisateurs.
Il n'est pas prévu d'ajouter des groupes d'utilisateurs ou une quelconque hiérarchie plus complexe car au départ BoZoN n'est pas fait pour ça (c'est censé être une appli minimaliste ^^). Il y a beaucoup d'utilisateurs prévus dans ton entreprise ?
Le 17/02/2016 14:18, maitrey0da a écrit :
Et bien gestion simple des utilisateurs émanant d'une base LDAP : ajout et suppression d'un compte, groupe LDAP des managers qui administrent les comptes
— Reply to this email directly or view it on GitHub https://github.com/broncowdd/BoZoN/issues/87#issuecomment-185200988.
Nous sommes 2000 à Paris et 5000 au niveau national :-D
Je suis complètement conscient que BoZoN ne soit pas destiné au monde professionnel. J'entretiens uniquement un lobbying personnel à ce sujet :) J'aime les applis KISS et déteste les usines à gaz codées avec les pieds.
Je plussoie ! ^^ Ceci dit, on atteint des chiffres qui font peur quand même ^^ Et en utilisant plusieurs instances différentes de Bozon, histoire de scinder les groupes/équipes ?
Le 17/02/2016 14:31, maitrey0da a écrit :
Nous sommes 2000 à Paris et 5000 au niveau national :-D
Je suis complètement conscient que BoZoN ne soit pas destiné au monde professionnel. J'entretiens uniquement un lobbying personnel à ce sujet :) J'aime les applis KISS et déteste les usines à gaz codées avec les pieds.
— Reply to this email directly or view it on GitHub https://github.com/broncowdd/BoZoN/issues/87#issuecomment-185204794.
Tout à fait possible. Mon objectif est principalement l'authentification, qui doit se baser sur un couple identifiant/mot de passe qui est géré par un serveur LDAP. Possible ?
A priori, ce serait possible dans le sens où j'ai clairement séparé les routines de sécurité dans une lib à part. Après, il faudrait déjà que je pige comment ça fonctionne XD vive les tutos sur le net \o/ En effet, toutes les modifs ne seront pas forcément adaptables au fonctionnement de Bozon...
Pour l'heure, on est en plein remaniement de la structure html/css pour intégrer les modifs d'Eauland qui a produit un code organisé et propre. Ensuite, plusieurs ajouts sont prévus, c qui me laissera le temps de me renseigner vraiment sur LDAP. Donc, je ne déclare pas forfait de suite. :-)
Le 17 février 2016 14:43:41 CET, maitrey0da [email protected] a écrit :
Tout à fait possible. Mon objectif est principalement l'authentification, qui doit se baser sur un couple identifiant/mot de passe qui est géré par un serveur LDAP. Possible ?
Reply to this email directly or view it on GitHub: https://github.com/broncowdd/BoZoN/issues/87#issuecomment-185209166
Envoyé de mon appareil Android avec K-9 Mail. Veuillez excuser ma brièveté.
Si tu souhaites avoir des bières belges pour te motiver ;-))
Moi je veux bien les bières belges :)
Pour revenir à ta question, bozon n'est clairement pas adapté au milieu de l'entreprise, il y a de très nombreux bugs à résoudre avant, voir certaines choses qui peuvent déranger certaines personnes.
KISS [jeu 2 mot(s)]
Je suis d'accord: avec une version stable, à la rigueur... et encore: ce n'est pas fait pour une aussi grosse structure, je pense. De plus, j'ai encore des choses à y ajouter ^^
un player vidéo par exemple ^^
Le 22/02/2016 09:14, Bronco a écrit :
Je suis d'accord: avec une version stable, à la rigueur... et encore: ce n'est pas fait pour une aussi grosse structure, je pense. De plus, j'ai encore des choses à y ajouter ^^
— Reply to this email directly or view it on GitHub https://github.com/broncowdd/BoZoN/issues/87#issuecomment-187064025.
Ce n'est vraiment pas le plus dur ^^
feature 2.3, trop bien
Le 22/02/2016 09:24, Bronco a écrit :
Ce n'est vraiment pas le plus dur ^^
— Reply to this email directly or view it on GitHub https://github.com/broncowdd/BoZoN/issues/87#issuecomment-187065996.
plutôt 2.4 vu que sinon, on n'arrivera jamais à sortir une version 2.3 ^^
Je vous remercie pour vos commentaires. N'empeche qu'il soit possible de segmenter mes utilisateurs dans des instances séparées. Après, je vois mal les limitations entre 10 utilisateurs et 100 au niveau du dev...
Ce ne sont pas tellement les limitations dans le code que dans l'interface et le fonctionnement: ceci dit, si tu peux tester avec une centaine d'utilisateurs, tes remontées seront précieuses pour les éventuelles optimisations, car les limites de certaines parties du code peuvent se manifester (je n'ai pas cherché à optimiser très profondément l'affichage des fichiers, la régénération de l'ensemble des liens pour complément etc... du coup avec des milliers de fichiers, il faudra peut-être passer à un stockage des données différent par exemple).
Une piste de solution Bonjour, Une idée de solutionhttps: https://yunohost.org/#/packaging_apps https://fr.wikipedia.org/wiki/Authentification_HTTP#M.C3.A9thode_Basic https://github.com/Kloadut/SSOwat Pour ceux que ça intéresse, à bientôt
DE la lecture en prévision ^^ merci !
Tu pourrais peut-être aussi utiliser les fonctions natives pour gérer les mots de passe ? De ce que j'en ai lu, c'est quand même la meilleure façon de procéder pour avoir un minimum de sécurité robuste. Parce que c'est toi, voici une classe pour gérer tout ça (je ne suis pas aller la chercher bien loin, c'est dans la doc...) :
class PasswordTools {
private static function options() {
return array(
'cost' => self::getOptimalBcryptCostParameter(),
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
);
}
/**
* This code will benchmark your server to determine how high of a cost you can
* afford. You want to set the highest cost that you can without slowing down
* you server too much. 8-10 is a good baseline, and more is good if your servers
* are fast enough. The code below aims for ≤ 50 milliseconds stretching time,
* which is a good baseline for systems handling interactive logins.
* @Param int $min_ms Minimum amount of time in milliseconds that it should take
* to calculate the hashes
*/
private static function getOptimalBcryptCostParameter($timeTarget = 0.25) {// 250 milliseconds
$cost = 8;
do {
$cost++;
$start = microtime(true);
\password_hash("rasmuslerdorf", PASSWORD_DEFAULT, ["cost" => $cost, 'salt' => 'usesomesillystringforsalt']);
$end = microtime(true);
} while (($end - $start) < $timeTarget);
return $cost;
}
/**
* Note that the salt here is randomly generated.
* Never use a static salt or one that is not randomly generated.
*
* For the VAST majority of use-cases, let password_hash generate the salt randomly for you
*/
public static function create_hash($password) {
return \password_hash($password, PASSWORD_DEFAULT, self::options());
}
public static function validate_password($password, $good_hash) {
if (\password_verify($password, $good_hash)) {
return true;
} else {
return false;
}
}
public static function isPasswordNeedsRehash($password,$hash) {
if (\password_needs_rehash($hash, PASSWORD_DEFAULT, self::options())) {
return self::create_hash($password);
}
return false;
}
}
Pour l'utiliser tu importes le fichier dans lequel tu as copié la classe, avant tout traitement puis tu procèdes de la sorte :
if (PasswordTools::validate_password($password, $good_hash) ) {
if ($newPass = PasswordTools::isPasswordNeedsRehash($password, $good_hash)) {
//Code pour mettre le profil utilisateur à jour avec le nouveau hash
}
// Code de connexion (enregistrement en bdd...)
}