Releases: ControlAltDeleteTechBits/identity-atlas
Release list
Identity Atlas v1.0.0
Identity Atlas v1.0.0
Release date: 5 August 2026
Publisher: Control Alt Delete Tech Bits
Identity Atlas 1.0.0 is the first stable release of the local, read-only Microsoft Entra relationship explorer.
Security changes
- Comparison reports no longer embed tenant data inside an inline browser script.
- Comparison data and application logic are separate local resources protected by a restrictive Content Security Policy.
- Hostile tenant strings are covered by automated script-injection regression tests.
Connect-IdentityAtlasaccepts optional dedicatedClientIdandTenantIdvalues for an isolated Microsoft Graph consent boundary.- Settings includes a two-step control for clearing Identity Atlas pins, review states and layout preferences from browser storage.
The main interactive report was not affected by the comparison issue. Version 0.16.0-preview.1 users should upgrade before opening newly generated comparison HTML.
Stable capabilities
- Local collection through delegated Microsoft Graph read permissions.
- Users, groups, nested memberships, applications, service principals, devices and authentication methods.
- Directory roles, active and eligible role assignments, and PIM for Groups.
- Conditional Access policies, named locations and authentication strengths.
- Cross-tenant access, application management policies and Administrative Units.
- Entitlement Management and Access Reviews.
- Evidence-backed access paths with confidence and collection coverage.
- Permission blast radius, security insights, action plans and review states.
- Timeline, report comparison and JSON, CSV, Markdown, Mermaid, SVG and PNG exports.
- Offline single-page report served only on the local loopback interface.
Install from PowerShell Gallery
Install-PSResource IdentityAtlas -Scope CurrentUser -TrustRepository
Import-Module IdentityAtlasPowerShellGet users can run:
Install-Module IdentityAtlas -Scope CurrentUser
Import-Module IdentityAtlasRun
Connect-IdentityAtlas -UseDeviceCode -ContextScope Process
Invoke-IdentityAtlas `
-OutputPath "$env:USERPROFILE\Documents\IdentityAtlas-$(Get-Date -Format 'yyyyMMdd-HHmmss')" `
-OpenReportUse the Governance profile when its additional read permissions and licensed Microsoft Entra features are required.
Upgrade
Update-PSResource IdentityAtlas -Scope CurrentUserPowerShellGet users can run:
Update-Module IdentityAtlasClose existing PowerShell sessions before upgrading if Microsoft Graph modules are loaded.
Data handling
Identity Atlas reports contain administrative evidence and are not encrypted. Keep reports in an access-controlled folder, stop the local report server after use, disconnect Microsoft Graph and delete reports according to organisational retention requirements.
Identity Atlas v0.16.0 preview 1
Identity Atlas v0.16.0 preview 1
Release date: 5 August 2026
Publisher: Control Alt Delete Tech Bits
Identity Atlas v0.16.0 improves the normal administrator experience from collection through to reviewing the local report. PowerShell now shows continuous collection status instead of appearing idle during large tenant exports. When collection finishes, -OpenReport serves the generated live tenant report on the local loopback interface and opens it in the default browser.
Collection progress
The progress display includes:
- The active collector and its position in the Core or Governance profile.
- Current item and total item counts for per-object work.
- Cumulative Microsoft Graph request and retry totals.
- Collected object, relationship and evidence totals.
- Elapsed collection time.
Microsoft Graph throttling and temporary service errors produce a visible warning with the HTTP condition, retry delay and attempt number.
Bounded Graph batches
Authentication method requests are grouped into bounded Microsoft Graph JSON batches instead of issuing one blocking request after another for every user. Application role assignments and owner lookups use the same approach. The default batch size is ten and administrators can select a value from 1 to 20 with -BatchSize.
Every resource subrequest remains GET. The module permits POST only to the Microsoft Graph v1.0 batch transport and validates every contained URI before sending it.
Reduced collection options
-SkipSlowCollectors omits the slower per-object group, device, authentication method and application relationship calls. Granular selection is available through -SkipCollector with these values:
GroupMembersAndOwnersDeviceOwnersAuthenticationMethodsApplicationRoleAssignmentsApplicationOwners
Skipped work is never presented as complete. The generated report records partial coverage, a readable warning and collector metrics identifying each omission.
Cancellation and report opening
Ctrl+C stops the active collection and prints a summary with elapsed time, completed stages and collected totals. An incomplete report package is not written.
After a successful collection, -OpenReport starts the packaged loopback server on 127.0.0.1. Port 8766 is used by default. If it is occupied, Identity Atlas checks the next permitted ports and returns the selected URL and server process ID in the command result.
Example
Import-Module IdentityAtlas
Connect-IdentityAtlas -UseDeviceCode -ContextScope Process
$result = Invoke-IdentityAtlas `
-OutputPath "$env:USERPROFILE\Documents\IdentityAtlasReport" `
-OpenReport
$result | Select-Object OutputPath, ReportUrl, ServerProcessId, Duration, RequestCount, RetryCountFor a deliberately reduced collection:
Invoke-IdentityAtlas `
-OutputPath "$env:USERPROFILE\Documents\IdentityAtlasReport" `
-OpenReport `
-SkipSlowCollectorsValidation status
- PowerShell tests: 64 passed.
- JavaScript graph worker tests: 14 passed.
- PowerShell Script Analyzer: no findings.
- Tenant-data, credential and secret scans: no findings.
- Public release security checks: 13 passed.
- PowerShell Gallery package checks: 16 passed, including isolated discovery, save and clean import.
- Browser interaction checks against existing live development tenant data: passed with no console errors.
- The JSON batch transport passed automated mocked Graph tests but did not receive a fresh live Core collection during this release cycle. It remains preview functionality requiring community field testing.
Identity Atlas v0.15.1 preview 1
Identity Atlas v0.15.1 preview 1
Release status: PowerShell Gallery release candidate
Summary
Identity Atlas v0.15.1 prepares the existing Microsoft Entra relationship explorer for its first PowerShell Gallery publication. The application features and delegated Microsoft Graph permission boundary remain unchanged from v0.15.0.
Installation improvements
- Microsoft.Graph.Authentication 2.38.1 or later is now a declared module dependency.
- PowerShell Gallery installations can acquire the Graph authentication dependency automatically.
- The module declares PowerShell Core compatibility and PowerShell 7 as its minimum version.
- Gallery metadata includes the approved Identity Atlas branding, project link, MIT Licence link, tags and release notes.
After Gallery publication, install the preview with:
Install-PSResource IdentityAtlas -Prerelease -Scope CurrentUser -TrustRepository
Import-Module IdentityAtlasPackage integrity
- The Gallery package is built from the matching checksummed GitHub release archive.
- The NuGet package receives its own SHA256 checksum.
- The package gate checks metadata, dependencies, archive contents, tenant-data and secret patterns, module validity and clean import.
- The package contains no tenant report, automated-test fixture, release output, Git metadata or publisher credential.
Permission boundary
Identity Atlas continues to request delegated, read-only Microsoft Graph permissions. The Core profile remains the default. Governance collection remains explicit and optional. No Microsoft Graph write permission has been added.
Publication status
This candidate has not yet been published to the PowerShell Gallery. Publication requires a Control Alt Delete Tech Bits publisher account and a privately handled Gallery API key.
Identity Atlas v0.15.0 preview 1
Identity Atlas v0.15.0 preview 1
Release status: community preview
Identity Atlas v0.15.0 extends the local relationship model into Microsoft Entra external access and Identity Governance. Core collection remains the default. The new Governance profile is opt-in and requests five additional delegated, read-only Microsoft Graph permissions.
New collection features
- Nested group membership is represented as a first-class relationship and can be followed through evidence-backed access paths.
- Cross-tenant access includes the tenant default, partner configurations and cross-tenant synchronisation state.
- Application management policies include the tenant default, targeted policies and the applications or service principals governed by them.
- Administrative Units include members, scoped directory role assignments and direct administrator relationships.
- PIM for Groups includes active and eligible membership or ownership schedule instances.
- Entitlement Management includes catalogues, access packages, assignment policies, assignments and governed resource roles.
- Access Reviews include definitions, reviewer scopes, instances, decisions and reviewed resources.
Report changes
- Added External access and Governance views.
- Added filters, labels, icons and evidence panels for each new object and relationship type.
- Extended access explanations for nested groups, PIM group assignments, access packages, Administrative Units and Access Reviews.
- Increased evidence-backed path traversal to eight relationships with loop protection.
- Added collection-profile and governance-capability information to the report manifest.
Collection profiles
The default Core profile keeps the existing permission set:
Connect-IdentityAtlas -UseDeviceCode -CollectionProfile Core -ContextScope CurrentUser
Invoke-IdentityAtlas -CollectionProfile Core -OutputPath .\Output\TenantThe Governance profile adds these delegated read permissions:
AdministrativeUnit.Read.All
PrivilegedAssignmentSchedule.Read.AzureADGroup
PrivilegedEligibilitySchedule.Read.AzureADGroup
EntitlementManagement.Read.All
AccessReview.Read.All
Use the profile explicitly for both connection and collection:
Connect-IdentityAtlas -UseDeviceCode -CollectionProfile Governance -ContextScope CurrentUser
Invoke-IdentityAtlas -CollectionProfile Governance -OutputPath .\Output\TenantIdentity Atlas does not request any Microsoft Graph write permission. The signed-in account must still hold a Microsoft Entra role accepted by each endpoint. Some Identity Governance data also requires the relevant tenant licence and configured resources. An unavailable endpoint is recorded as partial coverage rather than silently represented as complete.
Validation evidence
The focused implementation suite covers every new collector and permission boundary:
PowerShell tests: 56 passed, 0 failed
JavaScript tests: 14 passed, 0 failed
PSScriptAnalyzer errors and warnings: 0
Source safety gate: passed
Public release security gate: passed
Browser navigation and filtering against a real-tenant Core report: passed
Browser console errors and warnings: 0
The published archive checksum is supplied separately in IdentityAtlas-v0.15.0-preview.1-SHA256.txt. Verify the downloaded ZIP against that file before extracting it.
Live collection against a tenant containing representative Administrative Units, PIM groups, access packages and Access Reviews remains a post-release validation priority. A tenant without those configured resources can prove endpoint access and empty-result handling, but it cannot prove rendering of data that does not exist.
Known limits
- PIM for Groups requires two filtered Microsoft Graph requests for each collected group. Large-tenant throughput needs further live measurement.
- Identity Governance endpoints may return no objects when the tenant has no matching configuration.
- A granted delegated scope does not replace the Microsoft Entra role required by an endpoint.
- The report contains administrative evidence and must be stored and shared as sensitive tenant data.
- This is preview software. Wider tenant configurations may expose cases that were not present during development testing.
Identity Atlas v0.14.0-preview.1
Identity Atlas v0.14.0-preview.1
Identity Atlas is a local, read-only visual explorer for Microsoft Entra objects, relationships and access paths. This is the first community preview from Control Alt Delete Tech Bits.
Identity Atlas is an independent community project. It is not a Microsoft product and is not affiliated with, endorsed by or sponsored by Microsoft.
Highlights
- Collects users, groups, applications, service principals, directory roles, eligible role assignments, devices, authentication methods and Conditional Access resources through delegated Microsoft Graph read permissions.
- Generates an offline single-page report with local search, filtering, relationship expansion and graph navigation.
- Explains why a user or application has access using evidence-backed paths and coverage confidence.
- Exports graph evidence as Mermaid, SVG, PNG and Markdown.
- Adds severity, action plans, review states, remediation PowerShell snippets and per-finding evidence export.
- Includes permission blast-radius, Conditional Access impact, stale-device and authentication-method hygiene views.
- Supports report comparison, a change timeline, relationship grouping, breadcrumbs and tenant-specific pinned objects.
Security boundaries
- Default Microsoft Graph permissions are delegated and read only.
- The collector sends GET requests to allow-listed Microsoft Graph hosts and API versions.
- Authentication material is removed from recorded collector errors.
- The browser report uses a restrictive Content Security Policy and makes no browser network requests.
- The local server binds to
127.0.0.1, refuses test fixture reports and rejects unsupported HTTP methods. - Generated reports and release archives are excluded from source control.
Reports contain sensitive administrative evidence. Store them in an access-controlled location, do not publish them and stop the local server after use.
Install
- Download
IdentityAtlas-v0.14.0-preview.1.zip. - Download
IdentityAtlas-v0.14.0-preview.1-SHA256.txt. - Verify the ZIP checksum.
- Extract the ZIP into an access-controlled folder.
- Import
IdentityAtlas.psd1from PowerShell 7 or later.
$expected = (Get-Content .\IdentityAtlas-v0.14.0-preview.1-SHA256.txt).Split(' ')[0]
$actual = (Get-FileHash .\IdentityAtlas-v0.14.0-preview.1.zip -Algorithm SHA256).Hash
if ($actual -ne $expected) {
throw 'The downloaded Identity Atlas archive does not match its published checksum.'
}The verified release candidate SHA256 is:
E062075D5169AEF9E7566DADFE82A1C94058D79BA33C398B8C06CC8AB180CE20
Known limitations
- Coverage is partial when Microsoft Graph permissions or the signed-in user’s Microsoft Entra role does not allow a resource to be read.
- Directory-role access paths do not traverse nested group membership.
- Conditional Access impact is based on collected evidence and does not replace Microsoft policy evaluation.
- Reports contain tenant identifiers, user principal names, role assignments and other administrative evidence.
- This preview has been tested in a development tenant, but wider tenant configurations may expose cases not present in that test.
Feedback and security reports
Use GitHub Issues for reproducible bugs and feature requests after the repository is public.
Report suspected vulnerabilities privately by following SECURITY.md.
Support: Mark@controlaltdeletetechbits.co.uk
Donate: https://buymeacoffee.com/cadtb