in modules/azure-identity/azure-id-lifecycle/scripts/azad_sync_job_schema_modify.py [0:0]
def azad_sync_job_schema_modify(service_principal_id, provision_job_id):
r_headers = {'Authorization': 'Bearer ' + msgraph_api_access_token(), 'Accept': 'application/json'}
# fetch existing job schema
job_schema_json = fetch_job_schema(service_principal_id=service_principal_id, job_id=provision_job_id,
headers=r_headers)
# add new attributes to existing job schema
sra = job_schema_json['synchronizationRules']
for sr in sra:
if sr['name'] == 'USERGROUP_OUTBOUND_USERGROUP' and sr['sourceDirectoryName'] == 'Microsoft Entra ID':
objMaps = sr['objectMappings']
for om in objMaps:
if om['name'] == 'Provision Microsoft Entra ID Users' and om['sourceObjectName'] == 'User':
# read federated_user attribute
federated_user_attr = read_user_mapping_attributes_json(
filename='scripts/federated_user_mapping_attribute.json')
om['attributeMappings'].append(federated_user_attr)
# read bypass notif attribute
bypass_notification_attr = read_user_mapping_attributes_json(
'scripts/bypass_notification_mapping_attribute.json')
om['attributeMappings'].append(bypass_notification_attr)
update_job_schema(service_principal_id, job_id=provision_job_id, headers=r_headers, payload=job_schema_json)