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.
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.