azureblog.co.uk
← cd ~/roles
// roles/entra · privileged

Conditional Access AdministratorMicrosoft Entra built-in role

Can manage Conditional Access capabilities.

Role IDb1be1c3e-b65d-4f19-8427-f6fa0d97feb9
PrivilegedYes. Microsoft marks this role as privileged.
Permissions13

Before you assign it

Microsoft labels this a privileged role, so make it eligible through PIM rather than permanent, require phishing-resistant MFA to activate it, and review who has it regularly.

What it can do

PermissionWhat it allows
microsoft.directory/conditionalAccessPolicies/basic/updateUpdate basic properties for Conditional Access policies
microsoft.directory/conditionalAccessPolicies/createCreate Conditional Access policies
microsoft.directory/conditionalAccessPolicies/deleteDelete Conditional Access policies
microsoft.directory/conditionalAccessPolicies/owners/readRead the owners of Conditional Access policies
microsoft.directory/conditionalAccessPolicies/owners/updateUpdate owners for Conditional Access policies
microsoft.directory/conditionalAccessPolicies/policyAppliedTo/readRead the "applied to" property for Conditional Access policies
microsoft.directory/conditionalAccessPolicies/standard/readRead Conditional Access for policies
microsoft.directory/conditionalAccessPolicies/tenantDefault/updateUpdate the default tenant for Conditional Access policies
microsoft.directory/namedLocations/basic/updateUpdate basic properties of custom rules that define network locations
microsoft.directory/namedLocations/createCreate custom rules that define network locations
microsoft.directory/namedLocations/deleteDelete custom rules that define network locations
microsoft.directory/namedLocations/standard/readRead basic properties of custom rules that define network locations
microsoft.directory/resourceNamespaces/resourceActions/authenticationContext/updateUpdate Conditional Access authentication context of Microsoft 365 role-based access control (RBAC) resource actions

Assign it

The role ID is the same in every tenant, so these work as they are. Make it eligible through PIM:

powershell13 lines
Connect-MgGraph -Scopes "RoleEligibilitySchedule.ReadWrite.Directory"
$user = Get-MgUser -UserId "jane.doe@contoso.com"
New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest -BodyParameter @{
    Action           = "AdminAssign"
    Justification    = "Needs Conditional Access Administrator for <reason>"
    RoleDefinitionId = "b1be1c3e-b65d-4f19-8427-f6fa0d97feb9"
    DirectoryScopeId = "/"
    PrincipalId      = $user.Id
    ScheduleInfo     = @{
        StartDateTime = (Get-Date).ToUniversalTime().ToString("o")
        Expiration    = @{ Type = "afterDuration"; Duration = "P180D" }
    }
}

Who already has it?

powershell3 lines
Connect-MgGraph -Scopes "RoleManagement.Read.Directory"
Get-MgRoleManagementDirectoryRoleAssignment -Filter "roleDefinitionId eq 'b1be1c3e-b65d-4f19-8427-f6fa0d97feb9'" -ExpandProperty Principal |
    ForEach-Object { $_.Principal.AdditionalProperties.displayName }

Related roles

Find the smallest role for a task →