Microsoft Entra ID Administration: Complete Practical Course — Matching the Entra Admin Center & SC-300 Certification

📘 Course Guide

Microsoft Entra ID Administration: Complete Practical Course — Matching the Entra Admin Center & SC-300 Certification

This course guide maps directly to the Microsoft Entra Admin Center (entra.microsoft.com) — every blade in the left navigation is covered here as a practical module. Whether you are preparing for the SC-300: Microsoft Identity and Access Administrator certification or managing a live Entra ID tenant, this guide delivers hands-on knowledge, real admin tasks, and Microsoft Graph PowerShell commands for every functional area.

The guide covers the full Entra Admin Center — Users, Groups, External Identities, Devices, Roles & Admins, Conditional Access, Authentication Methods & MFA, Identity Protection, Privileged Identity Management (PIM), Access Reviews, Entitlement Management, Lifecycle Workflows, and Monitoring — including the latest 2025–2026 updates: Entra ID Governance SKU, Passkey (FIDO2) enhancements, Global Secure Access (SSE), and Entra Verified ID integration.

🗺️ Course Module Map

1

Entra Admin Center Overview

Dashboard, navigation structure, tenant settings, licensing tiers (Free/P1/P2/Governance), Identity Secure Score

2

Users — All Users & Bulk Management

User properties, create/delete/restore, bulk operations, password reset, user settings, stale account detection

3

Groups — Security & M365 Groups

Group types, static vs dynamic membership, naming policy, expiration, group settings

4

External Identities & B2B

Cross-tenant access settings, guest invite settings, identity providers, OTP, B2B Direct Connect

5

Devices — Registration & Settings

Entra Registered vs Entra Joined vs Hybrid Joined, device settings, stale device cleanup

6

Roles & Admins (RBAC)

Built-in roles, custom roles (P1), administrative units, scope-limited administration

7

Conditional Access

CA policy anatomy, named locations, authentication strengths, What If tool, common policy templates

8

Authentication Methods & MFA

FIDO2 passkeys, Microsoft Authenticator, TOTP, TAP, SSPR, password protection, passwordless

9

Identity Protection

Sign-in risk, user risk, risk levels, risk detections, risk-based CA policies, risky user remediation

10

Identity Governance — PIM & Access Reviews

PIM eligible vs active, activation workflow, access reviews, entitlement management, lifecycle workflows

11

Monitoring — Logs & Health

Sign-in logs, audit logs, provisioning logs, Identity Secure Score, Entra Health, workbooks

12

SC-300 Certification Alignment

Exam domains, skill weightings, scenario tips, licensing prerequisites, and study resources

🏠 Module 1: Entra Admin Center Overview

The Microsoft Entra Admin Center at entra.microsoft.com is the unified management portal for all identity and access workloads across Microsoft Entra — including Entra ID (formerly Azure Active Directory), Permissions Management, Verified ID, and Global Secure Access. It replaced the older Azure AD blade in the Azure portal as the primary identity management interface.

Entra ID Licensing Tiers

Tier Included In Key Features
Entra ID Free All Microsoft 365 plans User & group management, basic SSO, per-user MFA (legacy), basic self-service password change for cloud users
Entra ID P1 M365 E3, EMS E3, standalone Conditional Access, dynamic groups, SSPR with on-prem writeback, Administrative units, custom roles, Hybrid Entra Join, Application Proxy, Group-based licensing
Entra ID P2 M365 E5, EMS E5, standalone Everything in P1 + Identity Protection (risk policies, risky user/sign-in), Privileged Identity Management (PIM), Access Reviews
Entra ID Governance Add-on to M365 E3/E5 or Entra P1/P2 Entitlement Management (access packages), enhanced Access Reviews, Lifecycle Workflows (Joiner/Mover/Leaver automation), PIM for Groups
👤 Identity
🛡️ Protection
⚖️ Governance
📊 Monitoring & health
🌐 Global Secure Access
🔒 Permissions management
✅ Verified ID
🛠️ Workload identities

💡 Identity Secure Score — Your Governance Health Indicator

The Identity Secure Score (found under Protection → Identity Secure Score) gives your tenant a percentage score based on how many Microsoft-recommended security controls are implemented. It directly maps to SC-300 best practices — enabling MFA, blocking legacy auth, enabling Identity Protection risk policies, and configuring PIM are the highest-impact score improvements. Use it as your implementation checklist.

👤 Module 2: Users — All Users & Bulk Management

The Users blade is the primary identity management interface in Entra ID. Every licensed user, guest account, and service account appears here with full property access, bulk operation support, and password management capabilities.

Key User Properties

Property Description Key Values
User type Distinguishes internal org members from external guests Member (internal), Guest (B2B external), Service principal
Account enabled Whether the user can sign in True / False — disabling blocks all access immediately without deleting the account
Directory synced Whether the account is synchronised from on-premises AD via Entra Connect or Cloud Sync Yes (synced — source of authority is on-prem) / No (cloud-only)
Assigned licences Microsoft 365 and Entra licences assigned to the user Direct assignment or group-based licensing (preferred for scale)
Authentication methods MFA methods registered by the user (Authenticator app, FIDO2, phone, etc.) Visible per-user under Authentication methods tab — critical for MFA support
Sign-in activity Last interactive and non-interactive sign-in date/time — used to detect stale accounts Requires Entra ID P1 to view in admin center; available in Graph for all tenants
1

Manage Users — Inventory, Create, Disable & Detect Stale Accounts

Export all users, create new cloud-only users, disable inactive accounts, and identify accounts that have not signed in for 90 days using Microsoft Graph PowerShell.

Microsoft Graph PowerShell

Connect-MgGraph -Scopes "User.ReadWrite.All","AuditLog.Read.All"

# Export all users with key properties
Get-MgUser -All -Property DisplayName,UserPrincipalName,AccountEnabled,UserType,CreatedDateTime,AssignedLicenses,Department,JobTitle |
  Select-Object DisplayName,UserPrincipalName,AccountEnabled,UserType,Department,JobTitle |
  Export-Csv -Path "AllUsers.csv" -NoTypeInformation

# Create a new cloud-only user
$PasswordProfile = @{
  Password                      = "TempP@ss2026!"
  ForceChangePasswordNextSignIn = $true
}
New-MgUser `
  -DisplayName "Jane Smith" `
  -UserPrincipalName "jane.smith@contoso.com" `
  -PasswordProfile $PasswordProfile `
  -AccountEnabled $true `
  -MailNickname "jane.smith" `
  -Department "Finance" `
  -JobTitle "Financial Analyst"

# Disable a user (blocks sign-in, preserves account and data)
Update-MgUser -UserId "jane.smith@contoso.com" -AccountEnabled $false

# Detect stale accounts (no sign-in for 90+ days, still enabled)
$Cutoff = (Get-Date).AddDays(-90).ToString("yyyy-MM-ddTHH:mm:ssZ")
Get-MgUser -All `
  -Filter "signInActivity/lastSignInDateTime le $Cutoff and accountEnabled eq true" `
  -Property DisplayName,UserPrincipalName,SignInActivity,AccountEnabled |
  Select-Object DisplayName,UserPrincipalName,@{N="LastSignIn";E={$_.SignInActivity.LastSignInDateTime}} |
  Export-Csv -Path "StaleUsers.csv" -NoTypeInformation

# Export all guest users for access review
Get-MgUser -All -Filter "userType eq 'Guest'" -Property DisplayName,UserPrincipalName,ExternalUserState,CreatedDateTime |
  Export-Csv -Path "GuestUsers.csv" -NoTypeInformation

👥 Module 3: Groups — Security & Microsoft 365 Groups

Groups in Entra ID control access assignment, licence management, policy targeting, and collaboration scope. Understanding the four group types and the difference between static and dynamic membership is foundational for both daily operations and the SC-300 exam.

Group Types in Entra ID

Group Type Security Enabled Mail Enabled Use Case
Security group Yes No Assign access to apps, resources, SharePoint sites, Intune policies, CA policies, and licences
Microsoft 365 Group Yes (optional) Yes Collaboration workspaces — teams, shared mailbox, SharePoint site, Planner board, OneNote
Mail-enabled security group Yes Yes Assign resource access AND send email to the group; hybrid/on-prem origin only — cannot be created in Entra ID directly
Distribution group No Yes Email distribution only — no security function; managed in Exchange Online

Static vs Dynamic Membership

Feature Static (Assigned) Dynamic (Rule-based)
Member management Admins or owners add/remove members manually Entra ID evaluates membership rule automatically (up to 24hr delay)
Rule example N/A — manual management (user.department -eq "Sales") and (user.accountEnabled -eq true)
Licence requirement Free Entra ID P1 — required for dynamic groups
Best for Small, well-defined groups that change infrequently Attribute-driven groups (all users in a dept, all users with a specific licence)
Limitation Manual process — access may lag user changes Up to 24-hour processing delay after attribute changes; complex rules can be slow
2

Manage Groups — Create Security Groups, M365 Groups & Dynamic Groups

Create security and M365 groups, configure dynamic membership rules based on user attributes, and audit group membership for governance reviews.

Microsoft Graph PowerShell

Connect-MgGraph -Scopes "Group.ReadWrite.All","Directory.ReadWrite.All"

# Export all groups with type and membership info
Get-MgGroup -All -Property DisplayName,GroupTypes,SecurityEnabled,MailEnabled,MembershipRule,MembershipRuleProcessingState |
  Select-Object DisplayName,GroupTypes,SecurityEnabled,MailEnabled,MembershipRule |
  Export-Csv -Path "AllGroups.csv" -NoTypeInformation

# Create a static security group
New-MgGroup `
  -DisplayName "Finance Team" `
  -SecurityEnabled $true `
  -MailEnabled $false `
  -MailNickname "FinanceTeam"

# Create a Microsoft 365 Group (collaboration workspace)
New-MgGroup `
  -DisplayName "Project Phoenix" `
  -GroupTypes @("Unified") `
  -SecurityEnabled $false `
  -MailEnabled $true `
  -MailNickname "ProjectPhoenix"

# Create a dynamic security group (requires Entra ID P1)
New-MgGroup `
  -DisplayName "All Sales Users" `
  -SecurityEnabled $true `
  -MailEnabled $false `
  -MailNickname "AllSalesUsers" `
  -MembershipRule "(user.department -eq 'Sales') and (user.accountEnabled -eq true)" `
  -MembershipRuleProcessingState "On"

# Add a member to a static group
$Group = Get-MgGroup -Filter "DisplayName eq 'Finance Team'"
$User  = Get-MgUser  -Filter "UserPrincipalName eq 'user@contoso.com'"
New-MgGroupMember -GroupId $Group.Id -DirectoryObjectId $User.Id

# Find empty (orphan) groups
Get-MgGroup -All | ForEach-Object {
  $Count = (Get-MgGroupMember -GroupId $_.Id -All).Count
  if ($Count -eq 0) { Write-Host "EMPTY GROUP: $($_.DisplayName)" }
}

🌐 Module 4: External Identities & B2B Collaboration

External Identities in Entra ID governs how your organisation collaborates with users from outside your tenant. The Cross-tenant access settings blade (introduced as part of Entra External ID) provides granular control over inbound and outbound B2B collaboration, replacing the older blanket Allow/Block domain list approach.

Cross-Tenant Access Settings — Inbound vs Outbound

Direction What It Controls Key Settings
Inbound B2B Collaboration Whether external users from other Entra tenants can be invited as guests into your tenant Allow/Block per-tenant or globally; MFA trust (trust MFA from home tenant); device compliance trust
Outbound B2B Collaboration Whether your users can accept invitations and collaborate in external Entra tenants Allow/Block per-tenant or globally; controls which external orgs your users can join as guests
Inbound B2B Direct Connect Whether external users can join your Teams Shared channels without a guest account (Azure B2B Direct Connect) Required for Teams Shared channels with external participants; separate from B2B Collaboration
Outbound B2B Direct Connect Whether your users can participate in external Teams Shared channels via B2B Direct Connect Allow per-tenant for specific partner organisations
3

Manage External Identities — Cross-Tenant Access & Guest User Audit

Review cross-tenant access settings, configure MFA trust for specific partner tenants, and audit all guest users including their last sign-in and external user state.

Microsoft Graph PowerShell

Connect-MgGraph -Scopes "Policy.ReadWrite.CrossTenantAccess","User.Read.All"

# Get default cross-tenant access policy
$Default = Get-MgPolicyCrossTenantAccessPolicyDefault
Write-Host "B2B Collaboration Inbound:  $($Default.B2BCollaborationInbound.UsersAndGroups.AccessType)"
Write-Host "B2B Collaboration Outbound: $($Default.B2BCollaborationOutbound.UsersAndGroups.AccessType)"

# Get all specific partner tenant configurations
Get-MgPolicyCrossTenantAccessPolicyPartner | Select-Object TenantId,IsServiceProvider | Format-Table -AutoSize

# Set guest invite restriction to admins + Guest Inviter role only
# Options: none | adminsAndGuestInviters | adminsGuestInvitersAndAllMembers | everyone
Update-MgPolicyAuthorizationPolicy -AllowInvitesFrom "adminsAndGuestInviters"

# Audit all guest users with sign-in activity
Get-MgUser -All -Filter "userType eq 'Guest'" `
  -Property DisplayName,UserPrincipalName,ExternalUserState,CreatedDateTime,SignInActivity |
  Select-Object DisplayName,UserPrincipalName,ExternalUserState,CreatedDateTime,
    @{N="LastSignIn";E={$_.SignInActivity.LastSignInDateTime}} |
  Export-Csv -Path "GuestUserAudit.csv" -NoTypeInformation

💻 Module 5: Devices — Registration & Settings

Entra ID tracks every device that registers with or joins the tenant. Understanding device join types is critical — the join type determines what identity the device uses to authenticate to cloud resources and whether it can be targeted by device-based Conditional Access policies.

Device Join Types

Join Type OS Support Device Identity Sign-in Account CA Device Filter
Entra Registered Windows, macOS, iOS, Android Device object in Entra ID; certificate-based device identity Personal/work account — BYOD scenario Yes — but limited trust level
Entra Joined Windows 10/11 Full Entra ID device identity; Primary Refresh Token (PRT) issued Work/school (Entra) account — user signs in with cloud identity Yes — strongest trust; required for compliantDevice filter
Hybrid Entra Joined Windows 7/8/10/11, Server Synced from on-prem AD via Entra Connect; both AD computer object and Entra device object On-premises domain account + Entra ID SSO via PRT Yes — requires Entra Connect sync and seamless SSO
4

Manage Devices — Inventory, Stale Device Detection & Cleanup

Export all registered devices, identify stale devices that have not checked in for 90 days, and disable or delete them to maintain a clean device inventory.

Microsoft Graph PowerShell

Connect-MgGraph -Scopes "Device.ReadWrite.All"

# Export all registered devices
Get-MgDevice -All -Property DisplayName,DeviceId,OperatingSystem,OperatingSystemVersion,IsManaged,IsCompliant,TrustType,ApproximateLastSignInDateTime,AccountEnabled |
  Select-Object DisplayName,DeviceId,OperatingSystem,OperatingSystemVersion,IsManaged,IsCompliant,TrustType,ApproximateLastSignInDateTime |
  Export-Csv -Path "AllDevices.csv" -NoTypeInformation

# Find stale devices (not signed in for 90+ days)
$Cutoff = (Get-Date).AddDays(-90)
Get-MgDevice -All -Property DisplayName,DeviceId,OperatingSystem,ApproximateLastSignInDateTime,AccountEnabled |
  Where-Object {$_.ApproximateLastSignInDateTime -lt $Cutoff -and $_.AccountEnabled -eq $true} |
  Export-Csv -Path "StaleDevices.csv" -NoTypeInformation

# Count devices by join type (TrustType)
# Workplace=Entra Registered, AzureAd=Entra Joined, ServerAd=Hybrid Joined
Get-MgDevice -All -Property TrustType |
  Group-Object TrustType |
  Select-Object Name,Count | Format-Table -AutoSize

# Disable then delete a stale device
$Device = Get-MgDevice -Filter "DisplayName eq 'STALE-LAPTOP-01'" | Select-Object -First 1
Update-MgDevice -DeviceId $Device.Id -AccountEnabled $false
Remove-MgDevice -DeviceId $Device.Id

🔐 Module 6: Roles & Admins (Entra RBAC)

Entra ID Role-Based Access Control provides over 100 built-in directory roles covering every administrative function. The principle of least privilege demands using the most targeted role available — never Global Administrator for routine tasks. Custom roles (Entra ID P1 required) allow organisations to create roles with precise permission sets.

Key Built-in Entra ID Roles

Role What It Can Do Principle
Global Administrator Full control of all Entra ID settings and all M365 services — the highest-privilege role Maximum 5 permanent Global Admins; all others via PIM eligible only
User Administrator Create, read, update, delete users and groups; reset non-admin passwords; manage licences Day-to-day user lifecycle management — helpdesk Tier 2+
Conditional Access Administrator Full control of Conditional Access policies, named locations, and authentication strengths Dedicated to CA policy management — keep separate from user management
Security Administrator Manage Identity Protection, Conditional Access, MFA settings, security reports Security operations team — broad read/write on security workloads
Security Reader Read-only access to all security features — Identity Protection, CA policies, risk reports SOC analysts, auditors — view without making changes
Authentication Administrator Reset passwords and authentication methods for non-admin users; validate MFA registration Helpdesk Tier 1 — limited scope, cannot modify admin accounts
Privileged Role Administrator Manage role assignments, configure PIM settings, approve PIM activation requests Highly sensitive — can escalate any user to any role; must be PIM-eligible only
Reports Reader Read-only access to usage reports, sign-in logs, and audit logs Management reporting, compliance auditing without admin access
5

Audit All Admin Role Assignments & Detect Excessive Privilege

Report on every active directory role assignment, identify users assigned Global Administrator permanently (vs PIM eligible), and find admin accounts without MFA registered.

Microsoft Graph PowerShell

Connect-MgGraph -Scopes "RoleManagement.Read.Directory","User.Read.All","AuditLog.Read.All"

# Audit all active directory role assignments
$RoleReport = @()
Get-MgDirectoryRole -All | ForEach-Object {
  $Role = $_
  $Members = Get-MgDirectoryRoleMember -DirectoryRoleId $Role.Id -All
  foreach ($Member in $Members) {
    $User = Get-MgUser -UserId $Member.Id -ErrorAction SilentlyContinue
    $RoleReport += [PSCustomObject]@{
      Role       = $Role.DisplayName
      MemberName = $User.DisplayName
      MemberUPN  = $User.UserPrincipalName
    }
  }
}
$RoleReport | Export-Csv -Path "AllRoleAssignments.csv" -NoTypeInformation

# Count permanent Global Admins (flag if more than 5)
$GARole = Get-MgDirectoryRole -Filter "DisplayName eq 'Global Administrator'"
$GACount = (Get-MgDirectoryRoleMember -DirectoryRoleId $GARole.Id -All).Count
Write-Host "Permanent Global Admins: $GACount  (Recommended: 5 or fewer)"

# Check MFA registration for all admins
Get-MgReportAuthenticationMethodUserRegistrationDetail -All |
  Where-Object {$_.IsAdmin -eq $true} |
  Select-Object UserDisplayName,UserPrincipalName,IsMfaRegistered,IsPasswordlessCapable,MethodsRegistered |
  Format-Table -AutoSize

🔒 Module 7: Conditional Access

Conditional Access (CA) is the policy engine of Zero Trust — it evaluates every sign-in against a set of conditions (who, what app, what device, what location, what risk level) and decides whether to grant access, block access, or grant access with additional controls like MFA or compliant device. CA policies require Entra ID P1 at minimum.

Conditional Access Policy Anatomy

Component Options Notes
Assignments — Users All users, specific users/groups, directory roles; exclude specific users Always exclude at least one break-glass account from all CA policies
Assignments — Target resources All cloud apps, specific apps, User actions (register security info, register/join devices) “All cloud apps” is the broadest and most secure choice for baseline policies
Assignments — Conditions Sign-in risk (P2), User risk (P2), Device platforms, Locations, Client apps, Device filter Conditions narrow when the policy applies — all conditions must be true (AND logic)
Grant controls Block access; Grant: require MFA, compliant device, Hybrid Joined device, approved app, app protection policy, authentication strength Grant controls can be combined with AND (all required) or OR (any one required)
Session controls Sign-in frequency (force re-auth), persistent browser session, app enforced restrictions, MCAS conditional access app control, continuous access evaluation Session controls apply after initial grant — do not replace grant controls
Policy state On (enforced), Report-only (audit without enforcing), Off (disabled) Always start new policies in Report-only mode and review logs before setting to On
6

Audit All CA Policies & Identify Report-Only & Disabled Policies

List all Conditional Access policies with their state, export a full audit report, and use the What If tool equivalent in PowerShell to evaluate which policies would apply to a specific sign-in scenario.

Microsoft Graph PowerShell

Connect-MgGraph -Scopes "Policy.Read.ConditionalAccess","Policy.ReadWrite.ConditionalAccess"

# Get all CA policies with state
Get-MgIdentityConditionalAccessPolicy -All |
  Select-Object DisplayName,State,CreatedDateTime,ModifiedDateTime |
  Sort-Object State,DisplayName |
  Format-Table -AutoSize

# Export CA policy audit report
Get-MgIdentityConditionalAccessPolicy -All |
  Select-Object DisplayName,State,Id,
    @{N="IncludeUsers";E={$_.Conditions.Users.IncludeUsers}},
    @{N="IncludeApps";E={$_.Conditions.Applications.IncludeApplications}} |
  Export-Csv -Path "CAPolicies.csv" -NoTypeInformation

# Find policies still in Report-only (not yet enforced)
Get-MgIdentityConditionalAccessPolicy -All |
  Where-Object {$_.State -eq "enabledForReportingButNotEnforced"} |
  Select-Object DisplayName,State,ModifiedDateTime |
  Format-Table -AutoSize

# Get all named locations (trusted IPs and countries)
Get-MgIdentityConditionalAccessNamedLocation -All |
  Select-Object DisplayName,OdataType,IsTrusted |
  Format-Table -AutoSize

⚠️ Break-Glass Accounts — Exclude from ALL CA Policies

Always maintain two emergency access (break-glass) accounts that are excluded from every Conditional Access policy. These accounts must: be cloud-only (not synced), use a very strong password stored securely (not in a password manager), NOT have MFA registered (since MFA failure is a common lockout scenario), and be in the Global Administrator role permanently (not via PIM). Monitor them with alerts — any sign-in to these accounts should trigger an immediate security investigation.

🔒 Module 8: Authentication Methods & MFA

The Authentication Methods blade is the modern, policy-based approach to managing MFA and authentication across the tenant. It replaces the legacy per-user MFA settings (in the old MFA portal) and the legacy SSPR method configuration. All new authentication configuration should use the Authentication Methods Policy only.

Available Authentication Methods (2025–2026)

Method Type Phishing Resistant Passwordless Licence
FIDO2 security key (Passkey) Hardware token / Device passkey ✅ Yes ✅ Yes Free
Microsoft Authenticator (Passwordless) Push notification + number matching ✅ Yes (with number match) ✅ Yes Free
Windows Hello for Business Biometric / PIN on Windows device ✅ Yes ✅ Yes Free
Microsoft Authenticator (MFA push) Push notification ✗ No (MFA fatigue risk) ✗ No Free
TOTP (Authenticator app / third-party) Time-based one-time password ✗ No ✗ No Free
Temporary Access Pass (TAP) Time-limited bypass code for onboarding N/A — temporary use only ✗ No Free (P1 for SSPR)
SMS / Voice call OTP via text or phone call ✗ No (SIM swap risk) ✗ No Free — avoid for admins
7

Audit MFA Registration & Identify Unregistered Users

Report on MFA registration status across all users, identify users with no MFA method registered, and find users who are passwordless-capable, to prioritise the passwordless rollout.

Microsoft Graph PowerShell

Connect-MgGraph -Scopes "UserAuthenticationMethod.Read.All","Reports.Read.All"

# Get MFA registration status for all users
$MFAReport = Get-MgReportAuthenticationMethodUserRegistrationDetail -All |
  Select-Object UserDisplayName,UserPrincipalName,IsAdmin,IsMfaRegistered,IsMfaCapable,IsPasswordlessCapable,IsSsprRegistered,MethodsRegistered

# Export full MFA registration report
$MFAReport | Export-Csv -Path "MFARegistrationReport.csv" -NoTypeInformation

# Users with NO MFA registered (sorted admins first — highest risk)
$MFAReport | Where-Object {$_.IsMfaRegistered -eq $false} |
  Select-Object UserDisplayName,UserPrincipalName,IsAdmin |
  Sort-Object IsAdmin -Descending |
  Format-Table -AutoSize

# Summary dashboard
Write-Host "Total Users:          $($MFAReport.Count)"
Write-Host "MFA Registered:       $(($MFAReport | Where-Object {$_.IsMfaRegistered}).Count)"
Write-Host "No MFA Registered:    $(($MFAReport | Where-Object {-not $_.IsMfaRegistered}).Count)"
Write-Host "Passwordless Capable: $(($MFAReport | Where-Object {$_.IsPasswordlessCapable}).Count)"

🛡️ Module 9: Identity Protection

Microsoft Entra ID Protection (formerly Azure AD Identity Protection) uses machine learning and Microsoft’s global threat intelligence to detect identity-based risks in real time. It classifies risks as sign-in risk (suspicious properties of the current sign-in) or user risk (probability that a user’s account is compromised). Requires Entra ID P2.

Risk Levels & Common Risk Detections

Detection Type Risk Level What It Means
Atypical travel Sign-in risk Medium Sign-ins from two locations physically impossible to travel between in the elapsed time
Anonymous IP address Sign-in risk Medium Sign-in originating from Tor exit node, anonymising VPN, or known proxy service
Malware-linked IP Sign-in risk High Sign-in from IP address associated with active botnet command-and-control traffic
Unfamiliar sign-in properties Sign-in risk Low–Medium Sign-in from device, location, or browser not seen for this user before
Leaked credentials User risk High User’s credentials found in dark web dumps or paste sites by Microsoft’s threat intel
Entra ID threat intelligence Sign-in / User risk High Sign-in pattern matches known attack techniques from Microsoft’s global threat database
Password spray Sign-in risk High Multiple users targeted with the same password in a brute-force pattern
8

Review Risky Users & Risky Sign-ins — Remediate & Dismiss

Export all risky users and risky sign-ins, confirm compromised accounts for immediate response, and dismiss false-positive risk detections after investigation.

Microsoft Graph PowerShell

Connect-MgGraph -Scopes "IdentityRiskyUser.ReadWrite.All","IdentityRiskEvent.Read.All"

# Get all risky users (Entra ID P2 required)
Get-MgRiskyUser -All |
  Select-Object UserDisplayName,UserPrincipalName,RiskLevel,RiskState,RiskDetail,RiskLastUpdatedDateTime |
  Sort-Object RiskLevel -Descending |
  Format-Table -AutoSize

# Export high-risk users for immediate incident response
Get-MgRiskyUser -All -Filter "riskLevel eq 'high'" |
  Export-Csv -Path "HighRiskUsers.csv" -NoTypeInformation

# Confirm a user as compromised (forces password reset + revokes sessions)
$RiskyUser = Get-MgRiskyUser -Filter "UserPrincipalName eq 'compromised@contoso.com'"
Invoke-MgConfirmRiskyUserCompromised -UserIds @($RiskyUser.Id)
Write-Host "User confirmed compromised. Password reset required on next sign-in."

# Dismiss risk for false positive after investigation
$RiskyUser2 = Get-MgRiskyUser -Filter "UserPrincipalName eq 'falsepositive@contoso.com'"
Invoke-MgDismissRiskyUser -UserIds @($RiskyUser2.Id)

# Get all risk detections for SIEM export
Get-MgRiskDetection -All -Top 50 |
  Select-Object UserDisplayName,DetectionTimingType,RiskEventType,RiskLevel,IpAddress,Location |
  Format-Table -AutoSize

⚖️ Module 10: Identity Governance — PIM & Access Reviews

Identity Governance (requiring Entra ID P2 or the Entra ID Governance add-on) implements the principle of Just-In-Time and Just-Enough-Access across admin roles, group membership, and application access. The four key capabilities are PIM, Access Reviews, Entitlement Management, and Lifecycle Workflows.

PIM — Eligible vs Active Assignments

Assignment Type Description Access State When to Use
Eligible User has the right to activate the role but does NOT have it active permanently — must activate through PIM portal or Entra admin center Inactive until activated; activation requires justification, optional approval, optional MFA All sensitive roles — Global Admin, Privileged Role Admin, Security Admin, etc.
Active (time-bound) User has the role active for a specified duration (max configurable, typically 1–8 hours) Fully active for the duration; auto-expires without manual revocation During a specific maintenance window or incident response period
Active (permanent) User has the role permanently active — no time limit, no activation required Always active — equivalent to legacy direct role assignment Break-glass accounts only; avoid for all other admin accounts
9

Manage PIM — Eligible Assignments & Role Activation Requests

Audit all PIM eligible role assignments, review active role activations, and programmatically activate a PIM-eligible role assignment for a time-limited administrative task.

Microsoft Graph PowerShell (PIM)

Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory","RoleEligibilitySchedule.ReadWrite.Directory"

# Get all PIM eligible role assignments
Get-MgRoleManagementDirectoryRoleEligibilityScheduleInstance -All |
  ForEach-Object {
    $Principal = Get-MgUser -UserId $_.PrincipalId -ErrorAction SilentlyContinue
    $Role      = Get-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId $_.RoleDefinitionId
    [PSCustomObject]@{
      User      = $Principal.UserPrincipalName
      Role      = $Role.DisplayName
      StartTime = $_.StartDateTime
      EndTime   = $_.EndDateTime
    }
  } | Format-Table -AutoSize

# Get all currently ACTIVE PIM activations
Get-MgRoleManagementDirectoryRoleAssignmentScheduleInstance -All |
  Where-Object {$_.AssignmentType -eq "Activated"} |
  ForEach-Object {
    $Principal = Get-MgUser -UserId $_.PrincipalId -ErrorAction SilentlyContinue
    $Role      = Get-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId $_.RoleDefinitionId
    [PSCustomObject]@{ User=$Principal.UserPrincipalName; Role=$Role.DisplayName; Start=$_.StartDateTime; End=$_.EndDateTime }
  } | Format-Table -AutoSize

# Self-activate a PIM eligible role for a time-limited task
$Params = @{
  Action           = "selfActivate"
  PrincipalId      = "your-user-object-id"
  RoleDefinitionId = "role-definition-id"
  DirectoryScopeId = "/"
  Justification    = "Password reset task - INC001234"
  ScheduleInfo     = @{
    StartDateTime = Get-Date
    Expiration    = @{ Type = "AfterDuration"; Duration = "PT4H" }
  }
}
New-MgRoleManagementDirectoryRoleAssignmentScheduleRequest -BodyParameter $Params
Write-Host "PIM role activation requested for 4 hours."

📊 Module 11: Monitoring — Sign-in Logs, Audit Logs & Identity Health

Entra ID generates three primary log streams available in the Monitoring section: Sign-in logs (every authentication attempt), Audit logs (every admin action and object change), and Provisioning logs (app provisioning activity). These logs are retained for 30 days in the portal (7 days for free tenants) and should be exported to Log Analytics / Microsoft Sentinel for long-term retention and SIEM integration.

Sign-in Log Categories

Log Type What It Captures Volume
Interactive sign-ins User-initiated sign-ins where the user directly provides credentials — includes browser, desktop app, and mobile app sign-ins Highest volume — every user session
Non-interactive sign-ins Token refresh operations and silent sign-ins performed without user interaction — background app authentication Very high — often 10x interactive volume
Service principal sign-ins Sign-ins performed by app identities (service principals) accessing resources — app-to-app authentication via OAuth client credentials Medium — API and automation calls
Managed identity sign-ins Sign-ins by Azure managed identities — workloads running in Azure authenticating to other Azure services without credentials Low to medium — Azure workload authentication
10

Query Sign-in & Audit Logs for Security Investigation

Retrieve recent sign-in failures, find sign-ins from outside expected countries, and export audit logs for user management events for a compliance evidence package.

Microsoft Graph PowerShell

Connect-MgGraph -Scopes "AuditLog.Read.All"

# Get sign-in failures in the last 24 hours
$Since = (Get-Date).AddHours(-24).ToString("yyyy-MM-ddTHH:mm:ssZ")
Get-MgAuditLogSignIn `
  -Filter "createdDateTime ge $Since and status/errorCode ne 0" `
  -All -Top 200 |
  Select-Object UserDisplayName,UserPrincipalName,AppDisplayName,
    @{N="ErrorCode";E={$_.Status.ErrorCode}},
    @{N="FailureReason";E={$_.Status.FailureReason}},
    IpAddress,CreatedDateTime |
  Export-Csv -Path "SignInFailures24h.csv" -NoTypeInformation

# Get audit log for user management events (last 7 days)
$Since7 = (Get-Date).AddDays(-7).ToString("yyyy-MM-ddTHH:mm:ssZ")
Get-MgAuditLogDirectoryAudit `
  -Filter "activityDateTime ge $Since7 and category eq 'UserManagement'" `
  -All -Top 500 |
  Select-Object ActivityDisplayName,ActivityDateTime,
    @{N="InitiatedBy";E={$_.InitiatedBy.User.UserPrincipalName}},
    @{N="Target";E={$_.TargetResources[0].UserPrincipalName}},Result |
  Export-Csv -Path "UserManagementAudit.csv" -NoTypeInformation

# Top 10 users with most sign-in failures (brute force detection)
Get-MgAuditLogSignIn -Filter "createdDateTime ge $Since7 and status/errorCode ne 0" -All |
  Group-Object UserPrincipalName |
  Sort-Object Count -Descending |
  Select-Object Name,Count -First 10 |
  Format-Table -AutoSize

🎓 Module 12: SC-300 Certification Alignment

The SC-300: Microsoft Identity and Access Administrator certification validates your ability to design, implement, and operate identity and access management solutions using Microsoft Entra ID. It is one of the most respected M365/Azure security certifications and a prerequisite for the SC-100 (Microsoft Cybersecurity Architect) expert certification.

🎍 SC-300: Microsoft Identity and Access Administrator Associate
22%

Implement Identities in Microsoft Entra ID

Tenant configuration, user & group management, external identities (B2B/B2C), hybrid identity (Entra Connect, Cloud Sync), custom security attributes — Modules 2, 3, 4, 5

28%

Implement Authentication and Access Management

MFA planning & implementation, Conditional Access policies, Identity Protection risk policies, authentication methods (FIDO2, passwordless, TAP), SSPR, password protection — Modules 7, 8, 9

18%

Implement Access Management for Applications

Enterprise app registration, SAML/OIDC SSO, app permissions & consent, Application Proxy for on-prem app access, managed identities, workload identities — (Enterprise Apps blade — not covered in this guide; see dedicated App Integration course)

22%

Plan and Implement Identity Governance

PIM (eligible vs active, activation, settings, access reviews for roles), Entitlement Management (access packages, catalogs), Lifecycle Workflows (Joiner/Mover/Leaver), Access Reviews for groups & apps — Module 10

10%

Monitor and Maintain Microsoft Entra ID

Sign-in logs, audit logs, Identity Secure Score, Entra Health, Log Analytics/Sentinel integration, Entra Workbooks — Module 11

✅ SC-300 Exam Study Tips

  • Understand Conditional Access policy anatomy precisely — know every Assignment option (users, target resources, conditions) and every Grant/Session control, including the difference between “require all selected controls” vs “require one of the selected controls”
  • Study CA Named Locations — the difference between IP-range locations (trust level can be configured) and country locations (no trust flag); know that “Trusted Location” requires IP range, not country
  • Know all three PIM assignment types — eligible (must activate), active time-bound (activated for duration), and active permanent (break-glass only) — and the PIM activation workflow including MFA, justification, and optional approval
  • Understand Entra ID P1 vs P2 vs Governance licencing — Dynamic Groups needs P1; Identity Protection and PIM need P2; Entitlement Management and Lifecycle Workflows need the Governance add-on
  • Know the break-glass account requirements — cloud-only, excluded from all CA policies, Global Admin permanently (not via PIM), no MFA registered (to avoid being locked out during MFA service outage), monitored with sign-in alerts
  • Study Identity Protection risk types — sign-in risk (this specific sign-in is suspicious) vs user risk (this account appears compromised); know that CA user risk policy forces password change, CA sign-in risk policy forces MFA or blocks
  • Understand Entra Connect vs Cloud Sync — Cloud Sync is the newer, agent-based sync with support for multi-forest; Entra Connect uses the full sync engine on a server; Cloud Sync doesn’t support all features (no Exchange hybrid writeback)
  • Practice every PowerShell command in a Microsoft 365 Developer Tenant — the SC-300 exam includes scenario-based questions that require understanding the exact Graph API and PowerShell operations for each identity management task

💡 Best Practices Summary

  • Require MFA for all users with no exceptions via a Conditional Access policy — excluding only break-glass accounts; eliminate per-user MFA settings which are the legacy approach
  • Place all privileged admin accounts in PIM as eligible-only — no permanent active assignments except for a maximum of 5 break-glass accounts with monitoring alerts on any sign-in
  • Run quarterly Access Reviews for all admin roles (especially Global Administrator and Privileged Role Administrator) and all guest user access — automate approval workflows where possible
  • Enable Identity Protection risk-based CA policies for both user risk and sign-in risk — set medium and above to require MFA (sign-in risk) or password change (user risk)
  • Block legacy authentication protocols (Basic Auth, NTLM, IMAP, POP, SMTP AUTH) via Conditional Access — these protocols cannot perform MFA and are the source of the majority of credential compromise attacks
  • Use dynamic groups for licence assignment and policy targeting — static group membership goes stale when users change departments or leave; dynamic groups follow user attributes automatically
  • Integrate Entra ID sign-in and audit logs with Microsoft Sentinel or Log Analytics for 90–365 day retention — the 30-day in-portal retention is insufficient for compliance and security investigations
  • Implement Temporary Access Pass (TAP) for new user onboarding and MFA recovery — TAP eliminates the need to share initial passwords and gives users a secure time-limited way to register their first MFA method
  • Enable FIDO2/passkey authentication for admin accounts first — passkeys are phishing-resistant and eliminate the risk of MFA fatigue attacks against high-value targets
  • Implement Lifecycle Workflows (Entra ID Governance) for Joiner, Mover, and Leaver automation — automated provisioning and deprovisioning reduces the window between an employee leaving and their account being disabled

📚 References & Further Reading

Leave a Comment

Your email address will not be published. Required fields are marked *