LDAP Violation de Contrainte Lors du Changement de Mot de passe dans ANNONCE par le biais de la commande ldapmodify
Actuellement, j'essaie de changer les mots de passe dans Active Directory Envoirenment via LDAP sous Linux car les utilisateurs en question n'ont pas accès à une machine et nous voulons continuer dans cette voie.
Pour changer le mot de passe je suis actuellement coincé trouver comment utiliser la commande ldapmodify de le faire. Après beaucoup de lecture sur les différents sites/forums/groupes de discussion, je suis beaucoup plus confus qu'avant
Cependant:
J'ai essayer la commande suivante:
ldapmodify -f ldif.example -H ldaps://lab01-dc01.example.com -D 'CN=test,CN=users,DC=lab01,DC=example,DC=com' -x -W
Le contenu de la ldif.exemple:
dn: CN=test,CN=Users,DC=lab01,DC=example,DC=com
changetype: modify
delete: unicodePwd
unicodePwd:: V3VQdXV1STEyLg==
-
add: unicodePwd
unicodePwd:: QmxhVVVraTEyLg==
-
(Ne vous inquiétez pas, ces mots de passe ne sont pas utilisées n'importe où et il n'est pas une production envoirenment)
Maintenant à chaque fois que j'execute la commande j'obtiens l'erreur suivante:
modifying entry CN=test,CN=Users,DC=lab01,DC=example,DC=com"
ldapmodify: Constraint violation (19)
additional info: 0000216C: AtrErr: DSID-03190EB0, #1:
0: 0000216C: DSID-03190EB0, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 9005a (unicodePwd)
Maintenant, d'après ce que j'ai lu la raison de cette erreur est que le mot de passe est mal formaté ou que la stratégie de mot de passe n'autorise pas le mot de passe que j'ai utilisé. J'ai vérifié la politique - plusieurs fois - et le nouveau mot de passe vraiment conforme à la politique par tous les critères. Si j'ai mis le mot de passe à l'aide d'un Windows-machine, il fonctionne aussi très bien (bien sûr j'ai changé le "oldpassword" et "newpassword" par la suite car je ne suis pas autorisé par la politique de changement à une version antérieure du mot de passe). Le mot de passe je entrer après le passage de la "-W" option à la commande ldapmodify est aussi certainement le droit, sinon l'erreur cracher par la commande ldapmodify est que j'ai utilisé des informations d'identification non valides au lieu d'une violation de contrainte.
- La seule raison pour laquelle je peux penser à est en effet un mauvais formaté par mot de passe mais je ne peux pas trouver où la mauvaise mise en forme doit venir à depuis que j'ai utiliser la normale en base64 de l'algorithme pour encoder le mot de passe.
Quelqu'un a une idée de ce qui se passe?
Quelqu'un peut-il me pousser dans la bonne direction?
De l'aide est très apprécié et je vous en remercie d'avance.
Edit:
Quelque chose qui me chiffonne:
Lorsque j'exécute la base de chaînes codées par base64 il me dit "Invalid Input". Maintenant - je suis allé de l'avant et viens de re-codé les mots de passe avec l'utilisation de base64 sur la machine linux - mais quand je lance le générés chaîne à travers le décodage de la fonction de nouveau, base64 me dit "Invalid Input"... Les cordes cependant légèrement changé entre les fenêtres-chaîne encodée en base64 et linux chaîne codée. Mais en base64 juste dit "Invalid input" peu importe ce que je mets là-dedans.
Edit2:
Passons sur la lecture de la fin de la fonction, je suppose que c'génère cette erreur à cause de la points et le point d'exclamation dans le mot de passe.
Oui, en effet - sans codage du mot de passe, il semble bien fonctionner. Comme je l'ai dit: j'ai beaucoup lu sur ce sujet et tout ce que j'ai lu m'a proposé de la pour utiliser une chaîne codée pour modifier le mot de passe. Évidemment, ce n'est pas tout à fait vrai. Merci!
OriginalL'auteur henryford | 2012-04-03
Vous devez vous connecter pour publier un commentaire.
Lors de la configuration de mot de passe, il doit être en UTF-16LE et encodées en Base64. En Java, il pourrait être fait avec:
UTF-16LE doit être utilisé, UTF-16 n'est pas assez.
Une "modification de la unicodePwd" sur LDAP nécessite que le nouveau mot de passe est une chaîne Unicode avec des guillemets doubles. Cela signifie que, lorsque vous souhaitez définir un nouveau mot de passe(Password01!) convertir le mot de passe avec des guillemets doubles("Password01!") en Base64.
Outil en ligne peut être utilisé - http://www5.rptea.com/base64/ (sélectionnez UTF-16).
De détails sur unicodePwd sont là - https://technet.microsoft.com/en-us/magazine/ff848710.aspx .
OriginalL'auteur Xdg
Référence pour l'avenir, si quelqu'un rencontre des problèmes similaires:
La solution la plus simple? Utilisez simplement smbpasswd au lieu de ldap pour changer le mot de passe qui fonctionne impeccable! Je suis vraiment grumped que je n'avais pas pensé à ça avant 😀
Cependant - la façon de changer votre mot de passe dans active directory à l'aide de samba (à l'aide de CentOS):
Et puis vous pouvez vous connecter en utilisant le nouveau mot de passe. C'est très simple, vraiment.
OriginalL'auteur henryford
Qu'en extraction d'un existsing, de travail mot de passe d'un autre utilisateur et d'essayer de l'inclure dans votre ldif?
De cette façon, vous serez sûr que votre mot de passe fonctionne.
Deuxième, ne pas utiliser de supprimer/ajouter l'utilisation de remplacer à la place de la ldif. Peut-être le supprimer va provoquer une objectclass violation errreur.
Troisième, vous avez seulement besoin de base64 encode un attribut s'il est contiennent de non-imprimables ou des caractères spéciaux. Il y a une ligne vide à la fin du fichier ldif.
Ce qui concerne,
C'est une vieille question, mais en remplaçant est uniquement pour l'admin et non pas des utilisateurs
Comme indiqué, remplacer ne fonctionne pas pour l'utilisateur de remplacer leur propre mot de passe. Cela ne devrait pas être accepté de répondre.
OriginalL'auteur user1126070
yum install samba
n'a pas fonctionné pour moi, car il est installé smbpasswd programme de samba version 3.6.9.Ce qui a fonctionné a été
yum install samba4-client
. Il installe smbpasswd programme de Samba 4 et cette version de smbpasswd actualy pouvez changer de mot de passe sur Windows Server 2008 R2 Contrôleur de Domaine. J'ai utilisé samba4-client que je n'ai pas besoin du serveur Samba seulement il est client des services publics.La syntaxe de la commande smbpasswd est le même:
Espère que cette aide.
OriginalL'auteur Budzi
Contrainte d'erreur pourrait signifier que vous utilisez un ancien mot de passe qui ne se conforme pas à la politique, par exemple, ne peuvent pas utiliser les 24 derniers mots de passe.
Pour de futures références:
Se connecter à AD serveur bind ():
1. en tant qu'Admin: vous pouvez modifier et de réinitialiser le mot de passe pour tout le monde. Il y a une différence entre le changement et la réinitialisation. Changement = AD fera respecter la politique de mot de passe. Reset = ne fonctionne pas.
2. en tant qu'Utilisateur: vous pouvez changer votre mot de passe, mais pas autorisé pour le réinitialiser. Changement = AD fera respecter la politique de mot de passe.
Espérons que cela aide si c'est un peu tard!
OriginalL'auteur minhblvd