Extending Automation into Entra Entitlement Management
Colin Moore
Looking to further extend automation and want to leverage Fresh service with Entra Entitlement Management?
What is Entra Entitlement Management
Entra Entitlement Management is a feature of Microsoft Entra ID (formerly Azure AD) that helps organizations govern access to resources efficiently and securely. It allows IT and security teams to manage user access at scale, automating entitlement workflows and approvals while ensuring compliance with company policies.
Key Features of Entra Entitlement Management:
Access Packages:
Create bundled access permissions for specific roles, including apps, groups, and SharePoint sites.
Users can request access to these packages based on defined policies.
Self-Service Access Requests:
Users can request access without IT intervention.
Requests can go through approval workflows to ensure proper oversight.
Automated Access Reviews & Expirations:
Periodic reviews of user access to ensure only authorized users retain permissions.
Set access expiration to prevent unnecessary prolonged access.
Lifecycle Management:
Automatically grant, update, or remove access based on role changes (e.g., new hires, job changes, or departures).
Supports temporary access assignments for external users (B2B collaboration).
Policy-Based Governance:
Define rules for who can request access, who approves it, and how long it lasts.
Enforce least privilege access to improve security posture.
Multi-Tenant Access Governance:
Supports cross-organization collaboration with entitlement governance for partner or guest users.
Interfacing with Entitlement Management
This is relatively straight forward as Entitlement management has webhook API endpoints that can be leveraged.
Pre-requisite:
Create an App Registration with the rights to perform Entitlement Requests, create a client secret and use these for an OAuth credential
Create your Access Package to perform the resource entitlement
Add any resource roles / groups required
Create the policies, multiple policies can exist as you can declare the choice of policy in the Fresh request - Each of these will have their own PolicyID
Submit this, handle it with some condition logic (looking for status code 200 for success) and you have successfully submitted and fully automated Entitlement via Fresh Service
Wrap this with an approvals process, your IT department no longer needs to worry about Entra permissions for users, or complicated options on the interfaces.
Extending this Further
So you'll see from our example above that it contains variables from lookups, the recommendation here is to create a custom object table and perform Entra lookups:
Use AzureAD Orch Application to get the User Details by Username of the Requested For identity - this will return the important Azure User ID that is required for Entitlement submission
Populate a Custom Object Table with the available with the Policy options and their associated Policy ID and Package ID, this can be embedded into the Service Catalogue Item, then be used to extract the required policy ID for submission
This table contains the Package ID (for the Access Package) and the various Policy ID, in this example we are requesting to become a member of the Teams Recording group for a set number of hours
The scope field allows filtering of the Record to be achieved easily within the Service Item Catalogue, meaning multiple SI can use the same custom table without free format text.
The requestor would see the Name to select.
Understanding the Complete Workflow
This picks up post the approvals process:
Get the User details from EntraID using the AzureAD Orch App (we will use the User ID from this later)
Read from the Custom Object Table for the chosen Time Allowance
As it takes time for the Teams policies to apply, the next step is to take the requestor chosen start time and roll it back 2 hours (this will provide a scheduled start time for the entitlement)
Add a note into the ticket explaining the progress
Use a web request above to POST the JSON payload into Entra Entitlement Management
Condition Logic: Check for successful submission (Code 200)
If Success, Add an note to the ticket and set to resolved
If not Success: Parse the Error message
Check the Error for "existing open request" (this means that a previous entitlement request is already scheduled for that time and another one cannot be made) - Set a Note and resolve ticket
Else raise the ticket as an issue has occurred back to the team that would need to deal with the request manually.
Author:
Colin Moore
Stay informed and never miss an iCTO update!
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.