Skip to main content

EIDSCA sync

The EIDSCA tests in Maester are generated from the Entra ID Security Config Analyzer (EIDSCA). This page shows which values come from EIDSCA and which Maester adds, and compares Maester with the latest EIDSCA config.

How the EIDSCA tests are made

  1. Thomas Naunheim maintains the checks of the Entra ID Security Config Analyzer in the EIDSCA config of the Attack & Defense Playbook repository. It is the source of every check: what to read, the recommended value, the severity and the documentation.
  2. Maester keeps a copy in build/eidsca/EidscaConfig.json, so a build needs no network and reproduces the committed tests exactly.
  3. The EIDSCA config does not carry the classification every Maester test declares. Maester keeps it in build/eidsca/eidsca-test-metadata.json, chosen with the attribute rubric: FeatureAreaResourceTypeUserImpactImplementationCostMitreControlRelatedProduct.
  4. build/eidsca/Update-EidscaTests.ps1 generates tests/eidsca/Test.EIDSCA.<ID>.ps1 and .md and the internal functions that read the tenant value, for every check that has a recommended value.
  5. Every week, a workflow compares the EIDSCA config with Maester. While they differ, it keeps one issue and one pull request with the regenerated tests open, both assigned to the EIDSCA maintainer, and updates them. Merging the pull request closes the issue; the next difference starts a new pair.

Compare with EIDSCA

Downloads the EIDSCA config from GitHub in your browser and compares it with the copy and classification this site was built from.

Fields of a check

EIDSCA fieldWhere it goes in Maester
CheckIdId of the test (Test.EIDSCA.<ID>.ps1)
DisplayNameTitle, with the ControlName of its area
SeveritySeverity (Informational becomes Info)
RecommendedValueThe value the test passes on; a check without one is not generated
CurrentValueThe property the internal function Test-MtEidsca<ID> reads
DefaultValueDocumentation, and whether the value is compared as a number
SkipConditionThe skip in the test; an Entra ID licence skip becomes License
SkipReasonThe reason a skipped result shows
DescriptionTest description and Markdown
RecommendationMarkdown
HowToFixRemediation section of the Markdown
PortalDeepLinkLink to the admin center in the Markdown
MitreTacticMITRE ATT&CK section of the Markdown
MitreTechniqueMITRE ATT&CK section of the Markdown (Maester's Mitre attribute is its own)
MitreMitigationMITRE ATT&CK section of the Markdown

Fields of a control area

EIDSCA fieldWhere it goes in Maester
ControlNameStart of the title of each check
DescriptionMarkdown
DiscoveryDiscovery code that skip conditions read
GraphUriGraph request of Test-MtEidsca<ID>
GraphDocsUrlLink to the Graph documentation in the Markdown

The checks in Maester

Severity and recommended value come from the EIDSCA config; the other columns, except MitreTechnique, are Maester's classification.

CheckSeverityRecommended valueFeatureAreaImpact / costMitre (Maester)MitreTechnique (EIDSCA)Control
EIDSCA.AF01
Authentication Method - FIDO2 security key - State
Highenabledauthentication-methodsauthenticationLow / LowT1566.002(empty)nist-800-53-r5:IA-2(1), nist-800-53-r5:IA-2(2)
EIDSCA.AF02
Authentication Method - FIDO2 security key - Allow self-service set up
Hightrueauthentication-methodsauthenticationLow / LowT1566.002(empty)(empty)
EIDSCA.AF03
Authentication Method - FIDO2 security key - Enforce attestation
Hightrueauthentication-methodsauthenticationLow / LowT1098.005(empty)nist-800-53-r5:IA-5
EIDSCA.AF04
Authentication Method - FIDO2 security key - Enforce key restrictions
Lowtrueauthentication-methodsauthenticationLow / LowT1098.005(empty)nist-800-53-r5:IA-5
EIDSCA.AF05
Authentication Method - FIDO2 security key - Restricted
Lowtrueauthentication-methodsauthenticationLow / LowT1098.005(empty)nist-800-53-r5:IA-5
EIDSCA.AF06
Authentication Method - FIDO2 security key - Restrict specific keys
Mediumtrueauthentication-methodsauthenticationLow / LowT1098.005(empty)nist-800-53-r5:IA-5
EIDSCA.AG01
Authentication Method - General Settings - Manage migration
Low@('migrationComplete', '')authentication-methodsauthenticationLow / MediumNone(empty)nist-800-53-r5:CM-7
EIDSCA.AG02
Authentication Method - General Settings - Report suspicious activity - State
Mediumenabledauthentication-methodsauthenticationLow / LowT1621, T1078.004(empty)nist-800-53-r5:SI-4(5)
EIDSCA.AG03
Authentication Method - General Settings - Report suspicious activity - Included users/groups
Mediumall_usersauthentication-methodsauthenticationLow / LowT1621, T1078.004(empty)(empty)
EIDSCA.AM01
Authentication Method - Microsoft Authenticator - State
Highenabledauthentication-methodsauthenticationLow / LowT1110(empty)nist-800-53-r5:IA-2(1), nist-800-53-r5:IA-2(2)
EIDSCA.AM02
Authentication Method - Microsoft Authenticator - Allow use of Microsoft Authenticator OTP
Mediumfalseauthentication-methodsauthenticationMedium / LowT1566.002(empty)(empty)
EIDSCA.AM03
Authentication Method - Microsoft Authenticator - Require number matching for push notifications
Highenabledauthentication-methodsauthenticationLow / LowT1621(empty)nist-800-53-r5:IA-2(8), nist-800-53-r5:IA-2(1)
EIDSCA.AM04
Authentication Method - Microsoft Authenticator - Included users/groups of number matching for push notifications
Highall_usersauthentication-methodsauthenticationLow / LowT1621(empty)nist-800-53-r5:IA-2(8), nist-800-53-r5:IA-2(1)
EIDSCA.AM06
Authentication Method - Microsoft Authenticator - Show application name in push and passwordless notifications
Mediumenabledauthentication-methodsauthenticationLow / LowT1621(empty)nist-800-53-r5:IA-2(13), nist-800-53-r5:IA-2(1)
EIDSCA.AM07
Authentication Method - Microsoft Authenticator - Included users/groups to show application name in push and passwordless notifications
Mediumall_usersauthentication-methodsauthenticationLow / LowT1621(empty)nist-800-53-r5:IA-2(13), nist-800-53-r5:IA-2(1)
EIDSCA.AM09
Authentication Method - Microsoft Authenticator - Show geographic location in push and passwordless notifications
Mediumenabledauthentication-methodsauthenticationLow / LowT1621(empty)nist-800-53-r5:IA-2(13), nist-800-53-r5:IA-2(1)
EIDSCA.AM10
Authentication Method - Microsoft Authenticator - Included users/groups to show geographic location in push and passwordless notifications
Mediumall_usersauthentication-methodsauthenticationLow / LowT1621(empty)nist-800-53-r5:IA-2(13), nist-800-53-r5:IA-2(1)
EIDSCA.AP01
Default Authorization Settings - Enabled Self service password reset for administrators
Highfalseuser-settingsprivileged-accessLow / LowT1098(empty)nist-800-53-r5:IA-5
EIDSCA.AP04
Default Authorization Settings - Guest invite restrictions
Medium@('adminsAndGuestInviters','none')external-identitiesexternal-accessMedium / LowT1136.003(empty)nist-800-53-r5:AC-6(10)
EIDSCA.AP05
Default Authorization Settings - Sign-up for email based subscription
Mediumfalseuser-settingsaccess-controlLow / LowNone(empty)(empty)
EIDSCA.AP06
Default Authorization Settings - User can join the tenant by email validation
Mediumfalseuser-settingsaccess-controlLow / LowT1136.003(empty)nist-800-53-r5:AC-2
EIDSCA.AP07
Default Authorization Settings - Guest user access
Medium2af84b1e-32c8-42b7-82bc-daa82404023bexternal-identitiesexternal-accessLow / LowT1087.004, T1069.003(empty)nist-800-53-r5:AC-6
EIDSCA.AP08
Default Authorization Settings - User consent assignments match the restricted or Microsoft recommended baseline
High0app-consentapplicationsMedium / LowT1528, T1566.002T1566.002, T1078, T1550, T1528nist-800-53-r5:AC-6(10), nist-800-53-r5:CM-5
EIDSCA.AP09
Default Authorization Settings - Allow user consent on risk-based apps
Highfalseapp-consentapplicationsLow / LowT1528, T1566.002T1566.002, T1078, T1550, T1528nist-800-53-r5:AC-6(10), nist-800-53-r5:CM-5
EIDSCA.AP10
Default Authorization Settings - Default User Role Permissions - Allowed to create Apps
Mediumfalseuser-settingsapplicationsLow / LowT1098.001, T1528T1566.002, T1078, T1550, T1528nist-800-53-r5:AC-6(10), nist-800-53-r5:CM-5
EIDSCA.AP12
Default Authorization Settings - Default User Role Permissions - Allowed to create Tenants
Mediumfalseuser-settingsaccess-controlLow / LowNone(empty)nist-800-53-r5:AC-6, nist-800-53-r5:CM-7
EIDSCA.AP14
Default Authorization Settings - Default User Role Permissions - Allowed to read other users
Infotrueuser-settingsaccess-controlLow / LowNone(empty)nist-800-53-r5:AC-3
EIDSCA.AP15
Default Authorization Settings - Default User Role Permissions - Allowed to create agent identity blueprints
Mediumfalseagent-identitiesaiLow / LowT1136.003(empty)nist-800-53-r5:AC-6
EIDSCA.AS04
Authentication Method - SMS - Use for sign-in
Highfalseauthentication-methodsauthenticationLow / LowT1111, T1566.002(empty)nist-800-53-r5:CM-7, nist-800-53-r5:IA-5
EIDSCA.AT01
Authentication Method - Temporary Access Pass - State
Mediumenabledauthentication-methodsauthenticationLow / LowNone(empty)(empty)
EIDSCA.AT02
Authentication Method - Temporary Access Pass - One-time
Mediumtrueauthentication-methodsauthenticationLow / LowT1078.004(empty)nist-800-53-r5:IA-5
EIDSCA.AV01
Authentication Method - Voice call - State
Highdisabledauthentication-methodsauthenticationMedium / MediumT1621(empty)nist-800-53-r5:CM-7, nist-800-53-r5:IA-5
EIDSCA.CP01
Default Settings - Consent Policy Settings - Group owner consent for apps accessing data
HighFalseapp-consentapplicationsLow / LowT1528, T1566.002T1566.002, T1078nist-800-53-r5:AC-6(10), nist-800-53-r5:CM-5
EIDSCA.CP03
Default Settings - Consent Policy Settings - Block user consent for risky apps
Hightrueapp-consentapplicationsLow / LowT1528, T1566.002T1566.002, T1078nist-800-53-r5:AC-6(10), nist-800-53-r5:CM-5
EIDSCA.CP04
Default Settings - Consent Policy Settings - Users can request admin consent to apps they are unable to consent to
Hightrueapp-consentapplicationsLow / LowT1528, T1566.002T1566.002, T1078nist-800-53-r5:CM-4
EIDSCA.CR01
Consent Framework - Admin Consent Request - Policy to enable or disable admin consent request feature
Hightrueapp-consentapplicationsLow / LowT1528, T1566.002T1078, T1528, T1550, T1550.001, T1566.002nist-800-53-r5:CM-4
EIDSCA.CR02
Consent Framework - Admin Consent Request - Reviewers will receive email notifications for requests
Lowtrueapp-consentapplicationsLow / LowNoneT1078, T1528, T1550, T1550.001, T1566.002(empty)
EIDSCA.CR03
Consent Framework - Admin Consent Request - Reviewers will receive email notifications when admin consent requests are about to expire
Lowtrueapp-consentapplicationsLow / LowNoneT1078, T1528, T1550, T1550.001, T1566.002(empty)
EIDSCA.CR04
Consent Framework - Admin Consent Request - Consent request duration (days)
Low<=30app-consentapplicationsLow / LowNoneT1078, T1528, T1550, T1550.001, T1566.002(empty)
EIDSCA.CR05
Consent Framework - Admin Consent Request - Admin consent reviewers have valid query scopes
Lowtrueapp-consentapplicationsLow / LowNoneT1078, T1528, T1550, T1550.001, T1566.002(empty)
EIDSCA.PR01
Default Settings - Password Rule Settings - Password Protection - Mode
HighEnforcepassword-protectionauthenticationLow / LowT1110T1110nist-800-53-r5:IA-5(1)
EIDSCA.PR02
Default Settings - Password Rule Settings - Password Protection - Enable password protection on Windows Server Active Directory
HighTruepassword-protectionauthenticationLow / LowT1110T1110nist-800-53-r5:IA-5(1)
EIDSCA.PR03
Default Settings - Password Rule Settings - Enforce custom list
MediumTruepassword-protectionauthenticationLow / LowT1110T1110nist-800-53-r5:IA-5(1)
EIDSCA.PR05
Default Settings - Password Rule Settings - Smart Lockout - Lockout duration in seconds
Medium>=60password-protectionauthenticationLow / LowT1110T1110nist-800-53-r5:AC-7
EIDSCA.PR06
Default Settings - Password Rule Settings - Smart Lockout - Lockout threshold
Medium<=10password-protectionauthenticationLow / LowT1110T1110nist-800-53-r5:AC-7
EIDSCA.ST08
Default Settings - Classification and M365 Groups - M365 groups - Allow Guests to become Group Owner
Mediumfalsegroupsexternal-accessLow / LowT1098(empty)nist-800-53-r5:AC-6
EIDSCA.ST09
Default Settings - Classification and M365 Groups - M365 groups - Allow Guests to have access to groups content
LowTruegroupsexternal-accessLow / LowNone(empty)nist-800-53-r5:AC-6, nist-800-53-r5:AC-21