When using SCIM provisioning in Okta, updating the manager value
and manager display name
manually in Provisioning → Assignments for an already provisioned user causes an issue. The PUT
request payload always sends the old manager
values in an array, preventing updates.
Observations:
- Other attributes update correctly, with the
PUT
request sending new values. - Mappings are correct.
- The
GET
response before the update includes the following response when nomanager
exists:
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"id": ***31,
"externalId": "****************d8f78",
"meta": {
"resourceType": "User",
"created": "2024-12-06T10:38:22.000Z",
"lastModified": "2024-12-17T14:29:58.000Z"
},
"displayName": null,
"name": {
"givenName": "indhumathy",
"familyName": "indhumathy",
"middleName": ""
},
"active": true,
"title": "Senior Product Manager",
"emails": {
"value": "in****@gmail.com"
},
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"manager": []
},
"locale": "en-US",
"timezone": "America/Chicago"
}
This seems to trigger the issue.
As a trial, I did the below:
By removing the below snippet from the GET
response:
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"manager": []
}
The PUT
request payload starts sending the updated new manager value
and manager display name
in a hash similar to the create payload, allowing updates to work as expected.
Is this workflow is correct?. Please let me know the standard approach to solve this issue.