Bug 20917 - Samba4 - OpenLDAP Passwort-Synchronisation
Samba4 - OpenLDAP Passwort-Synchronisation
Status: VERIFIED FIXED
Product: UCS
Classification: Unclassified
Component: Samba4
UCS 2.4
Other Linux
: P5 normal (vote)
: ---
Assigned To: Arvid Requate
Felix Botner
:
Depends on:
Blocks: 20132 20916 45282
  Show dependency treegraph
 
Reported: 2010-12-08 16:09 CET by Arvid Requate
Modified: 2017-08-29 13:01 CEST (History)
1 user (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted after Product Owner Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Arvid Requate univentionstaff 2010-12-08 16:09:16 CET
Die Passwortsynchronisation zwischen SD/Samba4 und OpenLDAP ist bisher nur partiell realisiert:

 * SD/Samba4 -> OpenLDAP:
   * Wenn dBCSPwd nicht aktiviert ist, ist u.a. userPassword aktuell nicht mehr nutzbar
   * sambaNTPassword 'cannot have multiple values' traceback
   * connector/ad/password.py übergibt den KRB5-Salt falsch an asn1_encode_key
   * Kerberos AES Keys fehlen noch


 * OpenLDAP -> SD/Samba4
   * POC-Skript liegt unter groups/77_entwicklung/44_Beistellungen/101202_Samba4_Workshop_Metzmacher/
   * Python-Binding asn1_decode_key noch nicht vollständig funktional
   * Kerberos AES Keys fehlen noch
   * krb.ctr.older_keys Struktur noch unklar
   * Initialisierung von supplementalCredentials, beim ersten Sync von UCS->SD

 * UDM-tools:
   * univention/admin/password.py sollte ggf. den KRB5-Salt korrekt setzen.
Comment 1 Stefan Gohmann univentionstaff 2011-01-11 07:03:55 CET
Ich bekomme mit dem aktuellen Build die folgende Fehlermeldung:

root@s4master:~# /etc/init.d/univention-ad-connector start
 * Starting univention-ad-connector daemon
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/univention/connector/ad/main.py", line 60, in ?
    import mapping
  File "/etc/univention/connector/ad/mapping.py", line 35, in ?
    import univention.connector.ad.password
  File "/usr/lib/python2.4/site-packages/univention/connector/ad/password.py", line 43, in ?
    from samba.credentials import Credentials
ImportError: No module named samba.credentials
   ...done.
Comment 2 Stefan Gohmann univentionstaff 2011-01-13 08:11:50 CET
Aktuell bekomme ich diesen Traceback bei der Synchronisation:

Thu Jan 13 08:09:48 2011
failed in post_con_modify_functions
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/univention/connector/__init__.py", line 1019, in sync_to_ucs
    f(self, property_type, object)
  File "/usr/lib/python2.4/site-packages/univention/connector/ad/password.py", line 839, in password_sync_s4_to_ucs
    modlist.append(('userPassword', userPassword_ucs, lm_password_to_user_password(lmPwd)))
NameError: global name 'userPassword_ucs' is not defined


python-univention-heimdal 3.1.3-1.27.201101121337
univention-s4-connector   5.1.13-1.192.201101130713
Comment 3 Stefan Gohmann univentionstaff 2011-01-13 10:08:10 CET
Ein weiteres Problem, wenn ich den Connector starte, dann wird dieser relativ bald wieder beendet. Das Ende der Logdatei:
13.01.2011 08:03:21,888 LDAP        (WARNING): password_sync_ucs_to_s4 called
13.01.2011 08:03:21,888 LDAP        (INFO   ): Object DN=cn=guest,cn=users,dc=s4test41,dc=local
13.01.2011 08:03:21,888 LDAP        (INFO   ): _object_mapping: map with key user and type con
13.01.2011 08:03:21,889 LDAP        (INFO   ): _dn_type con
13.01.2011 08:03:21,890 LDAP        (INFO   ): samaccount_dn_mapping: check newdn for key dn:
13.01.2011 08:03:21,892 LDAP        (INFO   ): samaccount_dn_mapping: premapped UCS object found
13.01.2011 08:03:21,892 LDAP        (INFO   ): samaccount_dn_mapping: check newdn for key olddn:
13.01.2011 08:03:21,893 LDAP        (INFO   ):    UCS DN = uid=guest,cn=users,dc=s4test41,dc=local
13.01.2011 08:03:21,894 LDAP        (INFO   ): password_sync_ucs: sambaPwdLastSet: 1294897340
13.01.2011 08:03:21,894 LDAP        (INFO   ): password_sync_ucs: sambaPwdMustChange: -1
13.01.2011 08:03:21,896 LDAP        (INFO   ): password_sync_ucs_to_s4: pwdLastSet from AD : 0
13.01.2011 08:03:21,897 LDAP        (WARNING): password_sync_ucs_to_s4: Failed to get NT Password-Hash from S4
13.01.2011 08:03:21,897 LDAP        (INFO   ): password_sync_ucs_to_s4: NT Hash S4:  NT Hash UCS: B1A5AAE8A7E87080745C037288C6655C
13.01.2011 08:03:21,898 LDAP        (WARNING): password_sync_ucs_to_s4: Failed to get LM Password-Hash from S4
13.01.2011 08:03:21,898 LDAP        (INFO   ): password_sync_ucs_to_s4: LM Hash S4:  LM Hash UCS: ED817C2F9CB4FC7916BD54C9E7B9D90D
Comment 4 Arvid Requate univentionstaff 2011-01-13 10:13:19 CET
 * Comment 1 wurde gefixed durch Bau der Samba4 PythonModule für python2.4
 * Comment 2: Edit-Fehler, ist jetzt gefixed.
 * Comment 3: Muss man sich auf der VM anschauen

Aktueller Stand der Passwortsynchronisation zwischen SD/Samba4 und OpenLDAP sollte jetzt Folgender sein:

 * SD/Samba4 -> OpenLDAP:
   * Wenn dBCSPwd nicht aktiviert ist, ist u.a. userPassword aktuell nicht mehr
nutzbar
   * Fixed: sambaNTPassword 'cannot have multiple values' traceback
   * Fixed: connector/ad/password.py übernimmt jetzt den KRB5-Salt
   * Fixed: Kerberos AES Keys werden geschrieben, wenn in S4 gesetzt.

 * OpenLDAP -> SD/Samba4
   * NT-Hash und Krb5-Replikation ist in den AD-Connector eingebaut
   * Fixed: Python-Heimdal Bindings
     asn1_decode_key, keyblock.keyvalue(), salt.saltvalue(), salt_raw
   * Fixed: Kerberos AES Keys werden geschrieben, wenn in UCS gesetzt.
   * Fixed: Initialisierung supplementalCredentials, beim ersten Sync von UCS->SD

 * UDM-tools:
   * Fixed: univention/admin/password.py setzt jetzt einen KRB5-Salt
Comment 5 Arvid Requate univentionstaff 2011-01-13 18:02:14 CET
 * Comment 3 : gefixed durch http://git.samba.org/?p=samba.git;a=commit;h=2e45cd15ec4719b87e45db5e4a5c43dc1432936f

 * OpenLDAP -> SD/Samba4
   * Der PackagesBlob wird jetzt korrekt aufgebaut
 * UDM-tools:
   * Der KRB5-Salt wird jetzt per krb5_get_pw_salt erzeugt
Comment 6 Stefan Gohmann univentionstaff 2011-01-14 09:08:46 CET
root@s4master:~# /etc/init.d/univention-ad-connector start
 * Starting univention-ad-connector daemon
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/univention/connector/ad/main.py", line 60, in ?
    import mapping
  File "/etc/univention/connector/ad/mapping.py", line 35, in ?
    import univention.connector.ad.password
  File "/usr/lib/python2.4/site-packages/univention/connector/ad/password.py", line 47, in ?
    import ctypes
ImportError: No module named ctypes
   ...done.

Ich hatte python-ctypes im samba4 scope gebaut und als Abhängigkeit hinzugefügt, das scheint aber nicht zu reichen.

root@s4master:~# apt-get install python-ctypes
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Lese Status-Informationen ein... Fertig
Hinweis: wähle python an Stelle von python-ctypes
python ist schon die neueste Version.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.

Nach dem Aktivieren von unmaintained kann ich das Paket installieren:
root@s4master:~# apt-get install python-ctypes
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Lese Status-Informationen ein... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  libffi5
Die folgenden NEUEN Pakete werden installiert:
  libffi5 python-ctypes
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 175kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 803kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]?
Comment 7 Stefan Gohmann univentionstaff 2011-01-14 10:19:00 CET
Wenn ich einen Benutzer auf AD Seite anlege (samba-tool newuser user9 q1w2e3R$), dann geht der AD Connector in eine Endlosschleife. Wenn ich die Passwortsynchronisationsfunktionen aus dem Mapping entferne, dann beendet der AD Connector die Synchronisation normal.
Comment 8 Arvid Requate univentionstaff 2011-01-14 15:37:54 CET
Der LM-Hash-Änderungstest war hier defekt: Wenn auf Samba4 Seite kein LM-Hash aktiviert ist, dann schlug der Test fehl.
Comment 9 Felix Botner univentionstaff 2011-01-19 15:20:29 CET
Grundlegend funktioniert es, 

geändert                       | Anmeldung erfolgreich über
------------------------------------------------------------------
winxp (Windows-Sicherheit)     | winxp, win7, win2k8
                               | kinit, GDM, ssh, su
winxp (AD Benutzerverwaltung)  | winxp, win7, win2k8
                               | kinit, GDM, ssh, su
                               |
win7 (Windows-Sicherheit)      | winxp, win7, win2k8
                               | kinit, GDM, ssh, su
win7 (AD Benutzerverwaltung)   | winxp, win7, win2k8
                               | kinit, GDM, ssh, su
                               |
win2k8 (Windows-Sicherheit)    | winxp, win7, win2k8
                               | kinit, GDM, ssh, su
win2k8 (AD Benutzerverwaltung) | winxp, win7, win2k8
                               | kinit, GDM, ssh, su
                               | 
kpasswd                        | winxp, win7, win2k8
                               | kinit, GDM, ssh, su
                               |
udm                            | winxp, win7, win2k8
                               | kinit, GDM, ssh, su, udm

Bei Passwort-Änderungen über Windows bzw. kpasswd wird das userPassword im UCS LDAP nicht gepflegt, die Anmeldung am UDM ist dann nicht mehr möglich Bug #21244.

Außerdem scheint es noch Probleme zu geben, wenn über Windows ein Passwort mit Umlauten gesetzt wird Bug #21246.