In 2015, I released the first version of the REST API for the FIM/MIM Service. I designed it to abstract away the complexities of the native SOAP endpoint, and open up the possibilities of integrating with FIM from operating systems and libraries outside of the Windows/.NET ecosystem.
It's been used by many awesome public and private projects since then. Check out Peter Stapf's guide on using it to create PowerApps.
Features have been added over time, usually by request, which means now, using simple JSON calls, you can perform the following tasks
- Create resources
- Modify resources
- Delete resources
- Get a resource
- Get the current user's permissions on a resource
- Search for resources
- Full localization support
- Getting approval requests
- Approving or rejecting requests
However, I needed to make some changes to the API that would have broken compatibility with existing versions, so I decided to add another endpoint to this API, and release a new version.
Both versions of the API are contained in the one installation package, and can safely run side-by-side. Any existing applications will continue to work with the v1 API version.
Here are a list of fixes, enhancements, and new features of the v2 API.
- Fixes an issue where all attribute values were returned as strings, rather than their native JSON data type
- Fixes an issue where multivalued attributes containing only a single value were serialized as a string, instead of an array
- Provides flexibility in how resources are returned from the API by allowing the caller to specify
- If null values should be returned or not
- If values for single-valued attributes should be returned as arrays
- If the resource should be rendered as a fixed structure, that does not depend on knowing the resource schema in advance
- Aligns the API to a set of REST API guidelines published by Microsoft
- Adds support for getting permission hints for each attribute on a resource
- Adds paged search support