elimity-com / scim

Golang Implementation of the SCIM v2 Specification
MIT License
177 stars 55 forks source link

Add Okta On-Prem connector compatibility changes #130

Closed mgrubb closed 2 years ago

mgrubb commented 3 years ago

Add ServiceCapabilities field to ServiceProviderConfig struct to allow customization of SCIM service capabilities. Backwards compatibility is maintained by using the previous list of capabilities if this list is empty.

Add SchemaExtensions field to ServiceProviderConfig struct to allow augmenting the list of schemas returned by the /ServiceProviderConfig end-point.

Add ExcludeResourceTypeMeta field to ResourceType struct to allow for excluding the resource_type field in the response meta object. This field breaks the Okta on-prem connector agent. This field was named such to maintain backwards compatibility with existing code that would not specify this.

Resource.response was changed to consult this new ResourceType field.

Add omitempty flag to meta.ResourceType's json tag

mgrubb commented 3 years ago

I've been using this package to implement an SCIM service for Okta's On-Premise provisioning agent. Along the way I hit a few bumps. I think most of this stuff is basically warts from the 1.0 SCIM "spec", or where Okta has deviated from the standard. These changes should be completely backward compatible with existing code, but adds enough flexibility to work with non-compliant clients.

q-uint commented 2 years ago

Hi @mgrubb! I am reluctant to accept deviations from the standard, especially since this is Okta-specific.


Feel free to discuss this further in this thread. 👇🏼