Obecnie próbuję zmienić hasło w naszej encerementacji Active Directory przez LDAP w systemie Linux, ponieważ użytkownicy, o których mowa, nie mają dostępu do maszyny Windows i chcemy zachować to w ten sposób . Aby zmienić hasło, utknąłem w tej chwili, zastanawiając się, w jaki sposób użyć polecenia ldapmodify. Po dużo czytania na różnych stronach/forach/grupach dyskusyjnych jestem bardziej zdezorientowany niż przedNaruszenie ograniczeń LDAP przy zmianie hasła w AD za pomocą ldapmodify
Jednakże: staram następujące polecenie, aby to zrobić:
ldapmodify -f ldif.example -H ldaps://lab01-dc01.example.com -D 'CN=test,CN=users,DC=lab01,DC=example,DC=com' -x -W
zawartość ldif.example:
dn: CN=test,CN=Users,DC=lab01,DC=example,DC=com
changetype: modify
delete: unicodePwd
unicodePwd:: V3VQdXV1STEyLg==
-
add: unicodePwd
unicodePwd:: QmxhVVVraTEyLg==
-
(nie martw się - te hasła nie są wykorzystywane w dowolnym miejscu i nie jest to envoirenment produkcji)
teraz - za każdym razem, kiedy wykonanie polecenia pojawia się następujący błąd:
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)
Teraz, po tym, co przeczytałem powodem tego błędu jest albo że hasło jest źle sformatowana lub hasło, że polityka nie pozwala hasło użyłem. Sprawdziłem zasady - wiele razy teraz - a nowe hasło z całą pewnością jest zgodne z zasadami według wszystkich kryteriów. Jeśli ustawię hasło przy użyciu maszyny Windows, działa to również dobrze (oczywiście zmieniłem później "stare hasło" i "nowe hasło", ponieważ nie mogę pozwolić, by polityka zmieniła się na wcześniejsze hasło). Hasło, które wprowadzam po przejściu przez opcję "-W" do ldapmodify, jest również definitywnie poprawne, w przeciwnym razie błąd wypluwany przez ldapmodify jest taki, że użyłem nieprawidłowych danych uwierzytelniających zamiast naruszenia ograniczeń. A więc - jedynym powodem, dla którego mogę myśleć, jest w istocie złe sformatowane hasło - ale nie wiem, skąd powinno pochodzić złe formatowanie, ponieważ używam normalnego algorytmu base64 do kodowania hasła.
Czy ktoś ma pojęcie, co się dzieje? Czy ktoś może mnie popchnąć we właściwym kierunku?
Pomoc jest bardzo cenna i dziękuję z góry.
Edycja: Coś, co mnie trapi: Kiedy uruchamiam zakodowane w bazie ciągi przez base64, ciągle mówi mi "Invalid Input". Teraz - poszedłem dalej i po prostu ponownie zakodowałem hasła przy użyciu base64 na maszynie Linux - ale kiedy ponownie uruchomię wygenerowany ciąg przez funkcję dekodującą, base64 ciągle mówi mi "Invalid Input" ... zmieniono kodowany przez Windows-base64 łańcuch na kodowany linuxem. Ale base64 po prostu mówi "Nieprawidłowe dane wejściowe" bez względu na to, co tam wstawiam.
Edycja2: Nieważne - odczytanie celu funkcji, którą zbieram, powoduje zgłoszenie tego błędu z powodu kropek i wykrzyknika w haśle.
Nie jestem pewien, czy powinieneś wykonywać kodowanie w ogóle. Serwer LDAP powinien to zrobić. Spróbuj podać oba hasła w postaci zwykłego tekstu. – EJP
Tak, rzeczywiście - bez kodowania hasła wydaje się, że działa dobrze. Tak jak powiedziałem: dużo czytam na ten temat, a wszystko, co przeczytałem, sugeruje, że mogę użyć zakodowanego ciągu do zmodyfikowania hasła. Oczywiście - to nie do końca prawda. Dzięki! – henryford