M365 Show -  Microsoft 365 Digital Workplace Daily
M365 Show with Mirko Peters - Microsoft 365 Digital Workplace Daily
The Hidden Danger of M365 Guest Accounts
0:00
-21:19

The Hidden Danger of M365 Guest Accounts

Imagine this: every guest you’ve ever invited into your Microsoft 365 tenant is still sitting there. No expiration date. No clean-up. Just a growing crowd of external accounts you’ve probably forgotten about. That’s hundreds or even thousands of potential access points into your data — and most companies don’t even realize how many guests are still lingering.

So, what happens when the party never ends? And more importantly, what happens when someone you thought left the building still has the keys?

The Silent Guest Pile-Up

Picture this: you bring in a contractor to support a short project. The engagement is supposed to last two weeks, maybe a month at most. You issue them a guest account in Microsoft 365 so they can access files, attend Teams meetings, and share deliverables. The project ends, the contractor moves on, and everyone forgets about that login. Fast forward five years, and that account still exists. Nobody remembers why it was created, nobody checks whether it’s still in use, and yet it continues to sit in your tenant quietly, almost invisible among the thousands of identities in your directory. This single example might sound extreme, but it’s far more common than most IT administrators like to believe.

The reason is simple: inviting an external user into Microsoft 365 is unbelievably easy. With just a few clicks, anyone with permission in a Team, SharePoint site, or group can send out an invite. Unlike employee onboarding, there’s usually no HR approval, no standardized intake process, and no provisioning workflow. The identity is created instantly, the contractor or partner logs in, and the collaboration begins. But there’s very rarely an equivalent process to remove that identity. Once the work is over, who takes responsibility for cleaning up? The project manager? The site owner? The IT admin? Most of the time, it slips through the cracks because the tenant doesn’t have a coordinated lifecycle process, and so the guest simply stays.

That’s where the problem starts to snowball. Organizations typically assume they’ve got a tight grip on security. Password policies are in place, MFA is configured, users are monitored, and reports get reviewed periodically. But those reports often don’t capture the full picture of guest accounts. A company might think it’s well-governed, only to realize years later that hundreds or even thousands of guest accounts accumulated over time, none of which were ever deactivated. It creates a dangerous blind spot. Admins are patrolling the front gates, but the back door was never locked.

Think about it like office keycards. If every temporary contractor or visitor got a keycard, and nobody ever collected them when the person left, you’d eventually have boxes full of unreturned cards out in the wild. Some of those cards would still open doors. Some might be sitting forgotten in an old drawer, but others could be in circulation, deliberately or accidentally, still used by someone who no longer belongs in your building. That’s exactly how guest accounts pile up in a digital environment—except the “doors” here are your SharePoint sites, Teams channels, and document libraries.

The numbers make it even more concerning. Small firms that only employ 50 or 100 people often uncover several hundred guest accounts lingering in their tenant. If you move up into the enterprise space, the count shoots into the tens of thousands. One multinational I worked with had more guest accounts than actual employee accounts. That’s not because of negligence on any one person’s part—it’s the natural outcome of how collaboration works in the cloud. Every partner meeting, every external workshop, and every customer file review encourages someone to send out another guest invitation. Without a structured way of tracking and closing those accounts, the accumulation is inevitable.

And the shift to hybrid work has accelerated the trend. Before, external collaborators might have been invited sparingly—for a project that truly needed file sharing. Now, with Teams at the center of work, somebody can add a partner representative into a channel in seconds. Distributed teams rely on external consultants more than ever. Each engagement adds another guest, and none of those accounts come with a reminder to clean them up later. The problem compounds at a pace that feels manageable day to day but balloons into a massive backlog when you actually pull the list from the tenant.

The most sobering reality is that many organizations don’t even know this backlog exists. They may audit their licensed users regularly, but unlicensed guest accounts stay invisible in most management dashboards. It’s only when someone takes the time to dig into Azure AD or run a PowerShell report that the true scope becomes visible—often to the surprise of leadership. What they thought was a handful of external identities turns out to be an entire shadow population sitting in their tenant.

So here’s the first key point: the majority of organizations already have far more hidden guests than they realize. This is not a rare edge case; it is normal. Each lingering external account represents a blind spot, a place where oversight failed long before any attacker even tried to breach the system. The sprawl is not only real, it’s already inside your tenant.

Now that we’ve uncovered just how widespread these accounts are, the bigger question is: why are they so risky? Because the real danger doesn’t lie in the numbers alone—it lies in the access that remains active long after it should have been revoked.

When Guests Keep the Keys

What if a vendor you worked with last year still had permission to open your customer financials today? On paper, the contract is closed, the invoices are paid, and the partnership is done. But in your Microsoft 365 tenant, their guest identity is still sitting there, quietly active. That’s not a theoretical problem; it’s the reality for a surprising number of organizations, and it carries far more risk than most teams realize.

The reason it happens is straightforward. Organizations are usually very diligent about managing contracts. Legal teams track when engagements end. Procurement makes sure invoices are closed. Vendors get notified that the project is complete. But the digital identity piece often slips through the cracks. Unless there’s an explicit process for deactivating the guest account at the same time, the user’s access credentials simply remain. The collaboration channel has ended, but the access persists.

Think of it like office security. Imagine you moved your company headquarters and installed a new set of locks at the doors. You hand out new keys to current staff, but you never actually deactivate the old electronic fobs. Now, any former employee or contractor who still has one can walk right up and get inside. There’s no malicious intent required—just the absence of a process to take those rights away. That’s almost exactly how forgotten guest accounts function in a modern cloud tenant, and it’s a blind spot that grows bigger every month.

Attackers know this pattern and actively look for it. A stale guest account already comes bundled with trust. It’s anchored in your tenant, linked to a legitimate domain, and in many cases already configured with approved access into Teams, SharePoint, or other M365 apps. Unlike a typical brute-force attack that tries to hammer your front door, these identities are like keys left lying around. If one of them gets compromised, the attacker doesn’t need to break through a firewall or bypass detection systems—they can walk in as a trusted collaborator.

The danger doesn’t even have to come from a vendor themselves. Many guest accounts are tied to personal or external corporate identities. Those accounts may have weaker security postures than your internal ones. Think about a project where a supplier employee used their personal Gmail-based Microsoft identity to join a shared Team. If that Gmail address gets compromised later, the attacker inherits the same access into your tenant the vendor once had. The access point is indirect, but it’s just as effective. Your environment ends up exposed because another company—or even a person’s personal account—didn’t secure their credentials properly.

And once that external attacker is inside, the risks snowball. Guest permissions in SharePoint and Teams are often broader than admins think. Perhaps a guest was added to a channel that linked multiple document libraries. Or maybe they were part of a folder that contained not just project files, but sensitive customer details alongside unused drafts. It doesn’t take much imagination to see how an overlooked guest could move laterally through resources they were never meant to see. Even a user originally added for a narrow task can find themselves with access footprints stretching far across the tenant.

The worst-case scenarios are ugly. A forgotten guest could exfiltrate financial records, siphon customer data, or harvest internal conversations without anyone realizing the activity wasn’t legitimate. With access routed through an identity that once had approval, detection becomes harder. Security teams might see logs showing “user activity” from a known account, not realizing the account should no longer exist. That means the breach detection timeline lengthens, and the damage spreads. An external hacker would have to work to bypass MFA or exploit vulnerabilities. A lingering guest makes those steps unnecessary—because the trust already exists by design.

This is why many experts consider forgotten guests more dangerous than the stereotypical external hacker. Hackers have to prove themselves against barriers put up to defend your environment. Ghosted guests bypass those barriers because they are insiders by definition. They’ve been explicitly allowed into your tenant at some point in the past. That’s all the foothold an attacker needs, and it’s why unmonitored guest sprawl is not just a nuisance—it’s a genuine threat surface.

And for organizations with strict compliance requirements, the risks don’t stop at security. Once auditors step in, the existence of these accounts reflects a failure of control. The issue goes beyond data safety and ventures directly into legal and regulatory territory.

Compliance Nightmares No One Talks About

You can ace a security audit, walk through every password policy, show that MFA is enforced, and still watch the room go quiet when the auditor asks one simple question: how many external users currently have access to your tenant? That’s the moment many IT teams realize they don’t have a confident answer. Passing checklists is one thing, but frameworks like ISO 27001 or GDPR don’t just care about how strong your passwords are. They care about whether access is controlled, regularly reviewed, and properly revoked. Guests without a lifecycle process cut right through those requirements because they don’t just arrive—they stay.

ISO and GDPR both take a strict view of user governance. ISO expects organizations to define processes for access rights from creation to termination. GDPR adds an even sharper edge by tying personal data exposure to accountability. If an external consultant no longer works with you, but their account remains active in Microsoft 365, any access they still hold could be seen as a failure to minimize data exposure. That’s not an abstract risk—it’s part of the regulation itself. What most teams do is prepare meticulously for internal users while ignoring this entire population of externals.

And it’s not just ISO and GDPR. SOC 2, HIPAA, and industry-specific compliance frameworks all lean on the core principle of least privilege. That principle says users only get the access they need, and only for the time they need it. Allowing guest accounts to pile up breaks that principle every single time. You might have least privilege nailed for employees, but your guests quietly erode the foundation without you noticing. It’s like fixing the front entrance door while leaving a side gate swinging open.

Auditors catch this quickly. One common audit finding is that an organization cannot demonstrate offboarding of external collaborators. They can produce logs showing when employees leave and accounts are disabled, but when asked about contractors, partners, or temporary accounts, the paper trail vanishes. “Who checked that this partner’s access was revoked when the contract ended?” Silence. “What’s the process for ensuring these accounts expire?” More silence. The absence of documentation becomes the finding, and that finding alone can throw your compliance certification off track.

And the costs don’t stop with the audit team. A negative compliance outcome means reputational damage. It signals to customers and partners that sensitive data might not have been governed properly. Depending on the framework, it can also lead to penalties. GDPR doesn’t just wag a finger—it brings the risk of fines tied to revenue. Even outside of regulatory fines, organizations spend heavily in remediation after a bad audit cycle: emergency clean-ups, consulting fees, repeat audits. It’s far cheaper to manage guests upfront than to pay for the fallout later.

The kicker is that many IT leaders believe their reports cover this already. They’ll run automated user audits, pull license reports, check Azure AD dashboards, and assume they’ve got the full picture. But those tools often exclude inactive guests by default or don’t surface lifecycle state information. A guest who hasn’t logged in for three years may not show up in “active user” reports, but their account still exists, still carries permissions, and still represents a compliance violation. Reports designed to track licensed users won’t warn you about the shadow of unlicensed ones.

That’s where the entire illusion of readiness cracks. A beautiful document can describe password complexity and MFA enforcement, but it won’t answer the core compliance question: not how many users you onboarded, but how many you offboarded. Lifecycle management is the missing piece. You can’t prove compliance without it, and no audit checklist will ignore that gap when uncovered.

This is why unmanaged guest access isn’t just a technical oversight. It’s a compliance time bomb. Every forgotten account is an unanswered audit question, and every unanswered question places both your certification and your reputation at risk. The only way forward is to establish defined processes that control the full guest lifecycle, not just the easy part at the beginning.

And that brings us to the next challenge: visibility. Before you can manage the lifecycle, you need to see what’s really out there. You can’t control what you can’t measure, and for most tenants, that’s the first step toward cleaning this up.

Seeing the Unseen: Mapping Your Guest Landscape

Most admins can’t answer a deceptively simple question: how many guest accounts are sitting in your tenant right now? Not roughly, not “more than a few hundred,” but an actual number you can trust. When you start asking that out loud, the room usually goes quiet, because the honest answer is that almost nobody knows. Even experienced admins who live in the Microsoft 365 ecosystem every single day struggle with this. It’s not because they’re careless or lazy. It’s because visibility into guest accounts is neither straightforward nor centralized, and that complexity makes it incredibly easy for the problem to grow unchecked.

On the surface, Microsoft 365 gives you plenty of dashboards and reports. You can pull licensed user counts, check authentication logs, and drill into directory views. But those tools don’t give you a clear picture of the guest landscape. The Microsoft 365 admin center shows you user accounts, yet it doesn’t surface lifecycle status in a way that makes sense for governance. You might see 2,000 listed guests, but it won’t separate which are active collaborators, which haven’t logged in for years, or which came from old projects no one remembers. That lack of segmentation is exactly why admins underestimate the scale. If the data dump is messy, people stop asking deeper questions and leave unknown accounts untouched.

The problem grows even faster inside Teams. Any Team owner can invite externals directly, without needing IT approval. That’s by design—collaboration should be frictionless. But the side effect is what we might call shadow guests. They get pulled in discreetly by project leads, department managers, even line staff running ad hoc initiatives. Those accounts often never cross the desk of central IT. Later, when the project wraps, IT has no idea which guests are linked to which teams. The governance gap widens with every new initiative, and nobody has the master list to prove who still belongs.

Active Directory compounds this confusion. If you check Azure AD or Active Directory guest counts, you’ll see a big number. But that number reflects identities at rest—it doesn’t map to permissions in practice. A guest could exist in the directory yet hold zero collaboration rights. Conversely, guests with actual access to sensitive SharePoint libraries might look no different in the directory than dormant ones. You can’t align the two views easily, and that’s where false comfort sets in. An admin might assume directory headcount tells the story, when in reality the story is told in collaboration permissions, group memberships, and role assignments.

This gap often reveals itself through scripting. Run a PowerShell audit against the directory, especially with filters to check last logins, guest source domains, or group associations, and you start seeing numbers you didn’t expect. A tenant that leadership assumed had 300 or 400 guests suddenly shows 2,500. Another script highlights that some “inactive” guests still belong to critical Teams or SharePoint sites. The jarring part is seeing accounts with no login activity for years that still technically have access to resources. These discoveries aren’t just technical curiosities. They’re wake-up calls.

One case that stands out involved a mid-sized company engaged in long-term partnerships with several suppliers. During a cleanup exercise, they discovered that not just individual users but entire partner organizations were still linked in their tenant. Whole domains had access inherited from projects that wrapped years ago. Nobody had raised a red flag because nobody thought to look at an organization-wide level. For auditors, that kind of oversight isn’t minor—it’s exactly the kind of evidence that shows access controls aren’t being enforced.

When admins first pull these reports, the initial reaction is shock mixed with a little disbelief. How could the tenant have grown so opaque that critical data points lived under the radar? But the real lesson isn’t just “look at the mess.” The insight is that visibility brings clarity. Without visibility, you’re not just carrying technical debt; you’re missing the knowledge that could shape real governance. Every ghost guest in your tenant is both a hole in your security posture and a hole in your compliance readiness. Identifying them is the first shift from reactive firefighting to controlled management.

Cleaning them up is only half the battle. The hidden cost of poor visibility is that you can’t make strategic decisions when you don’t know reality. Security gets planned on assumptions. Compliance work becomes guesswork. Even resource planning suffers, because admins spend hours chasing down blind spots that automated visibility would have solved. The moment you map your guest landscape accurately, you gain more than a list of accounts—you gain leverage. With that leverage, you can actually start addressing risk in a structured, sustained way.

Once that visibility layer is in place, the logical question is how to make sure you don’t land in the same place again. Tracking down thousands of ghosts once is painful enough. Doing it every two years is not sustainable. The solution lies in lifecycle processes that keep the guest population healthy without manual audits. And that’s where the real transformation happens, moving from chaos to predictable control.

From Chaos to Control: The Guest Lifecycle Blueprint

Imagine if every guest account in your tenant came with an expiration date built in. No manual reminders, no sticky notes on a monitor, no spreadsheets chasing who belongs and who doesn’t. Just a simple rule: access ends when the project ends, unless someone deliberately renews it. That’s the core idea of lifecycle management. And it flips the narrative from reactive clean‑up to proactive control. Instead of worrying about how many ghosts are lurking, you set boundaries at the very start.

When we talk about lifecycle management, think of it as a four‑stage track: invitation, access duration, monitoring, and offboarding. The first stage—invitation—is where most organizations have little structure. A project owner needs help from an external partner, so they click a few buttons, and a guest account appears in the tenant. Nothing unusual there. What comes next is the part often missing: attaching rules to that account about how long it lasts, how it’s reviewed, and how it shuts down when it’s no longer needed. It sounds straightforward, but it rarely happens if admins are counting on manual oversight.

Here’s the tension. Many IT teams assume occasional manual reviews are enough. Maybe they schedule a quarterly check to see who’s still around and delete accounts that look inactive. On paper, that seems reasonable, but in practice it falls apart quickly. Once you’ve got thousands of accounts, combing through logs one by one is not realistic. And human checks always trail behind reality. By the time you discover a guest that should have been offboarded, they’ve already had weeks or months of unnecessary access. Manual reviews aren’t just inefficient—they create lag, and lag is where risk accumulates.

Automation solves that problem. You can configure tools that set time‑limited access at the moment of invitation. If someone adds a contractor for a three‑month engagement, the system can automatically place an expiration on that account. At the end of those three months, access stops unless someone explicitly recertifies it. That last part matters: forcing an affirmative renewal means the account doesn’t drift on silently. If the project really continues, the owner can extend the access with an approval. If not, the account ends right there without IT needing to remember.

Imagine the same scenario we discussed earlier—a short‑term contractor. In the old model, their guest account lingers for years after they leave. In the lifecycle model, that account dies automatically unless someone goes out of their way to keep it alive. The difference is accountability. No more mysteries about why a five‑year‑old guest still has access. Expiration dates push every account back into a monitored process instead of leaving it hanging open indefinitely.

What makes this even more valuable is how it aligns with compliance demands. ISO auditors don’t just want to see that you can remove accounts—they want to see that you have a standardized method for doing so. An automated expiration and recertification workflow is far easier to demonstrate in an audit than a manual spreadsheet. When the auditor asks for proof, you can show logs of access reviews being completed, accounts expiring on time, and approvals captured. Suddenly your weakest point in compliance—the absence of a guest offboarding process—becomes a strength.

This is where Microsoft’s own ecosystem tools come into play. Azure AD Access Reviews, for example, can prompt resource owners to validate guest accounts periodically. Conditional Access policies can restrict sessions, require MFA, or block risky logins from older guest accounts. And beyond the built‑in options, third‑party governance platforms tie it all together with dashboards and workflows designed for scale. The key isn’t choosing one perfect tool; it’s deciding that automation has to play the central role. Without it, process breaks under the weight of numbers.

It’s also important to distinguish between one‑time cleanup and an ongoing lifecycle. Running a massive audit to delete stale accounts feels good for a moment. The tenant looks clean, the numbers drop, and IT can claim progress. But without continuous lifecycle management, the sprawl starts again the next day. Sustained control means every new guest is governed the same way: invited under rules, monitored during use, and removed automatically at the end. You replace recurring chaos with predictable rhythms.

That’s the payoff. When you implement lifecycle management, guests stop being silent liabilities. They become managed collaborators whose presence is auditable, predictable, and controlled. Instead of worrying about how much risk your guest population carries, you turn that population into just another part of identity governance. Far less drama, far fewer surprises, and a tenant that’s easier to defend in both security reviews and compliance audits.

And here’s the reality check: setting up this kind of structure does require upfront effort and investment. But the cost of doing nothing—living through uncontrolled sprawl, scrambling at audit time, or worse, suffering a breach traced back to a forgotten guest—will always be higher. Moving to structured processes isn’t a nice‑to‑have anymore; it’s the only sustainable path forward.

Conclusion

Guest accounts might feel like a quick convenience for collaboration, but treat them casually and they become permanent openings into your tenant. The only way to reduce that risk is to manage them as if they were internal identities: controlled, monitored, and expired when no longer needed.

If you’re running Microsoft 365, audit your tenant today. Don’t wait for the next audit or worse, a breach traced back to a forgotten login. Put lifecycle controls or tooling in place before that contractor account still has access months later. The real danger isn’t who joins—it’s who never leaves.

Discussion about this episode

User's avatar