web-dev-qa-db-fra.com

LDAP vs mysql pour les noms d'utilisateur et les mots de passe

Je comprends que les bases de données LDAP sont plus sécurisées, mais il est-il toujours nécessaire d'utiliser LDAP au lieu de MySQL pour les noms d'utilisateur et les mots de passe?

4
22222222

LDAP est géniale lorsque vous devez authentifier de nombreux services différents contre un seul backend (un mot de passe pour tous ou même Singlesignon) ou lorsque vous avez des lieux physiques différents dispersés sur le globe, vous devez vous authentifier contre un seul backend car LDAP est idéal pour Informations sur les frissons.

Mais quand ce n'est pas un Musthave et que vous ne pensez qu'à utiliser LDAP en tant que backend d'authentification, je voterais toujours pour minimiser les systèmes qui signifieraient si vous avez besoin d'une base de données pour votre application, utilisez également cette base d'authentification.

Comme une alternative que j'aurais envisagé d'utiliser OAuth ou OpenId afin que les utilisateurs puissent se connecter à l'aide d'un service différent et que vous ne devez pas envisager de prendre des mots de passe de hachage car vous ne stockez pas les mots de passe. De cette façon. déléguer l'authentification à un service externe.

Le problème des mots de passe cryptés est que la plupart du temps l'utilisateur envoie son mot de passe non crypté (chiffré uniquement par une connexion HTTPS) sur le serveur. De là, le serveur peut ensuite utiliser le cryptage ou ne pas se connecter au LDAP. Mais lorsque vous utilisez la commande Bind par défaut de LDAP, vous devez fournir le mot de passe non crypté au LDAP afin qu'il n'y ait aucun avantage. Au contraire, lorsque vous utilisez une base de données, vous pouvez enregistrer le mot de passe crypté dans la base de données et peut ensuite interroger le mot de passe crypté, donc entre votre application et la base de données que le mot de passe ne peut envoyer que crypté. Cela ne chiffre toutefois pas le mot de passe entre l'utilisateur et l'application!

Soit ils utiliseront une technologie exclusive qui est alors non pertinente pour votre, ou qu'ils utilisent des solutions sur le marché. Ce qui est important peut-être dans votre question est l'évolutivité de ces solutions. Pour "serveur LDAP", OpenLDAP peut être configuré pour utiliser MySQL comme stockage backend. Si j'aurais besoin d'évolutivité, je rechercherais cette combinaison.LDAP est plusieurs fois plus rapide que SQL. LDAP n'est pas une base de données relationnelle. En fait, ce n'est pas une "base de données" générale du tout, c'est un répertoire structuré des arbres.

Beaucoup de concepts que vous connaissez des bases de données relationnelles ne s'appliquent pas vraiment à LDAP. Par exemple, il n'y a pas de "tables" et il n'y a pas d'opération "Rejoindre".

1
user45475

Il est discutable que LDAP soit plus sécurisé que MySQL.

Je ne vois pas vraiment les avantages d'ajouter un autre service complexe à une infrastructure. Si vous souhaitez isoler l'authentification, pourquoi ne pas simplement utiliser une base de données Secure (SSL), isolée MySQL. Si vous souhaitez une manière standardisée d'accéder à une base de données d'authentification, pourquoi ne pas créer de schéma MySQL standard?

0
Ashoka