Omnicit.EntraRBAC

1.3.1

Manage Entra ID and Azure RBAC building blocks across tenants: Entra ID groups, PIM, Administrative Units, Entitlement Management, Access Reviews, Azure resources and RBAC, plus a JSON inventory and declarative apply engine.

Minimum PowerShell version

7.2

There is a newer prerelease version of this module available.
See the version list below for details.

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name Omnicit.EntraRBAC -RequiredVersion 1.3.1

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name Omnicit.EntraRBAC -Version 1.3.1

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) 2026 Omnicit AB

Package Details

Author(s)

  • Omnicit AB / Philip Haglund

Tags

EntraID Azure RBAC PIM Identity Governance Windows Linux MacOS

Functions

Add-OERAccessPackageResourceRole Add-OERAdministrativeUnitMember Add-OERAdministrativeUnitScopedRole Add-OERCatalogResource Add-OERGroupEligibility Add-OERGroupMember Connect-OER Disable-OEREligibleRoleAssignment Disconnect-OER Enable-OEREligibleRoleAssignment Export-OERInventory Get-OERAccessPackage Get-OERAccessPackageAssignment Get-OERAccessPackageAssignmentPolicy Get-OERAccessPackageResourceRole Get-OERAccessReviewDefinition Get-OERAccessReviewInstance Get-OERAccessReviewInstanceDecision Get-OERActiveDirectoryRoleAssignment Get-OERActiveRoleAssignment Get-OERAdministrativeUnit Get-OERAdministrativeUnitScopedRole Get-OERAuthenticationContext Get-OERCatalog Get-OERCatalogResource Get-OERConfiguration Get-OERDirectoryRoleManagementPolicy Get-OEREligibleDirectoryRoleAssignment Get-OEREligibleRoleAssignment Get-OERGroup Get-OERGroupEligibility Get-OERGroupMember Get-OERGroupPimPolicy Get-OERInventory Get-OERManagementGroup Get-OERRequiredScope Get-OERResource Get-OERResourceGroup Get-OERRoleAssignment Get-OERRoleDefinition Get-OERRoleManagementPolicy Get-OERSubscription Invoke-OERAccessReviewInstanceDecision Invoke-OERStructure New-OERAccessPackage New-OERAccessPackageApprovalStage New-OERAccessPackageAssignment New-OERAccessPackageAssignmentPolicy New-OERAccessPackageRequestorScope New-OERAccessPackageRequestorSettings New-OERAccessReviewDefinition New-OERAccessReviewStage New-OERActiveDirectoryRoleAssignment New-OERActiveRoleAssignment New-OERAdministrativeUnit New-OERCatalog New-OERConfiguration New-OEREligibleDirectoryRoleAssignment New-OEREligibleRoleAssignment New-OERGroup New-OERPolicyNotificationRule New-OERResourceGroup New-OERRoleAssignment Remove-OERAccessPackage Remove-OERAccessPackageAssignment Remove-OERAccessPackageAssignmentPolicy Remove-OERAccessPackageResourceRole Remove-OERAccessReviewDefinition Remove-OERActiveDirectoryRoleAssignment Remove-OERActiveRoleAssignment Remove-OERAdministrativeUnit Remove-OERAdministrativeUnitMember Remove-OERAdministrativeUnitScopedRole Remove-OERCatalog Remove-OERCatalogResource Remove-OERConfiguration Remove-OEREligibleDirectoryRoleAssignment Remove-OEREligibleRoleAssignment Remove-OERGroup Remove-OERGroupEligibility Remove-OERGroupMember Remove-OERResourceGroup Remove-OERRoleAssignment Send-OERAccessReviewReminder Set-OERAccessPackage Set-OERAccessPackageAssignmentPolicy Set-OERAccessReviewDefinition Set-OERAdministrativeUnit Set-OERCatalog Set-OERConfiguration Set-OERDirectoryRoleManagementPolicy Set-OERGroup Set-OERGroupPimPolicy Set-OERResourceGroup Set-OERRoleAssignment Set-OERRoleManagementPolicy Stop-OERAccessReviewInstance Test-OERStructure

PSEditions

Core

Dependencies

Release Notes

## [1.3.1] - 2026-10-23

More failed inventory reads are now reported. `Get-OERInventory` names a failed role assignment or
role management policy read as unread through `InventoryPartial` (a `-CommonRoles` role it cannot
read is still skipped with a warning). An empty, `$null` or white space `-Scope`, `-Subscription`
or `-ManagementGroup` is refused at binding by `Get-OERInventory`, and a `-Scope` or
`-ManagementGroup` by `Export-OERInventory`, where an empty `-Scope` meant a tenant-wide walk.
`Export-OERInventory` reports a stopped Azure eligibility, Lighthouse or policy selection read,
warns when `-AllRolePolicies` or `-AllDirectoryRolePolicies` has no section, writes no bundle when
its own sign-in is refused, and names the bundle folder and its `TenantId` by the granted tenant ID
when the session names none. Both commands write members, owners, eligibility and unit members in
one fixed order, and a dynamic group's members as null, so a `-Prune` plan shows no member row for
it.

`Invoke-OERStructure` and `Set-OERGroupPimPolicy` write no guessed value after a failed or empty
read, and `-WhatIf` fails a directory role or group PIM policy needing approval by nobody. In a
thread job `Invoke-OERStructure` needs `-Confirm:$false` or `-WhatIf` (`ConfirmationUnavailable`).
`Set-OERAccessPackageAssignmentPolicy` refuses to write back a read `unknownFutureValue` without
`-RequestorScope`. Validation refuses an unresolvable group template and, before PowerShell 7.5, a
timestamp with seconds.

The module's Microsoft Graph and Azure Resource Manager transports now refuse a paged read that
cannot finish instead of returning a shorter list: a later page that is empty or has no `value`, a
next link already requested and a walk past 100000 pages, with `GraphPagingIncomplete` or
`ArmPagingIncomplete`, and an Azure body that is not JSON, with `ArmResponseUnreadable`. Under
`-ErrorAction SilentlyContinue` such a read returns nothing.

AzAuth 2.11.0 or later is required. Near expiry an interactive session first tries a renewal from
AzAuth's stored credential, for fewer prompts (same account and tenant; never when both tokens
renew together). `pwsh -NonInteractive` refuses interactive sign-in
(`InteractiveSignInUnavailable`). Profile files escape every single quote. `Invoke-OERStructure`
reports an unresolvable scope's own error id; `Get-OERInventory` names no `tenantId` after its
refused sign-in.

A `-TenantId` no longer lets a command continue under another identity's session:
`Invoke-OERStructure` and the access package and review stage builders refuse a call when another
application or account replaced the tenant's session, and a cmdlet that a replaced command calls is
refused before it requests a token. A renewal answered by another account is refused with
`SignInSuperseded` and its token is not used: the session stays the account it was until
`Connect-OER`.

Messages now say what the module does: `PolicyOpenFailed` gives a command that runs as typed,
`Export-OERInventory`'s `InventoryPartial` is shorter, `SignInSuperseded` no longer calls every account change
a renewal, and a warning for a review cadence the module cannot write names the cadence exported.

FileList

Version History

Version Downloads Last updated
1.3.2-previe... 8 10/24/2026
1.3.1 (current version) 13 10/23/2026
1.3.1-previe... 8 10/23/2026
1.3.1-previe... 6 10/22/2026
1.3.1-previe... 6 10/22/2026
1.3.1-previe... 6 10/22/2026
1.3.1-previe... 8 10/21/2026
1.3.1-previe... 4 10/20/2026
1.3.1-previe... 8 10/20/2026
1.3.1-previe... 5 10/20/2026
1.3.1-previe... 7 10/19/2026
1.3.1-previe... 5 10/19/2026
1.3.0 10 10/19/2026
1.2.1-previe... 6 10/18/2026
1.2.1-previe... 5 10/18/2026
1.2.1-previe... 5 10/18/2026
1.2.1-previe... 5 10/15/2026
1.2.1-previe... 5 10/15/2026
1.2.1-previe... 5 10/14/2026
1.2.1-previe... 5 10/14/2026
1.2.1-previe... 10 10/14/2026
1.2.1-previe... 9 10/14/2026
1.2.1-previe... 5 10/13/2026
1.2.1-previe... 7 10/13/2026
1.2.1-previe... 5 10/11/2026
1.2.0 13 10/11/2026
1.1.4-previe... 5 10/11/2026
1.1.4-previe... 5 10/10/2026
1.1.4-previe... 4 10/10/2026
1.1.4-previe... 5 10/10/2026
1.1.4-previe... 5 10/9/2026
1.1.4-previe... 4 10/9/2026
1.1.4-previe... 4 10/9/2026
1.1.4-previe... 4 10/9/2026
1.1.4-previe... 11 10/9/2026
1.1.4-previe... 6 10/9/2026
1.1.4-previe... 3 10/8/2026
1.1.4-previe... 1 10/8/2026
1.1.4-previe... 5 10/8/2026
1.1.4-previe... 4 10/7/2026
1.1.3 8 10/7/2026
1.1.3-previe... 4 10/7/2026
1.1.3-previe... 4 10/7/2026
1.1.3-previe... 4 10/7/2026
1.1.3-previe... 4 10/7/2026
1.1.3-previe... 5 10/7/2026
1.1.3-previe... 6 10/6/2026
1.1.3-previe... 5 10/6/2026
1.1.3-previe... 5 10/6/2026
1.1.2 7 10/6/2026
1.1.2-previe... 7 10/6/2026
1.1.2-previe... 6 10/5/2026
1.1.2-previe... 6 10/5/2026
1.1.2-previe... 5 10/5/2026
1.1.2-previe... 6 10/4/2026
1.1.2-previe... 6 10/4/2026
1.1.1 9 10/3/2026
1.1.1-previe... 5 10/3/2026
1.1.1-previe... 5 10/3/2026
1.1.1-previe... 5 10/2/2026
1.1.1-previe... 5 10/2/2026
1.1.1-previe... 6 10/1/2026
1.1.0 23 10/1/2026
1.1.0-previe... 21 10/1/2026
1.1.0-previe... 4 9/30/2026
1.1.0-previe... 4 9/29/2026
1.1.0-previe... 4 9/28/2026
1.0.2-previe... 4 9/24/2026
1.0.2-previe... 4 9/23/2026
1.0.1 10 9/23/2026
1.0.1-previe... 4 9/23/2026
1.0.1-previe... 4 9/23/2026
1.0.1-previe... 4 9/23/2026
1.0.1-previe... 5 9/23/2026
1.0.0 8 9/18/2026
Show more