Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.snakysec.com/llms.txt

Use this file to discover all available pages before exploring further.

Microsoft Graph Permissions

Scopes requis par l’app Entra utilisée pour l’audit MSSP (app-only, read-only).

Principe

  • App-only — Pas de permissions déléguées. L’auth se fait via OIDC Workload Identity Federation (GitLab CI) ou cert X.509 (hors CI).
  • Read-only strict — Aucune permission ReadWrite nécessaire. Toute remédiation passe par le MSSP en sessions séparées.
  • Least privilege — Un app registration dédié par environnement (dev / prod), jamais partagé avec d’autres outils.

Permissions Graph (app role)

Base minimale pour les 220 contrôles évalués :
ScopeUtilisé par
Directory.Read.AllUsers, groups, organization settings
Policy.Read.AllAuthorization policy, authentication methods, CA policies
Policy.Read.ConditionalAccessÉvaluation détaillée CA (5.2.2., 5.2.3.)
RoleManagement.Read.AllRole assignments, PIM eligibility
RoleManagement.Read.DirectoryroleManagementPolicies (PIM rules)
RoleEligibilitySchedule.Read.DirectoryPIM eligibility schedules
PrivilegedAccess.Read.AzureADLegacy PIM, backward compat
UserAuthenticationMethod.Read.AllAuthentication method configurations
IdentityRiskEvent.Read.AllSign-in / user risk (CA risk-based)
DeviceManagementConfiguration.Read.AllIntune device config
DeviceManagementManagedDevices.Read.AllIntune device inventory
DeviceManagementRBAC.Read.AllIntune role assignments
DirectoryRecommendations.Read.AllEntra recommendations
Reports.Read.AllUsage & audit reports
ReportSettings.Read.AllReport retention & identifying user
SharePointTenantSettings.Read.AllSharePoint tenant config
ThreatHunting.Read.AllDefender hunting queries
OnPremDirectorySynchronization.Read.AllTest-MsspTenantHybrid (détection AD Connect)

Exchange Online + Security & Compliance PS

Pour les contrôles CIS-EXO et SCuBA EXO, le runner utilise cmdlets en + de Graph :
  • Exchange.ManageAsApp (Graph app permission) + rôle Exchange Online View-Only Configuration assigné au service principal
  • S&C PS (Connect-IPPSSession) pour les contrôles DLP / Alerts / Audit retention (SCuBA EXO 8., 16., 17.3) — nécessite Exchange.ManageAsApp + rôle S&C View-Only Configuration

Teams + SharePoint + PnP

  • MicrosoftTeams PowerShell — Auth app-only via cert X.509 (endpoint MicrosoftTeams)
  • PnP.PowerShell — SharePoint Online cmdlets cross-platform, auth via cert app registration

Grant workflow (client)

  1. MSSP crée l’app registration dans son tenant cible (ou assiste le client).
  2. Ajoute les app roles ci-dessus + admin consent global.
  3. Assigne View-Only Configuration au SPN dans Exchange + S&C.
  4. MSSP installe cert X.509 → upload clé publique dans l’app registration.
  5. MSSP stocke clé privée dans Vault (mssp/data/clients/<slug>).
Voir onboarding-client runbook pour le détail opérationnel.

Détection permissions manquantes

Test-MsspRequiredPermissions (dans Mssp.Auth.psm1) fait un pre-flight au démarrage du runner. Si un scope manque, les contrôles qui en dépendent remontent status: "insufficient_perms" plutôt que error — l’artefact v3 est quand même produit et importé.

Rotation

  • Cert X.509 : rotation annuelle. Les 2 certs (ancien + nouveau) peuvent coexister côté Entra pendant la bascule.
  • Secret client (si jamais utilisé en dev) : expiration ≤ 90 j, rotation via Vault + redémarrage app.
  • GitLab OIDC : pas de rotation (federated trust), renforcer le sub_claim matcher côté Entra federated credential.
Voir runbooks/key-rotation.md.