Skip to content

Add missing SCIM endpoints#1181

Open
limonkufu wants to merge 7 commits intoindigo-iam:developfrom
limonkufu:scim-endpoints
Open

Add missing SCIM endpoints#1181
limonkufu wants to merge 7 commits intoindigo-iam:developfrom
limonkufu:scim-endpoints

Conversation

@limonkufu
Copy link

@limonkufu limonkufu commented Feb 27, 2026

This commit adds the following endpoints to integrate with Entra ID

Adds:

  • Schemas
  • ResourceTypes
  • ServiceProviderConfig

Changes:
-User Provisioning Controller needed to handle quotes when SCIM GET is done as apparently that is expected by microsoft entra on setup and is standard

  • And empty results should return 200 with empty list instead of 403 according to the SCIM RFCs

This PR addresses #408

Note that I am not a (good) Java Developer so let me know if anything is missing and I will update it. I also want to update the API docs but I don't know how so if someone can point me in the right direction, I can do that too.

This is being tested with https://scimvalidator.microsoft.com/ and Microsoft Entra ID directly but I wanted to get it out incase I am doing something horribly wrong before I wrap it up

This commit adds the following endpoints to integrate with Entra ID

- Schemas
- ResourceTypes
- ServiceProviderConfig
@rmiccoli rmiccoli linked an issue Mar 4, 2026 that may be closed by this pull request
MUTABILITY_READ_WRITE, RETURNED_DEFAULT, UNIQUENESS_SERVER, null, null),
attr("name", "complex", false, "User's full name", false, null,
MUTABILITY_READ_WRITE, RETURNED_DEFAULT, UNIQUENESS_NONE, null,
Arrays.asList(givenName, familyName)),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is formatted attribute missing?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes that and some others. I am still testing it and apparently failed to mark this as WIP.

Sorry for that. I was planning to ping you and @enricovianello once I can verify it actually works (currently it still fails some scim validation)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will ping you here once i have more completeness

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @rmiccoli ,

Could you have another look? I have tested this with MS Entra ID and it works right now.

Mainly I had to change:

  • iam-login-service/src/main/java/it/infn/mw/iam/api/scim/provisioning/ScimUserProvisioning.java needed to handle quotes as apparently that is expected by microsoft entra on setup and is standard
  • And empty results should return 200 with empty list instead of 403 according to the SCIM RFCs

This is added eventhough it's set to Not Empty to avoid cases this might get executed before
- Enhanced SCIM Discovery Controller with improved schema and resource type definitions.
- Ensured filter parameters are correctly handled and return appropriate error messages.
@limonkufu limonkufu changed the title Add missing SCIM endpoints WIP: Add missing SCIM endpoints Mar 4, 2026
Remove 'password' attribute from SCIM Discovery and update related tests
https://www.rfc-editor.org/rfc/rfc7644 describes that we should return 200 with an empty list instead of 404
@limonkufu limonkufu changed the title WIP: Add missing SCIM endpoints Add missing SCIM endpoints Mar 13, 2026
Comment on lines +42 to +45
if (operations == null) {
return true;
}

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this was needed

MUTABILITY_READ_WRITE, RETURNED_DEFAULT, UNIQUENESS_SERVER, null, null),
attr("name", "complex", false, "User's full name", false, null,
MUTABILITY_READ_WRITE, RETURNED_DEFAULT, UNIQUENESS_NONE, null,
Arrays.asList(givenName, familyName)),
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @rmiccoli ,

Could you have another look? I have tested this with MS Entra ID and it works right now.

Mainly I had to change:

  • iam-login-service/src/main/java/it/infn/mw/iam/api/scim/provisioning/ScimUserProvisioning.java needed to handle quotes as apparently that is expected by microsoft entra on setup and is standard
  • And empty results should return 200 with empty list instead of 403 according to the SCIM RFCs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement SCIM configuration endpoints

3 participants