Skip to main content

entra-mfa-ca-hardening

Deploy Entra ID MFA enforcement and Conditional Access policies to close the identity-security gap before go-live

Jump to install

Source facts

Repository
Insightpulseai/odoo
Last source activity
April 12, 2026 at 11:56
Detected SKILL.md language
English
Stars
6
Forks
2

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
entra-mfa-ca-hardening
description
Deploy Entra ID MFA enforcement and Conditional Access policies to close the identity-security gap before go-live
version
1.0
compatibility
{"hosts":["github-copilot","claude-code","codex-cli","cursor","gemini-cli"]}
tags
["security","governance","identity","odoo"]
# entra-mfa-ca-hardening **Impact tier**: P0 -- Security Exposure ## Purpose Close the identity-security gap where Entra ID MFA enforcement and Conditional Access policies are not yet deployed. The benchmark audit found: no Conditional Access policies, Security Defaults status unverified, no P1 license path documented. All operator and service accounts accessing Azure resources and Odoo ERP lack MFA enforcement through Entra. ## When to Use - Hardening identity posture before go-live. - Implementing Conditional Access policies for Odoo operator access. - Upgrading from Security Defaults to Conditional Access (requires Entra P1). - Responding to an audit finding about MFA coverage. ## Required Evidence (inspect these repo paths first) | Path | What to look for | |------|-----------------| | `infra/entra/app-roles-manifest.json` | App registrations, role definitions | | `infra/entra/role-tool-mapping.yaml` | Role-to-tool mappings for copilot | | `infra/ssot/azure/resources.yaml` | Key Vault entries (secrets for service principals) | | `docs/runbooks/ODOO18_GO_LIVE_CHECKLIST.md` | Identity/MFA line items | | `docs/audits/ODOO_AZURE_ENTERPRISE_BENCHMARK.md` | MFA/CA gap row | | `addons/ipai/ipai_security_frontdoor/middleware.py` | Current auth middleware | ## Microsoft Learn MCP Usage Run at least these three queries: 1. `microsoft_docs_search("Entra ID Security Defaults MFA enforcement")` -- confirms what Security Defaults provides and its limitations. 2. `microsoft_docs_search("Entra ID Conditional Access policy MFA require all users")` -- retrieves CA policy templates for MFA enforcement. 3. `microsoft_docs_search("Entra ID P1 license Conditional Access comparison Security Defaults")` -- clarifies the P1 upgrade path and what CA unlocks over Security Defaults. Optional deeper fetches: 4. `microsoft_docs_fetch("https://learn.microsoft.com/en-us/entra/identity/conditional-access/concept-conditional-access-policies")` 5. `microsoft_docs_search("Entra Conditional Access named locations trusted IP")` ## Workflow 1. **Inspect repo** -- Read `infra/entra/` files. Record existing app registrations, role definitions, and any CA policy stubs. Check middleware for token validation logic. 2. **Query MCP** -- Run the three searches above. Capture Security Defaults scope, CA policy JSON structure, P1 licensing requirements. 3. **Compare** -- Map current state (no CA policies, Security Defaults unverified) against Microsoft's recommended baseline (CA policies for all users, MFA for admin roles, device compliance for sensitive apps). 4. **Patch** -- Create or update: - `infra/entra/conditional-access-policies.json` with baseline CA policies. - `docs/runbooks/ODOO18_GO_LIVE_CHECKLIST.md` with MFA/CA verification steps. - `infra/entra/app-roles-manifest.json` if role definitions are incomplete. Document the P1 license upgrade decision in an ADR or the checklist. 5. **Verify** -- Confirm policy JSON is syntactically valid. Confirm the go-live checklist includes MFA verification steps. Confirm the middleware validates Entra tokens (not just basic auth). ## Outputs | File | Change | |------|--------| | `infra/entra/conditional-access-policies.json` | Baseline CA policy definitions | | `infra/entra/app-roles-manifest.json` | Complete app role definitions | | `docs/runbooks/ODOO18_GO_LIVE_CHECKLIST.md` | MFA/CA verification steps | | `addons/ipai/ipai_security_frontdoor/middleware.py` | Entra token validation (if missing) | | `docs/evidence/<stamp>/entra-mfa-ca-hardening/` | Policy JSON, MCP excerpts | ## Completion Criteria - [ ] Security Defaults status is documented (ON or OFF with justification). - [ ] At least one Conditional Access policy definition exists requiring MFA for all users accessing Azure portal and Odoo ERP. - [ ] P1 license upgrade path is documented with cost and timeline. - [ ] Go-live checklist includes explicit MFA verification steps. - [ ] `ipai_security_frontdoor` middleware validates Entra ID tokens (JWT issuer, audience, signature). - [ ] Evidence directory contains CA policy definitions and MCP query excerpts.
View on GitHub