SC-900 Practice Question: Describe the capabilities of Microsoft security solutions
Exhibit
{
"properties": {
"displayName": "Require MFA for Azure Management",
"policyType": "Custom",
"mode": "All",
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Authorization/roleAssignments"
},
{
"field": "Microsoft.Authorization/roleAssignments/roleDefinitionId",
"equals": "[parameters('managementRoles')]"
}
]
},
"then": {
"effect": "auditIfNotExists",
"details": {
"type": "Microsoft.Authorization/roleAssignments",
"existenceCondition": {
"field": "Microsoft.Authorization/roleAssignments/principalId",
"in": "[parameters('mfaEnabledPrincipals')]"
}
}
}
},
"parameters": {
"managementRoles": {
"type": "Array",
"defaultValue": ["8e3af657-a8ff-443c-a75c-2fe8c4bcb635"]
},
"mfaEnabledPrincipals": {
"type": "Array"
}
}
}
}Refer to the exhibit. You are evaluating a custom Azure Policy definition. The policy is intended to audit whether users assigned to a management role have MFA enabled. However, the policy is not triggering alerts for non-compliant users. What is the most likely cause?
⚠ Common exam trap
It's easy for candidates to assume the policy will automatically detect MFA status from Azure AD, but Azure Policy requires explicit parameter input to define the compliant state, and failing to populate that parameter silently disables the audit.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
The 'mfaEnabledPrincipals' parameter is not populated with the list of MFA-enabled users.
The policy definition includes a parameter named 'mfaEnabledPrincipals' that must be populated with the list of user object IDs who have MFA enabled. If this parameter is empty or not provided, the 'auditIfNotExists' effect cannot evaluate any users against the expected MFA status, resulting in no non-compliant alerts being triggered. Azure Policy relies on explicit parameter values to define the baseline for compliance evaluation.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✓
The 'mfaEnabledPrincipals' parameter is not populated with the list of MFA-enabled users.
Why this is correct
The 'mfaEnabledPrincipals' parameter is crucial for this policy's logic, as the 'existenceCondition' relies on it to identify principals who have MFA enabled. If this parameter is not populated with the correct list of MFA-enabled user principal IDs, the policy's 'where' clause cannot accurately determine which principals are compliant. Consequently, the policy will fail to correctly evaluate whether non-MFA-enabled users hold owner role assignments, rendering its compliance assessment ineffective.
- ✗
The policy mode is set to 'All' instead of 'Indexed'.
Why it's wrong here
The policy mode 'All' is correctly applied here because role assignments are management plane resources that exist at various scopes (subscription, resource group, resource) and do not support tags or locations. Unlike 'Indexed' mode, which is designed for trackable resources deployed within resource groups that support tags and locations, 'All' mode is appropriate for evaluating resource types like role assignments, policies, or resource groups themselves. Therefore, setting the mode to 'All' is the correct configuration for this type of policy evaluation.
- ✗
The policy only evaluates role assignments of type 'Microsoft.Authorization/roleAssignments' but not users.
Why it's wrong here
Azure Policy evaluates resource properties and resource types, not users directly as a distinct resource type within the policy definition. This policy specifically targets 'Microsoft.Authorization/roleAssignments', which are the resources that define who (the principal, which can be a user) has what access (the role) to what scope. The policy correctly examines the properties of these role assignment resources, such as 'principalId', to infer information about the associated users and their access, making its scope appropriate for the intended evaluation.
- ✗
The effect 'auditIfNotExists' should be 'deny' to trigger alerts.
Why it's wrong here
The 'auditIfNotExists' effect is designed to identify and report non-compliant resources in the Azure Policy compliance dashboard, effectively triggering alerts and reporting without blocking operations. It correctly serves the purpose of identifying existing non-compliant role assignments. Conversely, the 'deny' effect would actively prevent the creation or modification of any role assignment that violates the policy, which is a different operational goal focused on prevention rather than just identification and reporting of existing issues.
Go deeper
Related to this question
Learn chapter
Compliance Concepts
Key term
MFA
Multi-Factor Authentication (MFA) is a security method that requires a user to verify their identity using two or more different types of evidence, such as a password plus a code from a phone, before they can access an account or system.
Key term
Azure Policy
Azure Policy is a service in Microsoft Azure that lets you create, assign, and manage rules to ensure your resources stay compliant with your company standards and service-level agreements.
About these practice questions
This SC-900 question is part of Courseiva's 1,250-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This SC-900 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the SC-900 exam.