Zero Tenant Connection Required
GuardIAM never asks for a Global Admin consent or a SailPoint API client. Engineers paste a prompt or a CSV and keep the tenant offline.
Zero-Hallucination IAM Engineering Engine
An agentic workspace trained strictly on modern Microsoft Entra ID (MgGraph/KQL), SailPoint ISC, and CyberArk schemas—plus 100% client-side RBAC Role Mining.
Module 1 · Agentic Generator
static catalog · schema validator · model endpoint unwired
Scenario presets
Replaces domains and GUIDs with contoso.com and a zero GUID before a prompt would be submitted. The sample identifiers above stay in the textarea until you synthesize.
Artifact
powershell
#Requires -Version 5.1#Requires -Modules @{ ModuleName = 'Microsoft.Graph.Authentication'; ModuleVersion = '2.0.0' }#Requires -Modules @{ ModuleName = 'Microsoft.Graph.Users'; ModuleVersion = '2.0.0' }#Requires -Modules @{ ModuleName = 'Microsoft.Graph.Users.Actions'; ModuleVersion = '2.0.0' }<#.SYNOPSISAudits Entra ID guests with no sign-in for 90 days and revokes their refresh tokens..NOTESMicrosoft Graph PowerShell SDK v2 only.signInActivity requires AuditLog.Read.All plus ConsistencyLevel eventual.The CSV is written on the operator workstation and is not uploaded.#>$ErrorActionPreference = 'Stop'$cutoff = (Get-Date).ToUniversalTime().AddDays(-90)Connect-MgGraph -Scopes @('User.Read.All''AuditLog.Read.All''User.RevokeSessions.All')$guests = Get-MgUser -Filter "userType eq 'Guest'" -All `-ConsistencyLevel eventual `-CountVariable guestCount `-Property @('id''userPrincipalName''displayName''createdDateTime''signInActivity''accountEnabled')$inactive = [System.Collections.Generic.List[object]]::new()foreach ($guest in $guests) {$activity = $guest.SignInActivity$lastSignIn = $null$lastNonInteractive = $nullif ($null -ne $activity) {$lastSignIn = $activity.LastSignInDateTime$lastNonInteractive = $activity.LastNonInteractiveSignInDateTime}$candidates = @($lastSignIn, $lastNonInteractive) |Where-Object { $null -ne $_ } |Sort-Object -Descending$lastActivity = $candidates | Select-Object -First 1$created = $guest.CreatedDateTimeif ($null -eq $lastActivity -and $null -eq $created) {Write-Warning ("Skipped {0}: no sign-in activity and no createdDateTime." -f $guest.Id)continue}$reference = if ($null -ne $lastActivity) { [datetime]$lastActivity } else { [datetime]$created }if ($reference -ge $cutoff) {continue}[void]$inactive.Add([pscustomobject]@{Id = $guest.IdUserPrincipalName = $guest.UserPrincipalNameDisplayName = $guest.DisplayNameAccountEnabled = $guest.AccountEnabledLastActivityUtc = if ($null -ne $lastActivity) { $reference.ToUniversalTime().ToString('o') } else { 'never' }CreatedDateTimeUtc = if ($null -ne $created) { ([datetime]$created).ToUniversalTime().ToString('o') } else { '' }})}$revoked = [System.Collections.Generic.List[object]]::new()foreach ($guest in $inactive) {$result = Revoke-MgUserSignInSession -UserId $guest.Idif ($result -eq $false) {Write-Warning ("Refresh token revocation was not confirmed for {0}." -f $guest.UserPrincipalName)continue}[void]$revoked.Add($guest)}$revoked | Export-Csv -Path './inactive-guests-revoked.csv' -NoTypeInformation -Encoding utf8Write-Output ("Scanned {0} guests. Revoked refresh tokens for {1} accounts inactive since {2:u}." -f $guestCount, $revoked.Count, $cutoff)
Static AST & Schema Validation
Module 2 · Preview
Drop an entitlement CSV. Papa Parse, clustering, and separation-of-duties analysis run in browser memory — a Web Worker, not a tenant connection. Export the result as an HLD/LLD Markdown pack or a Power BI .pbit audit file. The dump never leaves the laptop.
contoso-entitlements.csv · in memory
SoD preview
| Role cluster | Identities | Entitlements | SoD |
|---|---|---|---|
| AP Invoice Approver | 36 | 8 | Conflicts with Vendor Bank Change |
| Privileged Entra Role | 4 | 3 | Global Admin ∩ Application Admin |
| Helpdesk Password Reset | 22 | 5 | Clear |
Illustrative Contoso output. The mining engine ships with the Architect plan and does not upload the CSV.
Senior IAM engineers and consultants buy GuardIAM the same way they buy a profiler or a diagram tool. Self-serve checkout. No procurement review, no tenant admin, no sales call.
GuardIAM never asks for a Global Admin consent or a SailPoint API client. Engineers paste a prompt or a CSV and keep the tenant offline.
Role mining, clustering, and SoD checks run in the browser. Production entitlement dumps are not logged, stored, or sent to the API.
Graph PowerShell v2, Sentinel and Defender identity tables, ISC transforms, and CyberArk REST API v2 are checked before an artifact is copied.
Start in the sandbox. Upgrade when the stipend or the engagement needs the full engine. Checkout is instant.
Zero Card Required
$0/ forever
For IAM engineers testing syntax validation and quick schema lookups.
Most Popular — Expensable
$39/mo
billed monthly
Fits standard corporate L&D / personal software stipends (<$50/mo) with zero procurement friction.
For Consultants & Architects
$99/mo
billed monthly
Automate weeks of IAM consulting deliverables, RBAC role mining, and SoD audits in minutes.