Hi,
> I thought that you could act in standard UMA Protection Mode
Those protection modes are mututally exclusive
> What is the difference...
Here we briefly introduce the difference
https://gluu.org/docs/ce/user-management/scim2/#api-protection
If someone wants to start coding against SCIM API from scratch, test mode protection is a good way to start because the authorization steps are simpler than in UMA scenario.
UMA protection is the mode we recommend for a production setting. UMA is a standard mechanism to protect web resources (such as APIs). [Here](https://gluu.org/docs/ce/user-management/scim2/#scim-protected-by-uma) you have some pointers. There is also a page dedicated to UMA in [Gluu docs](https://gluu.org/docs/ce/admin-guide/uma/).
This way is more involved as it implements the workflow you can see [here](https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-grant-2.0.html). So coding it requires more effort and some reading.
All aspects of the API are the same for both modes when it comes to CRUD (create, retrieve update, and delete) as this is dictated by the SCIM spec.
Gluu offers a ready-to-use Java client that abstracts away all the complexity of authorization processes for both modes. If Java is your realm, you can just simply go straight with UMA.
Coding the protection routines yourself is a one-time task. Once you make the first requests work, you will just deal with the actual work.
I think you may find this [section](https://gluu.org/docs/ce/user-management/scim2/#supporting-a-user-registration-process-with-scim) useful as it has some nice tips for developers.