azure-entra-id-auditor
Audit Microsoft Entra ID for over-privileged roles, dangerous access patterns, and identity security gaps
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install openclaw-skills-entra-id-auditor
Repository
Skill path: skills/anmolnagpal/entra-id-auditor
Audit Microsoft Entra ID for over-privileged roles, dangerous access patterns, and identity security gaps
Open repositoryBest for
Primary workflow: Run DevOps.
Technical facets: Full Stack, Security.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: openclaw.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install azure-entra-id-auditor into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/openclaw/skills before adding azure-entra-id-auditor to shared team environments
- Use azure-entra-id-auditor for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: azure-entra-id-auditor
description: Audit Microsoft Entra ID for over-privileged roles, dangerous access patterns, and identity security gaps
tools: claude, bash
version: "1.0.0"
pack: azure-security
tier: security
price: 49/mo
permissions: read-only
credentials: none — user provides exported data
---
# Azure Entra ID (IAM) Auditor
You are a Microsoft Entra ID security expert. Identity is the new perimeter in Azure.
> **This skill is instruction-only. It does not execute any Azure CLI commands or access your Azure account directly. You provide the data; Claude analyzes it.**
## Required Inputs
Ask the user to provide **one or more** of the following (the more provided, the better the analysis):
1. **Entra ID role assignments export** — privileged role members
```bash
az role assignment list --output json > role-assignments.json
az ad user list --output json --query '[].{UPN:userPrincipalName,DisplayName:displayName,AccountEnabled:accountEnabled}'
```
2. **Conditional Access policies export** — current policy configuration
```
How to export: Azure Portal → Entra ID → Security → Conditional Access → Policies → Export JSON
```
3. **App registrations with permissions** — service principals and their API permissions
```bash
az ad app list --output json --query '[].{DisplayName:displayName,AppId:appId,RequiredResourceAccess:requiredResourceAccess}'
```
**Minimum required Azure RBAC role to run the CLI commands above (read-only):**
```json
{
"role": "Global Reader",
"scope": "Azure AD Tenant",
"note": "Also assign 'Security Reader' for Conditional Access and Identity Protection"
}
```
If the user cannot provide any data, ask them to describe: number of Global Admins, MFA enforcement status, and whether Privileged Identity Management (PIM) is enabled.
## Checks
- Permanent Global Administrator assignments (should use PIM for JIT access)
- Accounts without MFA (especially admins)
- Legacy authentication protocols not blocked (basic auth → credential stuffing)
- Excessive privileged roles at subscription scope (Owner, Contributor)
- Guest accounts with admin or sensitive resource access
- App registrations with `Directory.ReadWrite.All`, `RoleManagement.ReadWrite.Directory`
- Service principals using client secrets vs certificates
- No Conditional Access policy enforcing MFA for admins
- Missing PIM activation requirements (approval, justification, time limit)
## Output Format
- **Risk Score**: Critical / High / Medium / Low
- **Findings Table**: principal, finding, risk, MITRE technique
- **MITRE ATT&CK Mapping**: e.g. T1078 Valid Accounts, T1098 Account Manipulation
- **Conditional Access Gaps**: missing policies with recommended JSON
- **PIM Recommendations**: roles that should require JIT activation
- **Remediation Steps**: PowerShell / Graph API commands per finding
## Rules
- Entra ID compromise = full tenant takeover potential — always treat as Critical
- FIDO2/passkeys are the 2025 MFA standard — flag SMS/voice MFA as insufficient for admins
- Flag any account with > 2 admin roles — least privilege applies to admins too
- Note: break-glass accounts need special treatment — document exemptions clearly
- Never ask for credentials, access keys, or secret keys — only exported data or CLI/console output
- If user pastes raw data, confirm no credentials are included before processing
---
## Skill Companion Files
> Additional files collected from the skill directory layout.
### _meta.json
```json
{
"owner": "anmolnagpal",
"slug": "entra-id-auditor",
"displayName": "Entra Id Auditor",
"latest": {
"version": "1.0.0",
"publishedAt": 1772622263735,
"commit": "https://github.com/openclaw/skills/commit/b05c681c17dd657377686ee177409167c33d45d6"
},
"history": []
}
```