Inforcer Identity Governance — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Inforcer Identity Governance (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Inforcer exposes a read-only view of a managed tenant's identity objects — users, groups, and role assignments. This is an inventory and governance surface: it answers "who exists, what groups exist, and who holds which roles" so you can review identity posture alongside baseline alignment. It does not create, edit, disable, or offboard users — there is no identity administration here.
Read api-patterns first for the gateway headers, the region requirement, the envelope, and pagination, and tenant-management for resolving a tenant to its integer Client Tenant ID. Every identity call is tenant-scoped by that integer id.
inforcer_users_listList the users in a tenant. Returns user objects (display name, UPN/email, enabled state, and — where present — assigned roles or licensing hints).
inforcer_users_list(clientTenantId=1423)Use this to enumerate the identity surface of a tenant: who has accounts, which look stale or disabled, and which are candidates for closer review.
inforcer_groups_listList the groups in a tenant. Returns group objects (name, type, and membership where the API exposes it).
inforcer_groups_list(clientTenantId=1423)Groups frequently gate access (security groups, distribution lists, role-assignable groups). Listing them shows the access-grouping structure without changing it.
inforcer_roles_listList role assignments in a tenant — who holds which administrative or privileged roles.
inforcer_roles_list(clientTenantId=1423)This is the highest-signal identity call for security review: privileged role membership (Global Admin and equivalents) is where the blast radius of a compromised account is largest. Surface unexpected or excessive privileged assignments as findings.
| Finding | Why it matters |
|---|---|
| Many users holding privileged roles | Over-broad admin assignment widens the attack surface |
| Privileged role on a generic / shared account | Hard to attribute actions; weakens accountability |
| Stale or disabled accounts still present | Dormant accounts are a credential-theft target |
| Groups granting broad access | Membership sprawl quietly expands who can reach what |
ctid = resolve("Acme") # integer Client Tenant ID
users = inforcer_users_list(clientTenantId=ctid)
groups = inforcer_groups_list(clientTenantId=ctid)
roles = inforcer_roles_list(clientTenantId=ctid)Page each list to completion on continuationToken before reporting counts — a partial page understates the inventory. Pair the role list with the user list to attribute each privileged role to a named identity.
For each tenant from inforcer_tenants_list, pull inforcer_roles_list and flag tenants with excessive or unexpected privileged-role membership. This complements a baseline drift sweep: alignment tells you the tenant diverges from policy; the role list tells you who could change things.
and roles, but you cannot create/edit/disable users, change group membership, or alter role assignments through this API. Identity administration is not part of Inforcer's surface — surface remediation as a recommendation (e.g. "remove the standing Global Admin from this service account"), to be actioned in the appropriate admin tool.
for user, group, and role objects are illustrative and credited to royklo/InforcerCommunity. Verify the exact shape on first use.
A GUID or domain that reaches the path unresolved is the most common cause of an empty result — re-resolve via inforcer_tenants_list.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.