# Security Copilot + Microsoft Entra — Vollständige Referenz Security Copilot + Microsoft Entra — Complete Reference

Level-500-Referenz für KI-gestützte Identitätssicherheit: Risikoermittlung, Anmeldefehlerdiagnose, Conditional-Access-Analyse, Benutzerinsights, Identity Governance, Audit-Log-Auswertung, Copilot Skills und Einrichtung. Level-500 reference for AI-powered identity security: risk investigation, sign-in failure diagnosis, Conditional Access analysis, user insights, identity governance, audit log analysis, Copilot Skills, and setup.

Natürlichsprachige Abfragen Natural Language Queries

Security Copilot versteht Fragen wie „Welche Benutzer haben sich heute von unbekannten Standorten angemeldet?" und übersetzt diese in Graph-API-Abfragen und KQL-Queries — ohne manuelle Programmierung. Security Copilot understands questions like "Which users signed in from unknown locations today?" and translates them into Graph API queries and KQL queries — without manual programming.

Integriert in Entra Admin Center Integrated into Entra Admin Center

Der Copilot-Assistent ist direkt im Entra Admin Center verfügbar — als Seitenleiste in Identity Protection, Conditional Access, Benutzeransichten und Anmeldeprotokollen. The Copilot assistant is available directly in the Entra Admin Center — as a sidebar in Identity Protection, Conditional Access, user views, and sign-in logs.

Skills-basiertes Modell Skills-Based Model

Copilot verfügt über dedizierte „Skills" für Entra: Get User Risk Details, Summarize Sign-In Logs, Analyze Conditional Access Policy, List Risky Users und mehr — jede Skill greift direkt auf die Entra-API zu. Copilot has dedicated "Skills" for Entra: Get User Risk Details, Summarize Sign-In Logs, Analyze Conditional Access Policy, List Risky Users, and more — each skill directly calls the Entra API.

Lizenz: SCU + Entra P2 License: SCU + Entra P2

Security Copilot erfordert Security Compute Units (SCU) und die Integration mit Entra ID. Für volle Identity-Protection- und Governance-Funktionalität wird Entra ID P2 benötigt. Security Copilot requires Security Compute Units (SCU) and integration with Entra ID. For full Identity Protection and Governance functionality, Entra ID P2 is required.

## Was ist Security Copilot + Microsoft Entra? What is Security Copilot + Microsoft Entra?

Microsoft Security Copilot ist ein KI-gestützter Sicherheitsassistent, der auf dem GPT-4-Modell von OpenAI und den Sicherheitsdaten und -signalen von Microsoft aufbaut. In Kombination mit Microsoft Entra ermöglicht er Sicherheitsanalysten, Administratoren und SOC-Teams die effiziente Untersuchung von Identitätsrisiken, Diagnose von Anmeldefehlern und Analyse von Conditional-Access-Richtlinien — alles in natürlicher Sprache (Deutsch und Englisch). Microsoft Security Copilot is an AI-powered security assistant built on OpenAI's GPT-4 model and Microsoft's security data and signals. In combination with Microsoft Entra, it enables security analysts, administrators, and SOC teams to efficiently investigate identity risks, diagnose sign-in failures, and analyze Conditional Access policies — all in natural language (German and English).

Security Copilot ist in zwei Modi verfügbar: Security Copilot is available in two modes:

Modus Mode | Zugang Access | Besonderheiten Characteristics
--- | --- | ---
Standalone Portal Standalone Portal | securitycopilot.microsoft.com securitycopilot.microsoft.com | Vollständige Promptbook-Unterstützung, Session-übergreifende Analysen, Integration mit Defender XDR, Sentinel, Purview, Intune und Entra Full Promptbook support, cross-session analysis, integration with Defender XDR, Sentinel, Purview, Intune, and Entra
Eingebettet (Embedded)Embedded | Entra Admin Center, Defender Portal, Intune Entra Admin Center, Defender Portal, Intune | Kontextbewusste Vorschläge direkt in der Admin-Oberfläche; fokussiert auf aktuell geöffnetes Objekt (Benutzer, Policy, Risikoevent)Context-aware suggestions directly in the admin interface; focused on currently open object (user, policy, risk event)

💡 Entra Copilot ist kein separates Produkt 💡 Entra Copilot is not a separate product

Die Entra-Funktionen in Security Copilot sind ein Plugin/Skill-Set innerhalb von Security Copilot. Es gibt kein separates „Entra Copilot"-Produkt — die Entra-Skills sind standardmäßig aktiviert, wenn Security Copilot lizenziert und der Entra-Plugin aktiviert ist. The Entra features in Security Copilot are a plugin/skill set within Security Copilot. There is no separate "Entra Copilot" product — the Entra Skills are enabled by default when Security Copilot is licensed and the Entra plugin is activated.

## Identity Risk Investigation Identity Risk Investigation

Eines der leistungsstärksten Einsatzgebiete von Security Copilot + Entra ist die Untersuchung von Identitätsrisiken. Copilot kann riskante Benutzer identifizieren, Risikodetails zusammenfassen, kontextbezogene Informationen aus Audit-Logs hinzufügen und automatisierte Empfehlungen zur Risikominimierung liefern. One of the most powerful use cases for Security Copilot + Entra is investigating identity risks. Copilot can identify risky users, summarize risk details, add contextual information from audit logs, and provide automated recommendations for risk mitigation.

### Riskante Benutzer untersuchen Investigating Risky Users

Entra Identity Protection klassifiziert Benutzer nach Risikoniveau (Hoch, Mittel, Niedrig). Security Copilot kann diese Daten aggregieren, analysieren und in verständlichem Format darstellen. Entra Identity Protection classifies users by risk level (High, Medium, Low). Security Copilot can aggregate, analyze, and present this data in an understandable format.

Risikoniveau Risk Level | Typische Ursachen Typical Causes | Empfohlene Aktion Recommended Action
--- | --- | ---
Hoch (High)High | Leaked Credentials, Malware-verknüpfte IP, verdächtige Inbox-Manipulation, Token Theft Leaked credentials, malware-linked IP, suspicious inbox manipulation, token theft | Sofortiger Block, Passwort-Reset erzwingen, alle Sessions widerrufen, Forensik-Review Immediate block, force password reset, revoke all sessions, forensics review
Mittel (Medium)Medium | Anomale Token, ungewöhnliche Anmeldeorte, mögliche Passwort-Spray-Versuche Anomalous tokens, unusual sign-in locations, possible password spray attempts | MFA erzwingen, Sign-in-Logs analysieren, Benutzer befragen Enforce MFA, analyze sign-in logs, interview user
Niedrig (Low)Low | Ungewöhnliche Reiseaktivität, anonymisierte IP Unusual travel activity, anonymized IP | Überwachen, bei Häufung eskalieren Monitor, escalate if recurring

ℹ️ Beispiel-Prompts: Risikoermittlung ℹ️ Example Prompts: Risk Investigation

Deutsch: German:

- „Zeige mir alle Benutzer mit hohem Risikoniveau in den letzten 7 Tagen.""Zeige mir alle Benutzer mit hohem Risikoniveau in den letzten 7 Tagen."
- „Welche Risikoerkennungen wurden für den Benutzer max.mustermann@contoso.com gefunden?""Welche Risikoerkennungen wurden für den Benutzer max.mustermann@contoso.com gefunden?"
- „Erkläre mir, warum dieser Benutzer als riskant eingestuft wurde, und nenne mögliche Gegenmaßnahmen.""Erkläre mir, warum dieser Benutzer als riskant eingestuft wurde, und nenne mögliche Gegenmaßnahmen."

Englisch: English:

- "Show me all high-risk users in the last 7 days.""Show me all high-risk users in the last 7 days."
- "What risk detections were found for user john.doe@contoso.com?""What risk detections were found for user john.doe@contoso.com?"
- "Explain why this user was flagged as risky and suggest remediation steps.""Explain why this user was flagged as risky and suggest remediation steps."

PowerShell / Graph API PowerShell / Graph API

    # Riskante Benutzer via Microsoft Graph abrufen (Copilot-Äquivalent)
    # Get risky users via Microsoft Graph (Copilot equivalent)
    Connect-MgGraph -Scopes "IdentityRiskEvent.Read.All", "IdentityRiskyUser.ReadWrite.All"

    # Alle Hochrisikobenutzer
    # All high-risk users
    Get-MgRiskyUser -Filter "riskLevel eq 'high'" | `
      Select-Object UserDisplayName, UserPrincipalName, RiskLevel, RiskState, RiskLastUpdatedDateTime

    # Risikoerkennungen für spezifischen Benutzer
    # Risk detections for specific user
    Get-MgRiskDetection -Filter "userPrincipalName eq 'user@contoso.com'" | `
      Select-Object DetectionTimingType, RiskEventType, RiskLevel, Activity, IpAddress | Format-List

    # Benutzerrisiko zurücksetzen (nach Untersuchung)
    # Dismiss user risk (after investigation)
    Invoke-MgGraphRequest -Method POST `
      -Uri "https://graph.microsoft.com/v1.0/identityProtection/riskyUsers/dismiss" `
      -Body (@{ userIds = @("user-objectid-here") } | ConvertTo-Json) `
      -ContentType "application/json"

    # Benutzerrisiko bestätigen als kompromittiert
    # Confirm user is compromised
    Invoke-MgGraphRequest -Method POST `
      -Uri "https://graph.microsoft.com/v1.0/identityProtection/riskyUsers/confirmCompromised" `
      -Body (@{ userIds = @("user-objectid-here") } | ConvertTo-Json) `
      -ContentType "application/json"

## Anmeldung-Fehlerbehebung Sign-In Troubleshooting

Security Copilot kann Anmeldefehler analysieren, indem es Sign-In Logs mit natürlichsprachigen Abfragen auswertet. Es kann Fehlercodes erklären, Conditional-Access-Auswertungen zusammenfassen und Lösungsvorschläge machen — alles ohne manuelle KQL-Abfragen. Security Copilot can analyze sign-in failures by evaluating Sign-In Logs with natural language queries. It can explain error codes, summarize Conditional Access evaluations, and make solution suggestions — all without manual KQL queries.

### Conditional Access Auswertungsanalyse Conditional Access Evaluation Analysis

Jeder Anmeldevorgang enthält eine detaillierte CA-Auswertung. Copilot kann diese Auswertung in verständliche Aussagen übersetzen: Welche Policies wurden angewendet? Welche wurden nicht erfüllt? Was hat zur Blockierung oder MFA-Anforderung geführt? Every sign-in event contains a detailed CA evaluation. Copilot can translate this evaluation into understandable statements: Which policies were applied? Which were not satisfied? What led to the block or MFA requirement?

ℹ️ Beispiel-Prompts: Anmeldefehler ℹ️ Example Prompts: Sign-In Failures

- „Warum konnte sich max.mustermann@contoso.com heute Morgen um 09:30 nicht anmelden?""Why couldn't max.mustermann@contoso.com sign in this morning at 09:30?"
- „Erkläre den Fehlercode AADSTS50076 und wie er behoben werden kann.""Explain error code AADSTS50076 and how it can be resolved."
- „Welche Conditional-Access-Policy hat die Anmeldung dieses Benutzers blockiert?""Which Conditional Access policy blocked this user's sign-in?"
- „Zeige mir alle fehlgeschlagenen Anmeldungen der letzten 24 Stunden für externe Benutzer.""Show me all failed sign-ins in the last 24 hours for external users."
- „Was war der Auth-Kontext bei der letzten erfolgreichen Anmeldung des Benutzers?""What was the authentication context at the last successful sign-in of this user?"

Häufiger Fehlercode Common Error Code | Bedeutung Meaning | Typische Lösung Typical Resolution
--- | --- | ---
AADSTS50076 AADSTS50076 | MFA erforderlich aber nicht abgeschlossen MFA required but not completed | MFA-Registrierung prüfen; Authenticator-App-Status; CA-Policy-Ausnahme prüfen Check MFA registration; Authenticator app status; verify CA policy exception
AADSTS50105 AADSTS50105 | Benutzer nicht der App zugewiesen User not assigned to the app | Enterprise Application → Benutzer und Gruppen → Zuweisung hinzufügen Enterprise Application → Users and Groups → Add assignment
AADSTS53003 AADSTS53003 | Zugriff durch Conditional Access blockiert Access blocked by Conditional Access | CA-Policy-ID aus den Logs ermitteln, Policy-Bedingungen prüfen Identify CA policy ID from logs, check policy conditions
AADSTS70011 AADSTS70011 | Ungültiger Scope/Ressource Invalid scope/resource | App-Registrierung prüfen; API-Berechtigungen validieren Check app registration; validate API permissions
AADSTS90072 AADSTS90072 | Externes Konto meldet sich am Home-Tenant an External account signing into home tenant | Cross-Tenant Access Settings und B2B-Konfiguration prüfen Check Cross-Tenant Access Settings and B2B configuration
AADSTS135011 AADSTS135011 | Gerät nicht Entra-registriert oder nicht konform Device not Entra-registered or not compliant | Gerätestatus in Entra ID prüfen; Intune-Compliance-Status validieren Check device status in Entra ID; validate Intune compliance status

KQL / Graph API KQL / Graph API

    // KQL: Fehlgeschlagene Anmeldungen der letzten 24 Stunden analysieren
    // KQL: Analyze failed sign-ins from the last 24 hours
    SigninLogs
    | where TimeGenerated > ago(24h)
    | where ResultType != 0
    | summarize
        FailureCount = count(),
        Users = make_set(UserPrincipalName),
        ErrorCodes = make_set(ResultType),
        Countries = make_set(Location)
      by ResultDescription, AppDisplayName
    | sort by FailureCount desc
    | take 20

    // KQL: Conditional Access Policy Details pro Anmeldung
    // KQL: Conditional Access Policy Details per sign-in
    SigninLogs
    | where TimeGenerated > ago(7d)
    | where UserPrincipalName == "user@contoso.com"
    | mv-expand ConditionalAccessPolicies
    | extend
        PolicyName = tostring(ConditionalAccessPolicies.displayName),
        PolicyResult = tostring(ConditionalAccessPolicies.result),
        PolicyId = tostring(ConditionalAccessPolicies.id)
    | where PolicyResult in ("failure", "reportOnlyFailure")
    | project TimeGenerated, PolicyName, PolicyResult, AppDisplayName, ResultDescription

## Conditional-Access-Policy-Analyse Conditional Access Policy Analysis

Security Copilot kann bestehende Conditional-Access-Policies analysieren, Lücken identifizieren, Konflikte erkennen und What-If-Szenarien durchspielen. Diese Funktionalität ergänzt das eingebaute What-If-Tool im Entra Admin Center erheblich, da Copilot komplexe Policy-Kombinationen in natürlicher Sprache erklären kann. Security Copilot can analyze existing Conditional Access policies, identify gaps, detect conflicts, and simulate What-If scenarios. This functionality significantly complements the built-in What-If tool in the Entra Admin Center, as Copilot can explain complex policy combinations in natural language.

### Policy-Lückenanalyse Policy Gap Analysis

ℹ️ Beispiel-Prompts: CA-Analyse ℹ️ Example Prompts: CA Analysis

- „Analysiere meine Conditional-Access-Policies auf Lücken. Welche Szenarien sind nicht abgedeckt?""Analyze my Conditional Access policies for gaps. Which scenarios are not covered?"
- „Gibt es Konflikte zwischen meinen CA-Policies, die dazu führen könnten, dass Benutzer unbeabsichtigt blockiert werden?""Are there conflicts between my CA policies that could cause users to be unintentionally blocked?"
- „Welche Policies gelten für den Benutzer max.mustermann@contoso.com, wenn er sich von einem nicht verwalteten Gerät aus einem Café anmeldet?""Which policies apply to user max.mustermann@contoso.com when signing in from an unmanaged device at a café?"
- „Zeige mir alle CA-Policies, die MFA für externe Benutzer nicht erzwingen.""Show me all CA policies that don't enforce MFA for external users."
- „Welche Dienst-Principals (Non-User-Accounts) sind von meinen CA-Policies ausgenommen?""Which service principals (non-user accounts) are excluded from my CA policies?"

PowerShell / Graph API PowerShell / Graph API

    # Alle CA-Policies als JSON abrufen (für Copilot-Import oder eigene Analyse)
    # Retrieve all CA policies as JSON (for Copilot import or own analysis)
    Connect-MgGraph -Scopes "Policy.Read.All"

    $policies = Get-MgIdentityConditionalAccessPolicy -All
    $policies | Select-Object DisplayName, State, CreatedDateTime | Format-Table -AutoSize

    # Detaillierte Policy-Analyse: Alle Ausschlüsse anzeigen
    # Detailed policy analysis: Show all exclusions
    foreach ($policy in $policies) {
        if ($policy.Conditions.Users.ExcludeUsers -or $policy.Conditions.Users.ExcludeGroups) {
            Write-Host "`nPolicy: $($policy.DisplayName)" -ForegroundColor Yellow
            Write-Host "  Excluded Users: $($policy.Conditions.Users.ExcludeUsers -join ', ')"
            Write-Host "  Excluded Groups: $($policy.Conditions.Users.ExcludeGroups -join ', ')"
        }
    }

    # CA What-If Simulation via Graph API
    # CA What-If Simulation via Graph API
    $whatIfBody = @{
        conditionalAccessWhatIfSubject = @{
            "@odata.type" = "#microsoft.graph.conditionalAccessWhatIfUser"
            userId = "user-object-id"
        }
        conditionalAccessContext = @{
            "@odata.type" = "#microsoft.graph.conditionalAccessContext"
            servicePrincipalId = "app-object-id"
            ipAddress = "203.0.113.42"
            country = "DE"
            devicePlatform = "windows"
            clientAppType = "browser"
        }
    } | ConvertTo-Json -Depth 5

    Invoke-MgGraphRequest -Method POST `
      -Uri "https://graph.microsoft.com/beta/identity/conditionalAccess/evaluate" `
      -Body $whatIfBody -ContentType "application/json"

## Benutzer- und Gruppen-Insights User and Group Insights

Security Copilot kann auf einfache Fragen zu Benutzern und Gruppen umfassende Antworten liefern, die normalerweise mehrere Graph-API-Abfragen und manuelle Zusammenführung erfordern würden. Dies spart SOC-Teams und Administratoren erheblich Zeit bei der Erstuntersuchung. Security Copilot can provide comprehensive answers to simple questions about users and groups that would normally require multiple Graph API queries and manual aggregation. This saves SOC teams and administrators significant time during initial investigation.

ℹ️ Beispiel-Prompts: Benutzer und Gruppen ℹ️ Example Prompts: Users and Groups

- „Zeige mir alle Entra ID-Rollen und Lizenzen, die max.mustermann@contoso.com zugewiesen sind.""Show me all Entra ID roles and licenses assigned to max.mustermann@contoso.com."
- „Wer ist Mitglied der Gruppe 'IT-Administratoren' und seit wann?""Who is a member of the group 'IT-Administrators' and since when?"
- „Welche privilegierten Rollen hat max.mustermann@contoso.com direkt oder über Gruppen?""Which privileged roles does max.mustermann@contoso.com have directly or via groups?"
- „Zeige mir alle Benutzer, die seit mehr als 90 Tagen inaktiv sind.""Show me all users who have been inactive for more than 90 days."
- „Welche Gastbenutzer haben Zugriff auf SharePoint und haben sich in den letzten 30 Tagen nicht angemeldet?""Which guest users have access to SharePoint and haven't signed in in the last 30 days?"

PowerShell / Graph API PowerShell / Graph API

    # Vollständiges Benutzerprofil abrufen (alle relevanten Sicherheitsinformationen)
    # Get complete user profile (all relevant security information)
    Connect-MgGraph -Scopes "User.Read.All","Directory.Read.All","AuditLog.Read.All"

    $upn = "max.mustermann@contoso.com"
    $user = Get-MgUser -UserId $upn -Property `
      "id,displayName,userPrincipalName,accountEnabled,assignedLicenses,
       assignedRoles,signInActivity,onPremisesSyncEnabled,lastPasswordChangeDateTime,
       createdDateTime,userType"

    # Rollenzuweisungen
    # Role assignments
    $roles = Get-MgUserMemberOf -UserId $user.Id | `
      Where-Object { $_."@odata.type" -eq "#microsoft.graph.directoryRole" } | `
      Select-Object DisplayName

    # Gruppenmigtliedschaft
    # Group membership
    $groups = Get-MgUserMemberOf -UserId $user.Id | `
      Where-Object { $_."@odata.type" -eq "#microsoft.graph.group" } | `
      Select-Object DisplayName, Id

    # Letzte Anmeldung
    # Last sign-in
    $signInActivity = $user.SignInActivity
    Write-Host "Letzter interaktiver Sign-In / Last interactive sign-in: $($signInActivity.LastSignInDateTime)"
    Write-Host "Letzte non-interaktive Aktivität / Last non-interactive: $($signInActivity.LastNonInteractiveSignInDateTime)"

    # Lizenzstatus
    # License status
    $licenses = Get-MgUserLicenseDetail -UserId $user.Id | Select-Object SkuPartNumber, ServicePlans

## Identity Governance mit Copilot Identity Governance with Copilot

Security Copilot kann bei Identity-Governance-Aufgaben unterstützen: Access Reviews prüfen, Entitlement-Management-Pakete analysieren, Lifecycle-Workflow-Ausführungen nachverfolgen und PIM-Aktivierungshistorie untersuchen. Security Copilot can assist with Identity Governance tasks: review access reviews, analyze entitlement management packages, track lifecycle workflow executions, and investigate PIM activation history.

Governance-Bereich Governance Area | Copilot-Fähigkeit Copilot Capability | Graph API Endpoint Graph API Endpoint
--- | --- | ---
Access Reviews Access Reviews | Offene Reviews anzeigen, nicht reviewte Mitglieder identifizieren, Abschlussrate berechnen Show open reviews, identify un-reviewed members, calculate completion rate | /identityGovernance/accessReviews/identityGovernance/accessReviews
Entitlement Management Entitlement Management | Zugriffspakete und ihre Zuweisungen analysieren, ablaufende Zuweisungen identifizieren Analyze access packages and their assignments, identify expiring assignments | /identityGovernance/entitlementManagement/identityGovernance/entitlementManagement
Lifecycle Workflows Lifecycle Workflows | Workflow-Ausführungshistorie anzeigen, fehlgeschlagene Workflow-Aufgaben identifizieren View workflow execution history, identify failed workflow tasks | /identityGovernance/lifecycleWorkflows/identityGovernance/lifecycleWorkflows
PIM Aktivierungen PIM Activations | PIM-Aktivierungshistorie für Benutzer und Rollen anzeigen, ungewöhnliche Aktivierungen erkennen View PIM activation history for users and roles, detect unusual activations | /roleManagement/directory/roleAssignmentScheduleInstances/roleManagement/directory/roleAssignmentScheduleInstances

PowerShell / Graph API PowerShell / Graph API

    # PIM Aktivierungshistorie der letzten 30 Tage
    # PIM activation history for the last 30 days
    Connect-MgGraph -Scopes "RoleManagement.Read.Directory", "AuditLog.Read.All"

    $activations = Invoke-MgGraphRequest -Method GET `
      -Uri "https://graph.microsoft.com/v1.0/auditLogs/directoryAudits?`$filter=loggedByService eq 'PIM' and activityDateTime ge $((Get-Date).AddDays(-30).ToString('yyyy-MM-ddTHH:mm:ssZ'))&`$top=100"

    $activations.value | ForEach-Object {
        [PSCustomObject]@{
            ActivityDateTime = $_.activityDateTime
            Activity         = $_.activityDisplayName
            Initiator        = $_.initiatedBy.user.userPrincipalName
            TargetRole       = ($_.targetResources | Where-Object type -eq "Role").displayName
            Result           = $_.result
        }
    } | Format-Table -AutoSize

    # Access Reviews Status
    # Access Review Status
    $reviews = Invoke-MgGraphRequest -Method GET `
      -Uri "https://graph.microsoft.com/v1.0/identityGovernance/accessReviews/definitions?`$filter=status eq 'InProgress'"
    $reviews.value | Select-Object displayName, status, startDateTime, endDateTime | Format-Table -AutoSize

## Audit-Log-Analyse mit Copilot Audit Log Analysis with Copilot

Die Analyse von Audit-Logs ist ohne KI-Unterstützung aufwändig — tausende von Einträgen müssen gefiltert und kontextualisiert werden. Security Copilot kann Audit-Logs in natürlicher Sprache abfragen und wichtige Aktivitäten hervorheben, z. B. ungewöhnliche Admin-Aktionen, App-Consent-Ereignisse und Verzeichnisänderungen. Analyzing audit logs without AI support is time-consuming — thousands of entries need to be filtered and contextualized. Security Copilot can query audit logs in natural language and highlight important activities, e.g., unusual admin actions, app consent events, and directory changes.

ℹ️ Beispiel-Prompts: Audit-Log-Analyse ℹ️ Example Prompts: Audit Log Analysis

- „Welche administrativen Aktionen hat max.mustermann@contoso.com in den letzten 24 Stunden durchgeführt?""What administrative actions did max.mustermann@contoso.com perform in the last 24 hours?"
- „Zeige mir alle App-Consent-Grants der letzten Woche. Gibt es Anomalien?""Show me all app consent grants from the last week. Are there any anomalies?"
- „Wer hat in den letzten 7 Tagen Benutzer zu Administratorrollen hinzugefügt?""Who added users to administrator roles in the last 7 days?"
- „Wurden in den letzten 30 Tagen Conditional-Access-Policies deaktiviert oder gelöscht?""Were any Conditional Access policies disabled or deleted in the last 30 days?"
- „Zeige mir alle Verzeichnisänderungen am vergangenen Freitag zwischen 18:00 und 23:59 Uhr.""Show me all directory changes last Friday between 6 PM and 11:59 PM."

KQL KQL

    // KQL: Verdächtige App-Consent-Grants erkennen
    // KQL: Detect suspicious app consent grants
    AuditLogs
    | where TimeGenerated > ago(7d)
    | where OperationName in ("Consent to application", "Add delegated permission grant")
    | extend
        ConsentedBy    = tostring(InitiatedBy.user.userPrincipalName),
        AppName        = tostring(TargetResources[0].displayName),
        GrantedScopes  = tostring(AdditionalDetails)
    | project TimeGenerated, ConsentedBy, AppName, GrantedScopes, Result
    | sort by TimeGenerated desc

    // KQL: Rollenzuweisungsänderungen der letzten 24 Stunden
    // KQL: Role assignment changes in the last 24 hours
    AuditLogs
    | where TimeGenerated > ago(24h)
    | where Category == "RoleManagement"
    | where OperationName in ("Add member to role", "Remove member from role")
    | extend
        Actor      = tostring(InitiatedBy.user.userPrincipalName),
        TargetUser = tostring(TargetResources[0].displayName),
        RoleName   = tostring(TargetResources[1].displayName)
    | project TimeGenerated, Actor, OperationName, TargetUser, RoleName
    | sort by TimeGenerated desc

    // KQL: CA-Policy-Änderungen erkennen
    // KQL: Detect CA policy changes
    AuditLogs
    | where TimeGenerated > ago(30d)
    | where Category == "Policy"
    | where OperationName startswith "Update conditional access policy"
         or OperationName startswith "Delete conditional access policy"
    | extend
        Actor      = tostring(InitiatedBy.user.userPrincipalName),
        PolicyName = tostring(TargetResources[0].displayName)
    | project TimeGenerated, Actor, OperationName, PolicyName, Result

## Copilot Skills für Microsoft Entra Copilot Skills for Microsoft Entra

Security Copilot stellt für Microsoft Entra vordefinierte „Skills" zur Verfügung. Jede Skill ist eine spezialisierte Fähigkeit, die bestimmte Daten aus Entra ID abruft und verarbeitet. Benutzer können Skills direkt über natürliche Sprache aufrufen oder explizit in Prompts referenzieren. Security Copilot provides predefined "Skills" for Microsoft Entra. Each skill is a specialized capability that retrieves and processes specific data from Entra ID. Users can invoke skills directly through natural language or reference them explicitly in prompts.

Skill-Kategorie Skill Category | Skill-Name Skill Name | Beschreibung Description
--- | --- | ---
Benutzer Users | Get User Details Get User Details | Vollständige Benutzerinformationen inkl. Rollen, Gruppen, Lizenzen, letzter Anmeldung Complete user information including roles, groups, licenses, last sign-in
Benutzer Users | List Inactive Users List Inactive Users | Benutzer nach Inaktivitätszeitraum filtern Filter users by inactivity period
Gruppen Groups | Get Group Members Get Group Members | Alle Mitglieder einer Gruppe mit deren Rollen und Berechtigungen All members of a group with their roles and permissions
Rollen Roles | List Role Assignments List Role Assignments | Alle aktiven Rollenzuweisungen mit Typ (direkt/über Gruppe/PIM berechtigt)All active role assignments with type (direct/via group/PIM eligible)
Anmeldungen Sign-ins | Summarize Sign-in Logs Summarize Sign-in Logs | Sign-in-Protokolle für Benutzer oder Zeitraum zusammenfassen Summarize sign-in logs for a user or time period
Anmeldungen Sign-ins | Diagnose Sign-in Failure Diagnose Sign-in Failure | Fehlgeschlagene Anmeldung erklären und Lösungsschritte vorschlagen Explain failed sign-in and suggest remediation steps
Risiken Risks | Get User Risk Details Get User Risk Details | Alle Risikodetails für Benutzer inkl. Erkennungstypen und Empfehlungen All risk details for user including detection types and recommendations
Risiken Risks | List Risky Users List Risky Users | Alle riskanten Benutzer nach Level und Status filtern Filter all risky users by level and status
Richtlinien Policies | Analyze CA Policy Analyze CA Policy | Bestehende CA-Policy analysieren, Lücken und Ausschlüsse identifizieren Analyze existing CA policy, identify gaps and exclusions
Richtlinien Policies | CA Policy What-If CA Policy What-If | What-If-Simulation für spezifisches Benutzer/App/Geräte-Szenario What-If simulation for specific user/app/device scenario

### Prompt Engineering für Entra-Abfragen Prompt Engineering for Entra Queries

Effektives Prompt Engineering maximiert die Qualität der Copilot-Antworten. Folgende Prinzipien gelten für Entra-Abfragen: Effective prompt engineering maximizes the quality of Copilot responses. The following principles apply to Entra queries:

Prinzip Principle | Schlechtes Beispiel Poor Example | Gutes Beispiel Good Example
--- | --- | ---
Kontext angeben Provide context | „Zeige Benutzerrisiken""Show user risks" | „Zeige alle Entra-Benutzer mit Risikoniveau Hoch aus den letzten 48 Stunden inkl. Erkennungstyp""Show all Entra users with High risk level from the last 48 hours including detection type"
Ausgabeformat angeben Specify output format | „Analysiere die CA-Policy""Analyze the CA policy" | „Analysiere die CA-Policy 'Block Legacy Auth' und liste alle Ausnahmen als Tabelle mit Begründung""Analyze the CA policy 'Block Legacy Auth' and list all exceptions as a table with justification"
Schrittweise vorgehen Work step-by-step | „Finde und behebe alle Sicherheitsprobleme""Find and fix all security issues" | „Schritt 1: Liste alle riskanten Benutzer. Schritt 2: Für den Benutzer mit höchstem Risiko: erkläre alle Risikoerkennungen.""Step 1: List all risky users. Step 2: For the highest-risk user: explain all risk detections."
Zeitraum angeben Specify time period | „Zeige Admin-Aktivitäten""Show admin activities" | „Zeige alle Admin-Aktivitäten vom Global Administrator-Konto in den letzten 7 Tagen""Show all admin activities from the Global Administrator account in the last 7 days"

### Integration mit Defender, Purview und Intune Integration with Defender, Purview, and Intune

Security Copilot kann Entra-Daten mit Signalen aus anderen Microsoft-Security-Produkten kombinieren. Dies ermöglicht eine ganzheitliche Sicherheitsanalyse, die Identitäts-, Gerät- und Datenperspektiven vereint. Security Copilot can combine Entra data with signals from other Microsoft security products. This enables holistic security analysis that unifies identity, device, and data perspectives.

💡 Cross-Product Prompt Beispiel 💡 Cross-Product Prompt Example

DE: „Untersuche den Benutzer max.mustermann@contoso.com. Prüfe sein Entra-Risikoprofil, seine letzten Anmeldungen, und ob sein Gerät in Intune als konform gilt. Falls Defender for Identity Alarme vorhanden sind, zeige diese ebenfalls." EN: "Investigate user john.doe@contoso.com. Check his Entra risk profile, his recent sign-ins, and whether his device is compliant in Intune. If Defender for Identity alerts exist, show those as well."

## Einrichtung und Konfiguration Setup and Configuration

Vor der Nutzung von Security Copilot für Entra-Szenarien sind folgende Voraussetzungen zu erfüllen: Before using Security Copilot for Entra scenarios, the following prerequisites must be met:

### Lizenzierung: SCU + Entra Licensing: SCU + Entra

Lizenz/Produkt License/Product | Erforderlich für Required for | Hinweis Note
--- | --- | ---
Security Compute Units (SCU)Security Compute Units (SCU) | Alle Security Copilot Funktionen All Security Copilot features | Provisioned-Modell: Mindestens 1 SCU; Kapazitätsplanung wichtig für Multi-Analyst-Betrieb Provisioned model: minimum 1 SCU; capacity planning important for multi-analyst operations
Microsoft Entra ID P1 Microsoft Entra ID P1 | Conditional Access Analyse, Sign-in Logs Conditional Access analysis, sign-in logs | Für grundlegende CA- und Sign-in-Analyse ausreichend Sufficient for basic CA and sign-in analysis
Microsoft Entra ID P2 Microsoft Entra ID P2 | Identity Protection, PIM-Analyse, Governance-Features Identity Protection, PIM analysis, Governance features | Für vollständige Risikoermittlung und Governance-Copilot-Funktionen erforderlich Required for complete risk investigation and governance Copilot functions
Microsoft Entra ID Governance (Add-On)Microsoft Entra ID Governance (Add-On) | Access Reviews, Entitlement Management, Lifecycle Workflows Access Reviews, Entitlement Management, Lifecycle Workflows | Separat lizenziertes Add-On zu Entra ID P2 Separately licensed add-on to Entra ID P2

### Berechtigungen und Rollen Permissions and Roles

⚠️ Security Copilot respektiert RBAC ⚠️ Security Copilot respects RBAC

Security Copilot zeigt nur Daten an, auf die der angemeldete Benutzer aufgrund seiner Entra ID Rollen Zugriff hat. Ein Analyst mit „Security Reader" sieht keine Daten, die „Global Administrator" erfordern. Dies ist kein technisches Limit von Copilot, sondern das korrekte Verhalten durch die Delegation von Berechtigungen an die zugrunde liegenden APIs. Security Copilot only shows data that the signed-in user has access to based on their Entra ID roles. An analyst with "Security Reader" will not see data requiring "Global Administrator." This is not a technical limit of Copilot, but the correct behavior through delegation of permissions to the underlying APIs.

Entra-Rolle Entra Role | Copilot-Zugriff Copilot Access
--- | ---
Security Reader Security Reader | Risikoprofile, Sign-in Logs (lesen), Audit Logs (lesen), CA-Policies (lesen)Risk profiles, sign-in logs (read), audit logs (read), CA policies (read)
Security Operator Security Operator | + Risiken bestätigen/zurücksetzen, Benutzer blockieren+ Confirm/dismiss risks, block users
Security Administrator Security Administrator | + CA-Policies erstellen/bearbeiten, Identity Protection konfigurieren+ Create/edit CA policies, configure Identity Protection
Conditional Access Administrator Conditional Access Administrator | Vollständiger CA-Policy-Zugriff (lesen und schreiben)Full CA policy access (read and write)
Global Reader Global Reader | Lesezugriff auf alle Entra-Daten inkl. privilegierter Informationen Read access to all Entra data including privileged information

PowerShell PowerShell

    # Security Copilot für Entra einrichten
    # Set up Security Copilot for Entra

    # 1. Security Copilot SCU provisionieren (Azure Portal: Security Copilot)
    # 1. Provision Security Copilot SCU (Azure Portal: Security Copilot)
    # Navigiere zu: portal.azure.com → Microsoft Security Copilot → Neue Kapazität erstellen
    # Navigate to: portal.azure.com → Microsoft Security Copilot → Create new capacity

    # 2. Entra-Plugin in Security Copilot aktivieren
    # 2. Enable Entra plugin in Security Copilot
    # Im Security Copilot Portal → Einstellungen → Plugins → Microsoft Entra → Aktivieren
    # In Security Copilot Portal → Settings → Plugins → Microsoft Entra → Enable

    # 3. Capacity Units prüfen (via Az PowerShell)
    # 3. Check Capacity Units (via Az PowerShell)
    Connect-AzAccount
    Get-AzResource -ResourceType "Microsoft.SecurityCopilot/capacities" | `
      Select-Object ResourceGroupName, Name, Location, Sku

    # 4. Rollenzuweisung für Security Copilot Analysten
    # 4. Role assignment for Security Copilot analysts
    $analysts = @("analyst1@contoso.com", "analyst2@contoso.com")
    foreach ($analyst in $analysts) {
        New-MgRoleManagementDirectoryRoleAssignment `
          -PrincipalId (Get-MgUser -UserId $analyst).Id `
          -RoleDefinitionId "5d6b6bb7-de71-4623-b4af-96380a352509" ` # Security Reader
          -DirectoryScopeId "/"
    }

## Eingebettete Copilot-Erfahrung im Entra Admin Center Embedded Copilot Experience in Entra Admin Center

Die eingebettete Copilot-Erfahrung im Entra Admin Center bietet kontextbewusste KI-Unterstützung direkt im Admin-Workflow. Sie erscheint als Seitenleiste oder als inline Zusammenfassung in bestimmten Ansichten. The embedded Copilot experience in the Entra Admin Center provides context-aware AI assistance directly in the admin workflow. It appears as a sidebar or inline summary in certain views.

Ansicht/Kontext View/Context | Copilot-Integration Copilot Integration
--- | ---
Benutzerprofil User Profile | Inline-Zusammenfassung des Risikoniveaus, letzter Anmeldung, zugewiesener Rollen und wichtiger Sicherheitshinweise Inline summary of risk level, last sign-in, assigned roles, and important security notes
Identity Protection → Risky Users Identity Protection → Risky Users | Risikoerklärungs-Panel mit empfohlenen Aktionen für ausgewählten Benutzer Risk explanation panel with recommended actions for selected user
Sign-in Logs Sign-in Logs | Fehlererklärung und CA-Policy-Analyse für ausgewählten Anmeldeeintrag Error explanation and CA policy analysis for selected sign-in entry
Conditional Access → Policy Conditional Access → Policy | Policy-Zusammenfassung in natürlicher Sprache, Lückenanalyse auf Anfrage Policy summary in natural language, gap analysis on request
Vollbild (Fullscreen)Fullscreen | Vollständiges Copilot-Chat-Interface innerhalb des Entra Admin Centers Full Copilot chat interface within the Entra Admin Center

## Best Practices Best Practices

### Effektives Prompting für Security Copilot + Entra Effective Prompting for Security Copilot + Entra

💡 Top 5 Prompting-Tipps für Entra 💡 Top 5 Prompting Tips for Entra

1. Identitäts-Anker setzen: Immer UPN oder ObjectID des Benutzers nennen, nicht nur den Anzeigenamen (Duplikate möglich). Set identity anchors: Always specify UPN or ObjectID of the user, not just display name (duplicates possible).
2. Zeitfenster spezifizieren: „Letzte 24 Stunden", „Seit Montag 08:00 Uhr" oder mit ISO-Timestamp für präzise Analysen. Specify time windows: "Last 24 hours", "since Monday 8 AM" or with ISO timestamp for precise analysis.
3. Aktionen klar benennen: Statt „untersuche den Benutzer" lieber „zeige Risikoprofil, letzte 5 Anmeldungen, und CA-Policy-Ergebnis für diesen Benutzer". Name actions clearly: Instead of "investigate the user", prefer "show risk profile, last 5 sign-ins, and CA policy result for this user".
4. Folgeabfragen stellen: Copilot merkt sich den Konversationskontext — baue auf vorherige Antworten auf: „Zeige nun die Risikodetails für den ersten Benutzer aus dieser Liste". Ask follow-up questions: Copilot remembers conversation context — build on previous responses: "Now show risk details for the first user from that list".
5. Promptbooks nutzen: Erstelle wiederverwendbare Promptbook-Sequenzen für Routineuntersuchungen wie „Tägliches Risk Review" oder „Neuer kompromittierter Benutzer". Use Promptbooks: Create reusable Promptbook sequences for routine investigations like "Daily Risk Review" or "New Compromised User".

### Untersuchungs-Workflows mit Security Copilot Investigation Workflows with Security Copilot

Empfohlener Workflow für die Untersuchung eines potenziell kompromittierten Benutzers: Recommended workflow for investigating a potentially compromised user:

Schritt Step | Copilot-Prompt (DE/EN)Copilot Prompt (DE/EN) | Erwartetes Ergebnis Expected Result
--- | --- | ---
1 1 | „Zeige das vollständige Risikoprofil für [UPN]""Show the complete risk profile for [UPN]" | Risikoniveau, Erkennungstypen, Timeline Risk level, detection types, timeline
2 2 | „Zeige die letzten 10 Anmeldungen dieses Benutzers, inkl. Standort, Gerät und CA-Ergebnis""Show the last 10 sign-ins for this user, including location, device, and CA result" | Sign-in-History mit CA-Auswertung Sign-in history with CA evaluation
3 3 | „Prüfe, ob dieses Gerät konform ist und keine Defender-for-Identity-Alarme hat""Check if this device is compliant and has no Defender for Identity alerts" | Gerätestatus, DfI-Alarme Device status, DfI alerts
4 4 | „Welche privilegierten Rollen hat dieser Benutzer? Gibt es PIM-Aktivierungen in den letzten 24 Stunden?""What privileged roles does this user have? Are there PIM activations in the last 24 hours?" | Rollen-Expositur, PIM-History Role exposure, PIM history
5 5 | „Auf Basis aller bisherigen Erkenntnisse: Ist dieser Benutzer kompromittiert? Nenne empfohlene Gegenmaßnahmen.""Based on all findings so far: Is this user compromised? State recommended countermeasures." | Zusammenfassung und Handlungsempfehlung Summary and recommended actions

🚨 Copilot-Fehlklassifikationen — immer validieren 🚨 Copilot Misclassifications — always validate

Security Copilot kann falsch-positive Risikobewertungen erzeugen oder Kontext aus dem falschen Zeitfenster heranziehen. Vor jeder administrativen Aktion (Benutzersperre, Session-Revoke, Risk-Bestätigung als kompromittiert) sollten die rohen Datenpunkte aus Identity Protection, Sign-in Logs und Audit Logs manuell verifiziert werden. Copilot ist ein Analyse-Assistent, kein autonomer Entscheidungsträger. Security Copilot can produce false-positive risk assessments or pull context from the wrong time window. Before any administrative action (user block, session revoke, risk confirmation as compromised), the raw data points from Identity Protection, sign-in logs, and audit logs should be manually verified. Copilot is an analysis assistant, not an autonomous decision-maker.

### Automatisierung mit Security Copilot + Logic Apps Automation with Security Copilot + Logic Apps

Security Copilot kann in Logic Apps integriert werden, um automatische Untersuchungen bei Identity-Protection-Alarmen auszulösen. Ein Sentinel-Alert (z. B. „Hochrisikobenutzer erkannt") triggert einen Logic App Playbook, der automatisch einen Copilot-Prompt ausführt und das Ergebnis an Teams oder ServiceNow sendet. Security Copilot can be integrated with Logic Apps to trigger automatic investigations on Identity Protection alerts. A Sentinel alert (e.g., "High-risk user detected") triggers a Logic App Playbook that automatically runs a Copilot prompt and sends the result to Teams or ServiceNow.

JSON (Logic App Beispiel)JSON (Logic App Beispiel)

    {
      "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "triggers": {
          "When_Sentinel_alert_fires": {
            "type": "ApiConnection",
            "inputs": {
              "host": { "connection": { "name": "@parameters('$connections')['azuresentinel']['connectionId']" } },
              "method": "post",
              "path": "/subscribe"
            }
          }
        },
        "actions": {
          "Run_Security_Copilot_Prompt": {
            "type": "Http",
            "inputs": {
              "method": "POST",
              "uri": "https://api.securitycopilot.microsoft.com/geo/us/sessions/[sessionId]/prompt",
              "headers": { "Authorization": "Bearer @{variables('copilotToken')}" },
              "body": {
                "prompt": "Investigate the risky user @{triggerBody()?['entities']?[0]?['properties']?['userPrincipalName']}. Summarize the risk level, last sign-ins, and recommend actions."
              }
            }
          },
          "Post_to_Teams": {
            "type": "ApiConnection",
            "inputs": {
              "host": { "connection": { "name": "@parameters('$connections')['teams']['connectionId']" } },
              "method": "post",
              "path": "/v3/beta/teams/@{encodeURIComponent('SOC-Team-ID')}/channels/@{encodeURIComponent('Alerts-Channel-ID')}/messages",
              "body": {
                "body": { "content": "@{body('Run_Security_Copilot_Prompt')?['output']}" }
              }
            }
          }
        }
      }
    }

### Datenschutz und Datenresidenz Privacy and Data Residency

⚠️ Wichtige Datenschutzhinweise ⚠️ Important Privacy Notes

Security Copilot verarbeitet Prompts und Antworten in der konfigurierten Azure-Region (EU: Westeuropa / Nordeuropa). Eingabedaten (Prompts) und Ausgabedaten werden für 30 Tage gespeichert (konfigurierbar). Die Daten werden nicht für das Training des zugrundeliegenden Modells verwendet. Für hochsensible Untersuchungen (z. B. HR-bezogene Fälle) empfehlen sich separate Sitzungen und das sofortige Löschen des Konversationsverlaufs. Security Copilot processes prompts and responses in the configured Azure region (EU: West Europe / North Europe). Input data (prompts) and output data are stored for 30 days (configurable). The data is not used for training the underlying model. For highly sensitive investigations (e.g., HR-related cases), separate sessions are recommended with immediate deletion of conversation history.

## PowerShell/Graph API Referenz PowerShell / Graph API Reference

Aufgabe Task | Graph API / PowerShell Graph API / PowerShell | Erforderlicher Scope Required Scope
--- | --- | ---
Riskante Benutzer auflisten List risky users | GET /identityProtection/riskyUsers GET /identityProtection/riskyUsers | IdentityRiskyUser.Read.All IdentityRiskyUser.Read.All
Risikoerkennungen abrufen Get risk detections | GET /identityProtection/riskDetections GET /identityProtection/riskDetections | IdentityRiskEvent.Read.All IdentityRiskEvent.Read.All
Benutzerrisiko zurücksetzen Dismiss user risk | POST /identityProtection/riskyUsers/dismiss POST /identityProtection/riskyUsers/dismiss | IdentityRiskyUser.ReadWrite.All IdentityRiskyUser.ReadWrite.All
Sign-in Logs lesen Read sign-in logs | GET /auditLogs/signIns GET /auditLogs/signIns | AuditLog.Read.All AuditLog.Read.All
Audit Logs lesen Read audit logs | GET /auditLogs/directoryAudits GET /auditLogs/directoryAudits | AuditLog.Read.All AuditLog.Read.All
CA-Policies lesen Read CA policies | GET /identity/conditionalAccess/policies GET /identity/conditionalAccess/policies | Policy.Read.All Policy.Read.All
Alle Rollenzuweisungen All role assignments | GET /roleManagement/directory/roleAssignments GET /roleManagement/directory/roleAssignments | RoleManagement.Read.Directory RoleManagement.Read.Directory
PIM-Aktivierungen PIM activations | GET /roleManagement/directory/roleAssignmentScheduleInstances GET /roleManagement/directory/roleAssignmentScheduleInstances | RoleManagement.Read.Directory RoleManagement.Read.Directory
Access Reviews Access Reviews | GET /identityGovernance/accessReviews/definitions GET /identityGovernance/accessReviews/definitions | AccessReview.Read.All AccessReview.Read.All
Entitlement Management Entitlement Management | GET /identityGovernance/entitlementManagement/accessPackages GET /identityGovernance/entitlementManagement/accessPackages | EntitlementManagement.Read.All EntitlementManagement.Read.All
Lifecycle Workflows Lifecycle Workflows | GET /identityGovernance/lifecycleWorkflows/workflows GET /identityGovernance/lifecycleWorkflows/workflows | LifecycleWorkflows.Read.All LifecycleWorkflows.Read.All

PowerShell PowerShell

    # Vollständiges Security Copilot + Entra Diagnose-Skript
    # Complete Security Copilot + Entra Diagnostics Script

    #Requires -Modules Microsoft.Graph.Authentication, Microsoft.Graph.Identity.SignIns

    param(
        [Parameter(Mandatory=$false)]
        [string]$UserUPN,
        [Parameter(Mandatory=$false)]
        [int]$DaysBack = 7
    )

    Connect-MgGraph -Scopes @(
        "AuditLog.Read.All",
        "IdentityRiskyUser.ReadWrite.All",
        "IdentityRiskEvent.Read.All",
        "Directory.Read.All",
        "Policy.Read.All"
    ) -ErrorAction Stop

    Write-Host "=== SECURITY COPILOT + ENTRA DIAGNOSTICS ===" -ForegroundColor Cyan

    if ($UserUPN) {
        Write-Host "`n[BENUTZER / USER] $UserUPN" -ForegroundColor Yellow

        # Riskoprofil
        $riskUser = Get-MgRiskyUser -Filter "userPrincipalName eq '$UserUPN'"
        if ($riskUser) {
            Write-Host "  Risikoniveau / Risk Level: $($riskUser.RiskLevel)" -ForegroundColor $(if($riskUser.RiskLevel -eq 'high'){'Red'} else {'Yellow'})
            Write-Host "  Risikostatus / Risk State: $($riskUser.RiskState)"
            Write-Host "  Letzte Risikoaktualisierung / Last Updated: $($riskUser.RiskLastUpdatedDateTime)"
        } else {
            Write-Host "  Kein Risiko erkannt / No risk detected." -ForegroundColor Green
        }

        # Letzte Anmeldungen
        Write-Host "`n  Letzte Anmeldungen / Recent Sign-ins:" -ForegroundColor Yellow
        Get-MgAuditLogSignIn -Filter "userPrincipalName eq '$UserUPN'" -Top 5 | `
            Select-Object CreatedDateTime, AppDisplayName, ResultType, IpAddress, Location | `
            Format-Table -AutoSize
    }

    # Alle Hochrisikobenutzer
    Write-Host "`n[ALLE HOCHRISIKO-BENUTZER / ALL HIGH-RISK USERS]" -ForegroundColor Yellow
    Get-MgRiskyUser -Filter "riskLevel eq 'high' and riskState eq 'atRisk'" | `
        Select-Object UserDisplayName, UserPrincipalName, RiskLevel, RiskLastUpdatedDateTime | `
        Format-Table -AutoSize

    # CA-Policies ohne MFA-Enforcement für alle Benutzer
    Write-Host "`n[CA POLICIES OHNE MFA / CA POLICIES WITHOUT MFA]" -ForegroundColor Yellow
    $policies = Get-MgIdentityConditionalAccessPolicy -All
    $policies | Where-Object {
        $_.GrantControls.BuiltInControls -notcontains "mfa" -and
        $_.State -eq "enabled"
    } | Select-Object DisplayName, State | Format-Table -AutoSize