Andrew Galbraith

Projects

Every project below opens with a summary written for people who don't do identity for a living. If you stop there, you'll still know what the problem was and what changed.

Translating legacy single sign-on policy into Entra ID

Large organizations often have hundreds of internal web apps that sign people in through an older single sign-on product. Moving them to Microsoft Entra ID means rebuilding each app's access rules in a system that uses different words for the same ideas. I built a proof-of-concept tool that reads the old system's policy export and creates the matching Entra objects automatically, and designed its translation table to teach two groups of experts each other's vocabulary.

Built with PowerShell 5.1, Microsoft Graph, Application Proxy, and Conditional Access.

Read the write-up

PowerShell automation for a global manufacturer

Between 2017 and 2021 I wrote the scripts that kept a manufacturer's Windows estate running: a small workflow engine for setting up and removing user accounts, 31 scheduled jobs for Active Directory, Exchange Online, storage, and Hyper-V housekeeping, and a menu-driven console so the service desk could run routine fixes without touching PowerShell. The whole set is public, with every company identifier replaced.

Built with Windows PowerShell 5.1, Active Directory, Exchange Online, and Hyper-V.

Browse the code on GitHub. Start with the workflow engine, the scheduled jobs, or the service-desk menu.

Piloting phishing-resistant sign-in

Passwords and texted codes can be tricked out of people. Passkeys are built so they can't be. I designed a small, scoped pilot that moves a chosen group to passkeys without locking anyone out: who is in, who is deliberately left out and why, how we know it worked, and how to undo it.

Built with Entra ID authentication strengths, FIDO2 passkeys, and Conditional Access.

Knowing who can change what

Before anyone can review powerful access, someone has to produce an accurate list of who has it, including the people who can switch it on when they need it. I built scripts that inventory every administrator role and every sign-in policy, and export the result as evidence a reviewer can read.

Built with PowerShell, Microsoft Graph, and Entra Privileged Identity Management.

Notes and smaller things

Small operational fixes I got tired of rediscovering. Short, specific, searchable.