Skip to content

Identity & Governance -- Master Notes

Exam Weight: 20-25%

Unified reference merging Scott Duffy (Udemy) and John Savill (YouTube Masterclass) with official Microsoft Learn documentation. Organized by the AZ-104 skills measured.


1. Microsoft Entra ID -- The Foundation

What Is Entra ID?

Microsoft Entra ID (formerly Azure Active Directory) is a cloud-native identity provider. It is the single source of truth for authentication across Azure Portal, Microsoft 365, and thousands of SaaS apps. The goal: one login to rule them all (Single Sign-On).

Exam Trap

Entra ID and on-premises Active Directory Domain Services (AD DS) are completely different systems that happen to share a name.

FeatureAD DS (On-Prem)Entra ID (Cloud)
PurposeClosed network identityCloud / SaaS identity
ProtocolsKerberos, NTLM, LDAPOAuth 2.0, OIDC, SAML
PortsWide rangeHTTPS only (443)
StructureOrganizational Units (OU tree)Flat (no hierarchy)
ManagementGroup PolicyConditional Access, Intune
Query languageLDAPMicrosoft Graph API

Most real-world companies run a hybrid setup -- AD DS handles local resources while Entra ID handles cloud. They sync via Entra Connect or Cloud Sync.

Account vs Tenant vs Subscription

These are three separate concepts:

ConceptWhat It IsAnalogy
AccountYour identity (email + password, or managed identity)Employee badge
TenantYour organization's Entra ID directoryThe company itself
SubscriptionBilling arrangement attached to a tenantCompany credit card
  • One tenant can have many subscriptions.
  • One subscription belongs to exactly one tenant (but can be moved).
  • One custom domain can belong to only one tenant.

Licensing Tiers

Pricing is per-user per-month. Different users can have different tiers within the same tenant.

FeatureFreeP1 (~$6/user)P2 (~$9/user)
Basic user & group mgmtYesYesYes
SLA (money-back guarantee)NoYesYes
Conditional AccessNoYesYes
Dynamic GroupsNoYesYes
SSPR (full + writeback)NoYesYes
Identity Protection (risk)NoNoYes
Access ReviewsNoNoYes
PIM (just-in-time admin)NoNoYes

Cost Strategy

P2 for admins and security-sensitive roles, P1 for power users needing Conditional Access, Free for basic users. You do not need to license everyone at the same tier.

Tenant Types

TypePurposeAuth MethodsPricing
Workforce (default)Employees, B2B guests, hybridEntra, federated, B2BPer-user license
External (CIAM)Customer-facing appsSocial logins, email OTP, enterprise IDPMAU (monthly active users)

2. Manage Microsoft Entra Users and Groups

Creating Users

Three methods:

text
Entra ID > Users > + New user > Create user
Required fields: Username + Display Name only
Azure auto-generates a temporary password
powershell
New-MgUser -DisplayName "Walter White" `
  -UserPrincipalName "walter@contoso.com" `
  -PasswordProfile @{ Password = "TempP@ss123!"; ForceChangePasswordNextSignIn = $true } `
  -AccountEnabled $true `
  -MailNickname "wwhite"
bash
az ad user create \
  --display-name "Walter White" \
  --user-principal-name "walter@contoso.com" \
  --password "TempP@ss123!" \
  --force-change-password-next-sign-in true

Key Facts

  • A brand new user has zero permissions. They can log in but see nothing until assigned roles or group memberships.
  • Free tier supports up to 500,000 directory objects (users + groups + contacts).
  • Usage Location must be set on a user before you can assign a license.

Member vs Guest Users

AspectMemberGuest
Identity sourceYour domainExternal email (Gmail, corporate, etc.)
Created byAdmin createsAdmin invites (must accept)
Default directory accessFull readLimited visibility
Governed bySame Conditional Access / MFA / RBACSame rules apply
UPN formatuser@contoso.comuser_fabrikam.com#EXT#@contoso.onmicrosoft.com

Groups

Two group types:

  • Security Group -- for RBAC, resource access, Conditional Access targeting.
  • Microsoft 365 Group -- for collaboration (Teams, SharePoint, shared mailbox).

Three membership types:

  • Assigned -- manual add/remove. Works on Free tier.
  • Dynamic User -- attribute-based rules. Requires P1.
  • Dynamic Device -- device attribute rules. Requires P1.
Dynamic Group Rule Examples
text
# All users in the Quantum department
user.department -eq "Quantum"

# All users hired in the last year
user.employeeHireDate -ge now().addDays(-365)

# All users with Hero job titles
user.jobTitle -startsWith "Hero"

Dynamic groups are rule-based, not event-based: Azure periodically re-evaluates membership (not instant). You cannot assign Entra ID roles to dynamic groups.

Managing Licenses

  • Licenses are purchased at the tenant level, then assigned to individual users.
  • Usage Location gotcha: Must be set before license assignment (some services are restricted by country).
  • Assign via: Portal (user properties), Groups (group-based licensing), PowerShell, Graph API.

External (Guest) Users -- B2B Collaboration

Invite path: Entra ID > Users > + New user > Invite external user.

Guests follow the same security rules as members: Conditional Access applies, MFA can be enforced, permissions must be explicitly granted, access reviews can include guests.

Cross-Tenant Access Settings provide fine-grained control:

  • Inbound: Which external users can access your tenant, which apps, trust their MFA?
  • Outbound: Which of your users can access other tenants, which apps?
  • Trust settings: Trust partner MFA (eliminates double-MFA), trust compliant devices, trust Hybrid Join.

Self-Service Password Reset (SSPR)

Lets users reset their own passwords without an IT ticket. Available at https://aka.ms/sspr.

SettingOptions
Enabled forNone / Selected groups / All
Methods required1 or 2
Available methodsAuthenticator, Phone, Email, Security Questions
RegistrationCan force on next sign-in

Important

  • Admins always have SSPR enabled with mandatory 2-factor. Not configurable.
  • SSPR for regular users requires P1/P2.
  • Email verification is useless if the user's Azure email IS their primary email (circular). Use Authenticator app.

3. Authentication & MFA

Authentication Proof Types

CategoryExamples
Something you knowPassword, PIN
Something you havePhone, FIDO2 key, smart card
Something you areFingerprint, face, retina

MFA = two or more factors from different categories. MFA blocks 99.2% of attacks.

Authentication Strength Spectrum

From weakest to strongest:

LevelMethodPhishing Resistant?
1. WorstPassword onlyNo
2. BetterPassword + SMS/PhoneNo (SIM swap vulnerable)
3. GoodPassword + Authenticator appNo (MFA fatigue attacks)
4. GreatPasswordless -- Hello, Authenticator, FIDO2Depends on method
5. BestPhishing-resistant -- Hello, FIDO2, CertificateYes

Entra Built-in Authentication Strengths

StrengthIncluded Methods
MFAAll MFA methods
Passwordless MFAHello, Passkeys, Certificate, Authenticator
Phishing-resistant MFAHello, Passkeys, Certificate (NOT Authenticator)

Custom authentication strengths can be created and used in Conditional Access Grant controls.

Hybrid Authentication Options

For organizations syncing from on-prem AD:

FeaturePassword Hash Sync (PHS)Pass-Through Auth (PTA)Federation (ADFS)
Auth happens atEntra (cloud)On-prem DCExternal IDP
On-prem dependencyNoneYes (agents)Yes (ADFS servers)
ComplexityLowMediumHigh
Leaked credential detectionYesNoNo
RecommendationBest choiceGoodAvoid if possible

TIP

Always enable PHS even if using PTA or Federation -- it serves as failback for disaster recovery and enables leaked credential detection.

Temporary Access Pass (TAP)

Solves the "chicken-and-egg" problem of MFA registration. Time-limited, optionally one-time-use code.

Workflow: Admin creates TAP -> share securely -> user authenticates -> user sets up passwordless -> TAP expires.

Enables fully passwordless onboarding where the user never knows a password.


4. Conditional Access -- The Zero Trust Engine

Requires Entra ID P1

Every access request is evaluated based on: who, what app, where from, which device, what risk level.

Policy Structure

Assignments (IF):

  • Users / Groups (include and exclude)
  • Cloud Apps or Actions (all apps, selected apps, or user actions like "Register security info")
  • Conditions: Locations (IP/country/GPS), Device platforms, Sign-in risk, User risk, Client apps

Access Controls (THEN):

  • Grant: Block, or Grant with requirements (MFA, compliant device, Hybrid Join, approved app, authentication strength)
  • Session: Sign-in frequency, persistent browser, app-enforced restrictions, Defender for Cloud Apps proxy

Common Scenarios

ScenarioTargetConditionControl
MFA for all adminsAdmin rolesAnyRequire MFA (exclude break-glass)
Block legacy authAll usersClient apps = "Other clients"Block
Compliant device for sensitive appsAll usersSelected appsRequire device compliance
Location-basedAll usersOutside named locationsRequire MFA or Block

Named Locations

Defined by: IP ranges (CIDR blocks), Countries, or GPS coordinates (from Authenticator app).

Risk-Based Policies (Requires P2)

Risk TypeDetectsResponse
Sign-in riskAnonymous IP, atypical travel, password spray, malicious IPLow=allow, Med=MFA, High=block
User riskLeaked credentials (dark web), anomalous behaviorLow=allow, Med=password change, High=block

Continuous Access Evaluation (CAE)

Traditional tokens are valid for ~1 hour regardless of account state changes. CAE enables near-real-time revocation on critical events: user disabled, password change, MFA change, location policy violation. Reduces token theft window from ~1 hour to minutes.

Policy Evaluation Rules

  • All matching policies are evaluated and combined.
  • If any policy blocks, access is blocked (block wins).
  • All grant requirements from all matching policies must be satisfied.
  • Exclusions override includes.

Security Defaults vs Conditional Access

FeatureSecurity DefaultsConditional Access
LicenseFreeP1 required
GranularityAll-or-nothingFine-grained
What it doesMFA for all, block legacy authCustom policies
When to useNo P1 license availableAlways prefer if you have P1

5. Manage Access to Azure Resources -- RBAC

The RBAC Formula

WHO (Security Principal) + WHAT (Role Definition) + WHERE (Scope) = Role Assignment

Security Principals: User, Group, Service Principal, Managed Identity. Best practice: Assign roles to Groups, not individual users.

The Three Core Roles

RoleCan DoUse Case
ReaderView onlyAuditors, reporting
ContributorRead + Write + DeleteDevelopers, operators
OwnerEverything + assign roles to othersAdmins

Plus User Access Administrator -- can manage access only (no resource operations).

Exam Trap: Two Separate Role Systems

Entra ID RolesAzure RBAC Roles
Manage the directory (users, groups, licenses)Manage Azure resources (VMs, Storage, Networks)
~90 built-in rolesHundreds of built-in roles
Found at: Entra ID > Roles and administratorsFound at: Resource > Access Control (IAM)

Global Administrator does NOT automatically have Azure resource access. These are separate systems. A Global Admin must explicitly elevate via "Access management for Azure resources" in Entra ID Properties to get User Access Administrator at Root MG.

Scope and Inheritance

Permissions cascade downward, never upward:

Management Group
  └── Subscription
       └── Resource Group
            └── Resource
  • Owner at subscription = Owner of everything below.
  • Inherited permissions cannot be blocked or removed at a lower scope.
  • Multiple roles are additive (union of all permissions). You cannot subtract permissions.
  • RBAC has no deny capability (Azure Policy does).
  • Limit: 4,000 role assignments per subscription.

Control Plane vs Data Plane

Exam Trap

Resource permissions are NOT data permissions.

TypeExample RoleWhat It Does
Control planeStorage Account ContributorCreate/delete/configure the storage account
Data planeStorage Blob Data ContributorRead/write/delete blobs inside the account

Being Owner of a storage account does not let you read blobs. You need a separate data role. Data plane roles typically have "Data" in the name.

Custom Roles

Structure: Actions, NotActions, DataActions, NotDataActions, AssignableScopes.

WARNING

NotActions is NOT a deny -- it simply excludes from a wildcard. If another role grants the permission, the user still has it.

  • Limit: 5,000 custom roles per tenant.
  • Custom Entra ID roles require P1/P2. Custom Azure RBAC roles work on any tier.

ABAC (Attribute-Based Access Control)

Adds conditions to role assignments for fine-grained data access. Uses attributes on both the user (custom security attributes in Entra ID) and the resource (e.g., blob index tags).

Example: User with PrimaryProject=Alpha can only access blobs tagged Project=Alpha.

Current limitations: only works with blob and queue data roles on Storage Accounts; must use Entra auth (not access keys).


6. Authorization -- PIM & Access Reviews

Privileged Identity Management (PIM)

Requires Entra ID P2

Just-in-time privileged access with auditing and approval workflows.

TermMeaning
EligibleUser CAN activate the role (but doesn't have it yet)
ActiveUser HAS the role right now
ActivateTransition from eligible to active

Settings per role:

  • Activation duration: 30 min - 24 hours
  • Require justification
  • Require approval (with approver list)
  • Require MFA or Conditional Access
  • Email notifications on activation

Best practices: Make most assignments eligible (not permanent), set short activation windows, require justification, enable notifications. PIM works for both Entra ID roles and Azure RBAC roles.

Emergency Access (Break-Glass Accounts)

  • Cloud-only accounts excluded from all Conditional Access.
  • MFA via hardware FIDO2 key stored in a safe.
  • Very long password stored securely.
  • Alert on any use. Never used for daily work. Tested quarterly.

Access Reviews

Automated review of group membership, app assignments, Entra roles, Azure roles.

  • Reviewer types: Manager, Self, Specific users, Group owners.
  • Auto-actions: Remove access if reviewer doesn't respond, apply results automatically.
  • Recurrence: one-time, weekly, monthly, quarterly.

7. Manage Azure Subscriptions & Governance

The Azure Hierarchy

Entra ID Tenant
  └── Root Management Group (one per tenant, cannot be deleted)
       └── Management Groups (up to 6 levels deep, 10,000 per tenant)
            └── Subscriptions
                 └── Resource Groups (up to 980 per subscription)
                      └── Resources

Governance Inheritance Rules

Governance TypeFlows DirectionApplied At
RBACDownMG, Sub, RG, Resource
PolicyDownMG, Sub, RG
LocksDownSub, RG, Resource
BudgetsAggregate UpMG, Sub, RG
TagsDo NOT inheritSub, RG, Resource

Management Groups

  • Root MG: one per tenant, cannot be deleted or moved, display name CAN be changed.
  • Max depth: 6 levels below root.
  • Limit: 10,000 management groups per tenant.
  • Use cases: apply policies across multiple subscriptions, organize by department/environment/geography.

Subscriptions

FactDetail
TrustExactly ONE Entra tenant
Moving to another tenantPossible but loses all RBAC and managed identities
RG limit980 per subscription
Role assignment limit4,000 per subscription
TypesFree Trial, Pay-as-you-go, Enterprise Agreement, Dev/Test, Sponsorship

Resource Groups

FactDetail
NestingNot allowed -- flat within a subscription
LocationHas a region (metadata only); resources inside can be in any region
LifecycleGroup things that get created/deleted together
RenamingCannot rename -- create new RG and move resources
Cross-RG communicationResources CAN communicate across RGs (not a network boundary)

8. Azure Policy

Policy vs RBAC

AspectRBACPolicy
ControlsWHO can do actionsHOW resources must be configured
Default stanceDeny all (must grant)Allow all (must restrict)
Can deny?NoYes
Applied toUsers / appsResources

Policy Effects

Evaluation order: Disabled -> Append -> Modify -> Deny -> Audit -> DINE/AINE.

EffectBehavior
DenyBlock non-compliant creation/update
AuditAllow but flag as non-compliant
ModifyChange properties during create/update
DeployIfNotExists (DINE)Auto-deploy missing related resource
AuditIfNotExists (AINE)Audit if related resource is missing
AppendAdd properties (deprecated -- use Modify)
DisabledPolicy exists but does not run

Common Built-in Policies

  • Allowed locations (restrict regions)
  • Allowed VM SKUs (restrict sizes)
  • Require tags on resources
  • Inherit tags from resource group
  • Require HTTPS on storage accounts

Initiatives (Policy Sets)

Bundle multiple policies together. Built-in examples: Azure Security Benchmark, CIS Benchmark, ISO 27001, NIST SP 800-53.

Policy Evaluation Timing

  • Immediate on resource create/update.
  • Within 30 minutes on new policy assignment.
  • Full cycle every 24 hours.
  • Manual on-demand trigger available.

Remediation Tasks

For Modify and DINE policies, existing non-compliant resources need a remediation task. These policies require a managed identity with appropriate permissions.

Policy Exemptions

Two types:

  • Waiver -- permanent exception.
  • Mitigated -- compliance achieved through another mechanism.

Both can have expiry dates.


9. Resource Locks

Prevent accidental deletion or modification.

Lock TypeCan Modify?Can Delete?
ReadOnlyNoNo
CanNotDeleteYesNo

Critical Distinction

Locks are control plane only. They do NOT stop data plane operations. A locked storage account still allows blob uploads/deletions inside it.

  • Locks can be applied at subscription, resource group, or resource level.
  • Locks inherit downward and are cumulative.
  • Only Owner at the scope can remove a lock.
  • Some services auto-create locks (Azure Backup, Site Recovery).

10. Resource Tags

Key-value pairs for metadata, filtering, billing, and automation.

FactDetail
Max tags per resource50 (some resources: 15)
Tag name max length512 characters
Tag value max length256 characters
InheritanceNone by default -- use Policy to enforce
Applied toSubscriptions, Resource Groups, Resources (NOT Management Groups)

Recommended minimum tags: Environment, Owner, CostCenter, Application, BusinessUnit, Criticality.

Tags + Cost Management: Filter cost reports by tag (e.g., show only production costs).

Tags + Policy: Enforce with built-in policies:

  • "Require a tag on resources" (Deny effect)
  • "Inherit a tag from resource group" (Modify effect)
  • "Add or replace tag on resources" (Modify effect)

11. Cost Management

Cost Analysis

Views: accumulated costs, daily costs, cost by resource/service/tag. Group by: resource group, resource type, location, tag, subscription.

Exam Tip

Different Azure regions have different prices. Japan and Brazil typically cost more than US East.

Budgets

WARNING

Budgets are alerts, not hard limits. They do NOT stop spending.

Two alert types:

  • Actual -- triggers when you have spent X% of the budget.
  • Forecasted -- triggers when you are projected to exceed the budget.

Alerts can trigger Action Groups: email, SMS, webhook, Azure Function, Logic App.

Azure Advisor -- Cost Recommendations

Free built-in recommendations across five pillars: Reliability, Security, Performance, Cost, Operational Excellence.

Cost suggestions: right-size VMs, shutdown idle resources, use reservations, delete unused resources.

Cost Savings Options

OptionSavingsFlexibilityBest For
Reservations30-72%Locked to SKU + regionPredictable steady-state
Savings Plan15-65%Any compute, any regionVariable compute usage
Hybrid BenefitUp to 40-55%Existing licensesOrganizations with SA
Spot VMsUp to 90%Can be evicted anytimeBatch / fault-tolerant

12. Identity Objects & Synchronization

Service Principals vs Managed Identities

FeatureService PrincipalManaged Identity
Use caseExternal apps, CI/CD pipelinesAzure-to-Azure resource access
CredentialsSecret, Certificate, or FederatedNone (Azure manages tokens)
RotationYou manageAutomatic
Security rankingGoodBest

Managed Identity types:

  • System-Assigned: tied to one resource, deleted when resource is deleted.
  • User-Assigned: independent lifecycle, can be shared across multiple resources.

Federated Credentials (Workload Identity Federation): Exchange tokens from a trusted external IDP (e.g., GitHub Actions OIDC) for an Entra access token. No secrets stored externally.

Synchronization from AD

FeatureEntra Connect SyncCloud Sync
ArchitectureWindows server requiredLightweight agent
Multi-forest (disconnected)NoYes
Pass-through AuthYesNo
WritebackFullLimited
RecommendationLegacyUse for new deployments

Topology rules:

  • One tenant to one sync engine.
  • One AD forest can sync to multiple tenants (via multiple sync instances).
  • Multiple forests can sync to one tenant.

Devices

StateSign-in AccountManagementBest For
RegisteredPersonal (MSA)MDM optionalBYOD
JoinedEntra accountFull MDMCorporate owned
Hybrid JoinedAD + EntraGPO + MDMExisting AD environment

13. Exam Quick Reference

Key Limits to Memorize

LimitValue
Management Groups per tenant10,000
MG hierarchy depth6 levels below root
Resource Groups per subscription980
Role assignments per subscription4,000
Custom roles per tenant5,000
Tags per resource50 (some: 15)
Tag name max length512 chars
Tag value max length256 chars
Directory objects (Free tier)500,000

Exam Gotchas -- Quick Fire

  1. Contributor cannot assign roles -- only Owner can.
  2. Resource Owner =/= Data Owner -- separate data plane roles needed.
  3. Permissions are additive -- you can only add, never subtract via RBAC.
  4. Tags do NOT inherit -- you need Azure Policy.
  5. Locks are control plane only -- data operations still work.
  6. Subscription move to new tenant loses all RBAC and managed identities.
  7. Dynamic groups cannot have Entra roles assigned to them.
  8. SSPR for admins is always on with 2-factor. Not configurable.
  9. One custom domain = one tenant. Cannot share across tenants.
  10. Budget alerts do NOT stop spending -- they are notifications only.
  11. Policy Deny beats RBAC permissions -- even an Owner can be blocked by Policy.
  12. Global Admin has no Azure resource access by default -- must explicitly elevate.
  13. Security Defaults and Conditional Access are mutually exclusive -- disable defaults to use CA.
  14. NotActions is not a deny -- it just excludes from a wildcard match.
  15. CAE reduces token theft window from ~1 hour to minutes.

Sources: Scott Duffy (Udemy AZ-104), John Savill (AZ-104 Masterclass), Microsoft Learn AZ-104 Study Guide

Released under the MIT License.