Comment définir le compte de la date d'expiration dans openldap
Je souhaite mettre en œuvre une nouvelle stratégie de compte dans openldap qui permettent à un administrateur de définir la date d'expiration de comptes d'utilisateur. Cependant, je ne trouve pas d'attributs dans les classes d'objet.
Ce n'est rien liées aux mots de passe des attributs comme pwdMaxAge. L'utilisation de cette stratégie est destinée à un service d'abonnement. Une fois que l'utilisateur a souscrit un abonnement au serveur pendant une certaine période, l'administrateur doit définir le compte de la date d'expiration où abonnement se termine. L'utilisateur est authentifié si, avant la date d'expiration et ne pourra pas authentifié au-delà de la date d'expiration.
Est-ce possible de le faire dans openldap? Je google, et a constaté que Microsoft active directory. a AccountExpirationDate attribut.
OriginalL'auteur Chau Chee Yang | 2011-04-06
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de support direct pour le compte d'expiration dans OpenLDAP ou des superpositions (même pas en
contrib/
).Howard Chu suggère à l'aide de ppolicy de pwdMaxAge pour ce qui peut être fait pour travailler, mais j'ai trouvé cela moins qu'idéal: Si vous utilisez déjà ppolicy pour l'expiration des mots de passe (en plus d'expiration des comptes), il sera en conflit avec ces paramètres, et si vous avez configuré grâce connexions (le sane chose à faire), l'utilisateur peut changer son mot de passe et donc de réinitialiser l'expiration de la minuterie.
Il semble donc que les meilleure façon à mettre en œuvre (et une bonne façon il ne l'est pas) est en cours d'exécution d'une tâche externe qui définit le (ppolicy attribut) pwdAccountLockedTime pour le nombre magique qui indique un manuellement le verrouillage du compte, qui ne peut être déverrouillé par l'utilisateur.
Cette tâche externe (une tâche cron, le plus probable) pourrait être mis en œuvre de telle manière qu'il lit à l'expiration de la date/heure à partir d'un attribut personnalisé (par exemple, expirationTime) sur l'enregistrement de l'utilisateur qu'il passe en boucle sur eux. De cette façon, vous pouvez stocker la date d'expiration/date de l'enregistrement de l'utilisateur, mais bien sûr, le lock-out se fie entièrement à cette tâche en cours d'exécution.
Ou vous pouvez écrire votre propre surcouche.
OriginalL'auteur Ingmar Hupp
Ont un look à la Stratégie de Mot de passe de l'extension. Il est pris en charge à partir de OpenLDAP 2.3 et ultérieures. Vous pouvez avoir besoin d'écrire du code pour prévoir l'étendue de demande/réponse de contrôles.
Si vous êtes à l'aide de OpenLDAP, vous pouvez utiliser les objets dynamiques de superposition. Ajouter
objectClass=dynamicObject
lors de la création du compte, et de définir unentryTTL
via la dynamique d'actualisation de l'objet de la demande.OriginalL'auteur user207421
sans arriver à détaillé de prendre un coup d'oeil à la PPolicy superposition mentionnés ci-dessus. Elle fonctionne. Et vous avez raison, il n'y a pas de "compte le délai d'expiration" comme il est dans l'ANNONCE.
Une solution consiste à exécuter un script qui calcule l'âge de la compte et d'ajouter/modifier l'attribut de l'utilisateur pwdPolicySubentry et réglez-le DN d'une politique qui expire tout mot de passe qui est de 1 seconde ancien et ne pas permettre à l'utilisateur de changer le mot de passe.
Aucun client devra obtenir autour de cela, et pourtant, l'entrée utilisateur reste pratiquement intact.
pwdAccountLockedTime
à zéro de la valeur spécifiée dans le mot de passe-ébauche de la politique.OriginalL'auteur ticktock