pingidentity / scim2

The UnboundID SCIM 2.0 SDK for Java
181 stars 74 forks source link

Can scim2-sdk-server be used to implement SCIM web service? #85

Closed ffauteux closed 7 years ago

ffauteux commented 7 years ago

I'd like to know whether scim2-sdk-server could be used to implement an SCIM web service which would provisions users/group from an SCIM provider (e.g. Azure, https://docs.microsoft.com/en-us/azure/active-directory/active-directory-scim-provisioning).

digitalperk commented 7 years ago

Yes, the scim2-sdk-server module will definitely help with implementing a SCIM service provider using JAX-RS 2. It is meant to be a lightweight set of JAX-RS providers and utilities to make implementation easier. Take a look at https://github.com/pingidentity/scim2/blob/master/scim2-sdk-server/src/test/java/com/unboundid/scim2/server/EndpointTestCase.java for an example on how to setup an JAX-RS application. You will still have to write resource classes for the standard User and Group resource types.

dirspb commented 5 years ago

Was anybody able to integrate with MS Aure using scim2-sdk-server?

tkatochin commented 5 years ago

Since the persistence layer can be anything, I want the sample code for activable server, for to figure out what to implement and for how to implement it.

mimozell commented 3 years ago

@dirspb did you end up using this for your implementation? I'm looking to do the same as you, but I don't really see any examples on implementing the server.

dahuber-github commented 3 years ago

@dirspb @mimozell, I have successfully implemented a working Azure AD interface using this library. There are two issues in the current version that I have noted and resolved in other issues.

1) Azure send non-standard patch operations. You have to edit the enum in the code to resolve this. (See issue #152). 2) scim2-sdk-server's implementation of the Add Patch operation does not allow pathing. (See issue #135 for resolution).

My implementation was based on Jetty/Jackson. I used the provided schemas (without modifications). From start to finish it took me about 40 hours to get it working and another 15 hours to debug. I would recommend this library (even with the current issues). It saved me a ton of time and effort.

The server documentation is terrible/nonexistent. I used the RFC as guidance on what's needed.