Univention Office 365-Connector / Migration bestehender Benutzer

Hi,

ich habe bei einem unserer Kunden ein Problem mit dem O365-Connector.

Es gab da einige bestehende Benutzer, die ich alle migriert habe. (besser gesagt: ich habe eine Anleitung geschrieben, wie man das macht)
Der Kollege, der das dann gemacht hat, hat sich leider bei einem Benutzer vertippt und einen Punkt in der E-Mail vergessen.
Beim Versuch danach die korrekte Univention entryUUID ins Azure zu bringen, kam folgende Fehlermeldung:

univention.office365.azure_handler.ApiError: Another object with the same value for the property immutableId already exists.

Als ich das sah, dachte ich mir: kein Problem. Dann setze ich einfach irgendeine andere immutableID und danach nochmal die richtige. Ersteres hat funktioniert, die korrekte danach zu setzen jedoch nicht, die neue Fehlermeldung lautete dann:

univention.office365.azure_handler.ApiError: Property immutableId is invalid.

Wie kann das sein?
Wieso hat eine zufällig von mir ausgewählte immutableId funktioniert und andere, die ich ausprobiert habe, funktionieren nicht?
Ich habe dann den UCS-Benutzer neu angelegt, um eine neue entryUUID zu bekommen, habe die nötigen Informationen (Azure Object-ID, …) in ein JSON-Objekt geschrieben und kodiert ins UCS-LDAP geschrieben (UniventionOffice365Data), wie bei den anderen Benutzern auch und dann nochmal versucht die immutableId im Azure zu setzen. Die Fehlermeldung ist die gleiche: invalid. :frowning:

Hier das Skript, mit dem ich es setze:

import sys
import base64
from univention.office365.azure_handler import AzureHandler
from univention.config_registry import ConfigRegistry
  
ucr = ConfigRegistry()
ucr.load()
  
ah = AzureHandler(ucr, "foo", adconnection_alias="defaultADconnection")
azure_uid = sys.argv[1]
entry_uuid = sys.argv[2]
  
print "Setting Azure ID: ", azure_uid
print "To UCS Entry ID:  ", entry_uuid
  
print(ah.modify_user(azure_uid, {"immutableId": base64.encodestring(entry_uuid).rstrip()}))

Aufgerufen wird es dann mit:

python azure.py Azure-Object-ID UCS-EntryUUID

Beispiel:

python azure.py 0a28d411-d799-45a4-91b7-cc1573e3d742 bf56d9ac-9cd7-127a-988b-01af53cc2725

Hier der volle Traceback:

Traceback (most recent call last):
File "./foo_azure.py", line 16, in <module>
print(ah.modify_user(azure_uid, {"immutableId": base64.encodestring(entry_uuid).rstrip()}))
File "/usr/lib/pymodules/python2.7/univention/office365/azure_handler.py", line 375, in modify_user
return self._modify_objects(object_type="user", object_id=object_id, modifications=modifications)
File "/usr/lib/pymodules/python2.7/univention/office365/azure_handler.py", line 372, in _modify_objects
return self.call_api("PATCH", url, modifications)
File "/usr/lib/pymodules/python2.7/univention/office365/azure_handler.py", line 243, in call_api
raise ApiError(response, adconnection_alias=self.adconnection_alias) 
univention.office365.azure_handler.ApiError: Property immutableId is invalid.