-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Azure AD patch add compatibility #416
Comments
Hi,
|
Thanks for the prompt reply! I think your reasoning in point 1 makes sense. Adding support for add-operations seems like it would fix that aspect of the issue, is consistent with the direction of the previous workaround, and doesn't appear to have any downside. As for point 2, I suspect that you're right in thinking that it expects that an email of type work is created. I can't think of any other explanation that would make sense, given that:
I think the intention is that
should be interpreted as
Re-reading https://www.rfc-editor.org/rfc/rfc7644.html#section-3.5.2.1, I think that I agree that this particular case is unspecified. It doesn't seem to talk about non-matching paths at all in the context of patching. The closest that appears to be relevant is:
In this case, the target location is a value path, where both the attribute and the value do not exist. The capability to add attributes based on arbitrary valFilters seems like a lot of complexity to expect without calling out explicitly in the spec, though, if that was the intent. As for what you support, I could see it being reasonable to not support this particular style of call, but expect that it will continue causing pain for people trying to use Azure AD if that's the decision. If we were interested in pursuing an Azure AD workaround for this, it might be sufficient to support only valFilters with a single "eq" clause, decreasing the complexity of potential operation re-writes needed. For example, here are the attributes of this type that the SCIM Validator includes in their default schema:
|
I do not consider what I said a fix decision. I just need valid arguments and you presented a very good reason :-) |
Of course. Thank you for the clarification. |
Okay I think I was able to fix this problem.
Are you able to verify that the solution is working for you? EDIT: serviceProvider.getPatchConfig().setMsAzureFilterWorkaroundActive(true); |
I've updated my test environment to use the new logic, and it appears to be working nicely. I didn't test the patch config setting you put in place, as I'm using it through scim-for-keycloak which doesn't appear to expose the config yet (or at least I don't know how yet). Here's the process I used:
I think this adjustment is enough to fully satisfy my needs, once it's available from a released scim-for-keycloak with a way to enable it. Thanks for the rapid turnaround. |
great. That it works. |
Thank you for the library. As I dig deeper, I can see how much effort has gone into this project.
What I'm seeing looks similar to #267, but doesn't appear to be working.
I've got an application using scim-for-keycloak kc-18-b2.
When I run the application and use the Microsoft Azure AD SCIM Validator to attempt to verify compatibility, most user interactions are passing. However, "Patch User - Add Attributes" is not.
I'm running it with the following attributes configured (slimmed down to avoid noise about other attributes that are less important):
userName
active
emails[type eq "work"].value
name.givenName
name.familyName
It says that it is failing because:
name.givenName
is Missing from the fetched Resourcename.familyName
is Missing from the fetched Resourceemails[type eq "work"].value
is Missing from the fetched ResourceHere's the information it gives on the requests sent and the responses received. The only thing I've censored is the host/port (replaced with
MYTESTHOST
).In my other automated tests, I can verify that patch add operations are working in general; it's just the particular (probably non-standards-compliant) form that the SCIM Validator is using that isn't working.
The text was updated successfully, but these errors were encountered: