The Access Control API enables our customers to link any third part User Identity Managment System with Verkada.
Some of our customers utilize the API in a batch process manner. A a sub real-time frequency, customers compare their total current user base in their third party system with the total Verkada Command Access Control User base. The differences between the two sets of users define the actions need to be taken in order to sync both systems.
- Users who exist in Verkada but not the customers User Information System will need to be either deleted from Verkada or deactivated.
- Users who do not exist in Verkada but exist in the customers User Information System will need to be added to Command.
- Any updated users, whether that be attributes like their name or employee ID, will need to be updated in Command.
- Any change in groups in the customer's User Information System may need to change the Access Control Access in Command. This is done by adding or removing users from Access Groups in command.
The other architecture our customers have used is a real-time sync. Changes made in the User Identity Management System are streamed out to a Message Queueing system where a consumer processes the changes and makes the relevant API calls to Command. The messages take the form of two schemas:
- The entire User data model from the User Information System.
- In this case, there is no indication of what change has occured just that something has changed. A difference between that user object and its representation in Command will have to be done and actions taken accordingly.
- An action is specified and a payload is included.
- In this case, key action words have been specified (MODIFY, CREATE, DELETE, ACTIVATE, etc) and payloads for those action words have been defined. Each message will contain the action word that corresponds to the operation taken in the User Identity Managment System and its payload includes the relevant information needed to take that action in Command. The customers consumer script's job will be to map between the schema of the messages and the relevent API endpoints needed.