SOC2 Compliance for Microsoft 365

Automated security assessments for Entra ID, Conditional Access, and audit controls

LockList Security provides comprehensive, evidence-ready security assessments for Microsoft 365 tenants. Evaluate your Entra ID configuration, Conditional Access policies, and monitoring controls against SOC2 Trust Service Criteria. Generate auditor-ready reports in minutes, not weeks.

🌐 Scan in Browser ⬇ Download Desktop App
βœ“Read-only Microsoft Graph access
βœ“No data retention
βœ“Open source β€” audit the code yourself
βœ“Desktop app runs 100% locally

Why LockList Security?

Enterprise-grade security assessment tools designed for compliance teams and auditors

πŸ”’

Zero Token Storage

Your Microsoft 365 access tokens never leave your browser. We use delegated authenticationβ€”you sign in, we scan, you get results. No persistent access, no security risk.

πŸ“Š

Evidence-Ready Reports

Download comprehensive reports in PDF, CSV, and JSONL formats. Each scan includes raw evidence from Microsoft Graph API, perfect for auditor verification and compliance documentation.

⚑

One-Time Scans

No ongoing monitoring, no data retention. Run assessments on-demand when you need them. Perfect for pre-audit preparation, compliance reviews, and security assessments.

🎯

SOC2 Mapped Controls

Every security check maps directly to SOC2 Trust Service Criteria. Understand exactly which controls you're meeting and where gaps exist, with clear remediation guidance.

πŸ”

Comprehensive Coverage

Assess 11 critical security areas: MFA enforcement, legacy auth blocking, privileged access, directory roles, audit logging, and more. All evaluated against industry standards.

πŸ›‘οΈ

Read-Only Operations

Our scans use read-only Microsoft Graph API permissions. We never modify your tenant configurationβ€”we only assess and report on your current security posture.

πŸ‘οΈ

Open Source & Auditable

The full source code is public on GitHub. You can read every line of code that touches your data before you run it. No black boxes β€” exactly what you need for a security tool.

πŸ”’ 100% Local Execution

Your Data Never Leaves Your Computer

LockList Security runs as a local desktop app. The backend server runs on your machine, scans happen on your machine, and results stay on your machine β€” we never see your org data.

πŸ–₯️

Local Backend Server

The FastAPI server runs on localhost:8000 on your own machine. Every API call, every result, every report β€” processed locally. There is no LockList cloud server involved.

πŸ”‘

Token Never Stored

Your Microsoft 365 access token is used for the scan and then discarded. It is never written to a database, never sent to a third-party server, and expires on its own after ~1 hour.

πŸ“‘

Only Talks to Microsoft

The only outbound connections made during a scan are to graph.microsoft.com and login.microsoftonline.com β€” Microsoft's own infrastructure. No data is sent anywhere else.

πŸ—„οΈ

Results Stored Locally

Scan results are saved to a SQLite database file (dev.db) on your hard drive. Only you can access it. You can delete it at any time to remove all records.

πŸ‘οΈ

Read-Only Permissions

Every Microsoft Graph permission requested is read-only. The app cannot modify your tenant, create users, change policies, or take any action β€” it can only read and report on what already exists.

πŸ“΅

No Telemetry or Analytics

There is no analytics SDK, no crash reporter, no usage tracking. We don't know when you run scans, what your results are, or anything about your organisation. The app has no way to phone home.

βœ“ Your machine β†’ Electron app starts local server on localhost:8000 βœ“ Your machine β†’ Browser opens http://localhost:8000 (never a remote URL) βœ“ Your machine β†’ MSAL.js gets token directly from Microsoft login β†’ Microsoft only β†’ graph.microsoft.com called with your token (read-only) βœ“ Your machine β†’ Results written to local dev.db SQLite file βœ“ Your machine β†’ PDF/CSV/JSONL reports saved locally βœ— Never β†’ No data sent to LockList servers (there are none) βœ— Never β†’ No token storage, no org data retention, no telemetry

SOC2 Control Coverage

Our security scan evaluates your Microsoft 365 tenant against SOC2 Trust Service Criteria

CC6.1 β€” Logical Access

MFA for Admin Roles

Verifies that Conditional Access policies exist and are enabled for privileged roles. Checks that MFA is required in grant controls and that policies target admin role assignments. Critical for preventing unauthorized administrative access.

CC6.1 β€” Logical Access

MFA for All Users

Evaluates organization-wide MFA enforcement through Conditional Access. Confirms policies include all users and require MFA before granting access to cloud applications. Ensures comprehensive protection across your entire tenant.

CC6.1 β€” Logical Access

Block Legacy Authentication

Detects policies that block legacy authentication protocols (basic auth, IMAP, POP). Legacy protocols bypass MFA and modern security controls, making them a significant attack vector. We verify blocking policies are in place.

CC6.1 β€” Logical Access

Privileged Role Assignments

Inventories all directory role assignments in your tenant. Flags excessive assignments (>10) as potential over-provisioning. Recommends Privileged Identity Management (PIM) and least privilege principles for better access control.

CC6.1 β€” Logical Access

Directory Roles & Membership

Audits Entra ID directory roles and member counts. Provides visibility into who holds sensitive roles like Global Admin, Privileged Role Admin, and Security Admin. Essential for access governance and compliance.

CC6.1 β€” Logical Access

MFA Registration Coverage

Calculates the percentage of users with MFA methods registered. Target is β‰₯95% coverage. Pulls data from Microsoft's authentication methods user registration report to provide accurate metrics.

CC6.1 β€” Logical Access

Per-User Auth Methods

Samples authentication methods registered per user. Validates that admins and high-risk accounts use strong methods like Microsoft Authenticator or FIDO2 security keys, not weaker SMS or phone-based MFA.

CC7.4 β€” Monitoring

Sign-In Logs

Verifies access to sign-in logs via Microsoft Graph API. These logs are essential for detecting failed login attempts, legacy client usage, anomalous access patterns, and potential security incidents.

CC7.4 β€” Monitoring

Directory Audit Logs

Confirms access to directory audit logs that capture administrative actions. Logs include role changes, app consent grants, user modifications, and other critical changes. Required for change management evidence.

CC7.4 β€” Monitoring

Applied CA Policies in Logs

Validates that sign-in logs include appliedConditionalAccessPolicies field. This confirms policy evaluation visibility in your audit trail, essential for understanding why access was granted or denied.

General

Tenant Licensing

Retrieves subscribed SKUs to explain feature availability. Conditional Access requires Entra ID P1 or P2 licenses, while Security Defaults are available on the free tier. Helps understand control limitations.

Technical Architecture

Built on Microsoft Graph API with delegated authenticationβ€”secure, transparent, and evidence-ready

Technology Stack

Authentication
MSAL.js + Entra ID
API
Microsoft Graph (delegated)
Backend
FastAPI + Python
Evidence
PDF / CSV / JSONL

Authentication Flow

LockList Security uses delegated authenticationβ€”your browser obtains an access token directly from Microsoft, and we use it for a single scan request. Tokens are never stored on our servers.

# Step 1: User signs in with Microsoft 365 (Entra ID) # Step 2: Browser obtains access token via MSAL.js β€” token stays in browser # Step 3: User clicks "Run Scan" β†’ token sent to backend for single request # Step 4: Backend calls Microsoft Graph API with delegated token
User β†’ MSAL.js β†’ Access Token β†’ Backend β†’ Microsoft Graph API
# Graph endpoints: /identity/conditionalAccess/policies, /auditLogs/signIns, # /roleManagement/directory/roleAssignments, /reports/authenticationMethods/...

Microsoft Graph Permissions

All permissions are delegated (user context) and read-only. Admin consent is required. We never request write permissions or application-level access.

  • AuditLog.Read.All Access to sign-in logs and directory audit logs for security monitoring and compliance evidence
  • Directory.Read.All Read users, directory roles, and group memberships to assess access governance
  • Policy.Read.All Read Conditional Access policies to evaluate MFA and authentication controls
  • RoleManagement.Read.Directory Read role assignments to inventory privileged access and identify over-provisioning
  • UserAuthenticationMethod.Read.All Read MFA registration status and authentication methods per user
  • Organization.Read.All Read tenant information and subscribed SKUs to understand feature availability

Evidence & Reports

Each scan produces downloadable artifacts suitable for SOC2 audit documentation and compliance reviews.

  • PDF Report Formatted summary with pass/fail status, severity ratings, detailed summaries, and step-by-step remediation guidance. Perfect for executive summaries and auditor presentations.
  • CSV Results Tabular data export for spreadsheet analysis, tracking changes over time, and integration with compliance management tools.
  • JSONL Evidence Machine-readable evidence with raw Microsoft Graph API responses. Includes policy configurations, role assignments, and audit log samples for auditor verification.

Two Ways to Run LockList

Use the browser for a quick scan, or download the desktop app for full local privacy.

🌐

Scan in Browser

No download needed. Sign in with Microsoft 365 and run your assessment instantly. Scan results are processed on our server and displayed in your browser.

  • βœ“ Nothing to install
  • βœ“ Works on any OS
  • βœ“ Results not retained after session
Run Scan Now β†’
πŸ–₯️

Desktop App

Download the Electron app and run everything 100% on your own machine. Your org data never leaves your computer β€” not even to our servers.

  • βœ“ Fully air-gapped β€” no outbound calls except to Microsoft
  • βœ“ Results saved locally in SQLite
  • βœ“ Best for high-security environments
⬇ Windows ⬇ Mac

⚠️ Windows SmartScreen warning? This is normal for new apps without a paid code signing certificate. Click "More info" β†’ "Run anyway" to proceed. The app is open source β€” you can review the full source code before running it.

Each scan costs $5 β€” the software is free and open source. Developers can self-host for free.