Identity & Access Management

Stephen Klein

IAM Engineer & Automation Specialist

I design and automate identity lifecycle systems across Microsoft Entra ID and Active Directory — building the provisioning, access governance, and SSO integrations that keep organizations secure and compliant. Currently focused on hybrid identity, zero trust, and PowerShell automation against the Microsoft Graph API.

01

About

I'm an IAM Engineer with a focus on identity and access management, cloud infrastructure, and process automation. My work centers on Microsoft Entra ID — building lifecycle automation, configuring SSO integrations, and designing access control systems that follow least privilege and zero trust principles. My path to tech started in customer service, then took me through medical records before returning to the technology sector. That background gave me strong communication skills and an appreciation for data accuracy and compliance. Today I manage Microsoft 365, Azure, and Entra ID environments alongside Google Workspace, networking equipment, and various third-party systems. I believe in automating repetitive tasks wherever possible, which has led me to build PowerShell-based solutions that integrate multiple platforms into unified workflows.

02

Skills

Cloud & Identity

  • Active Directory (On-Prem)
  • Microsoft Entra ID
  • Microsoft 365 / Azure
  • Exchange Online
  • Google Workspace
  • SAML 2.0 / OIDC / OAuth 2.0
  • Conditional Access
  • Access Reviews
  • SSPR
  • Zero Trust

Automation

  • PowerShell
  • Microsoft Graph API
  • REST API Integration
  • Exchange Online PowerShell

Networking

  • Ubiquiti (UniFi)
  • Fortinet
  • Network Deployment
  • Infrastructure Management

Endpoint Management

  • Microsoft Intune
  • JAMF Pro (MDM)
  • JAMF → Intune Migration
  • Microsoft SCCM
  • iOS/iPad Mass Deployment
  • PXE Boot Imaging

Virtualization & Infrastructure

  • VMware vSphere
  • Docker
  • Ubuntu Server
  • macOS
  • Prometheus
  • Grafana

Systems & Security

  • Microsoft Defender
  • Sophos Endpoint
  • SpamTitan (Email Security)
  • Sherpadesk (ITSM)
  • User Lifecycle Management
  • Technical Documentation
Certifications: SC-300: Microsoft Identity and Access Administrator (In Progress) | CompTIA A+ | Google IT Support Professional
03

Projects

Staff Lifecycle Automation

Complete

A PowerShell-based identity lifecycle management system that automates account provisioning and deprovisioning across eight enterprise platforms. Handles onboarding, offboarding, and role changes from a single execution, reducing onboarding time from 44 minutes to 2.5 minutes (94% faster) and offboarding by 93%.

The system uses two separate Entra ID app registrations: one handling delegated authentication for the Entra-gated web interface, and one using application permissions against the Microsoft Graph API for automated lifecycle operations. This separation follows least privilege principles — the web app operates in user context while the automation layer runs with scoped application permissions independent of any signed-in user.

Features stage-based orchestration, multi-system verification, and dry-run support for safe testing.

PowerShell Microsoft Graph API Active Directory Exchange Online Google Workspace Sherpadesk API SpamTitan Entra ID
View on GitHub →

Password Expiration Ticket Automation

Complete

A PowerShell tool that queries local Active Directory for accounts with expiring passwords, then automatically generates Sherpadesk helpdesk tickets by matching user UPNs to their Sherpadesk accounts. Tickets are assigned to the user's building-specific technician, ensuring the right tech is notified before passwords expire. Eliminates manual tracking and reduces password-related lockouts.

PowerShell Active Directory Sherpadesk API

Sophos to Microsoft Defender Migration

Complete

Migrated endpoint protection from Sophos to Microsoft Defender for Endpoint across the district's device fleet, saving the district several thousand dollars in annual licensing fees. Deployed via JAMF Pro using smart groups targeting specific macOS versions to stage the rollout, validate policy parity, and ensure continuous protection coverage throughout the transition.

Microsoft Defender Sophos Microsoft Intune Endpoint Security

JAMF to Microsoft Intune Migration

In Progress

Migrating approximately 700 staff MacBooks from JAMF Pro to Microsoft Intune for unified endpoint management. The primary challenge is executing the migration without wiping devices, requiring careful planning around MDM profile removal, Intune enrollment, and application redeployment while maintaining user productivity.

Microsoft Intune JAMF Pro macOS Entra ID MDM Profiles

Active Directory & GPO Cleanup

In Progress

Auditing and remediating years of accumulated identity sprawl across the district's Active Directory environment. Identified and disabled 800+ stale device objects, reducing the attack surface from orphaned machine identities and improving the accuracy of directory data used by downstream systems including Entra Connect sync.

Broader scope includes restructuring GPO links to align with proper OU boundaries, eliminating redundant or misapplied policies, and establishing a baseline for ongoing identity governance. This work directly supports the organization's Entra ID hybrid identity posture by ensuring the on-premises AD — the source of authority for synced identities — reflects current, accurate state.

Active Directory Group Policy PowerShell

Unified SSO with Microsoft Entra

In Progress

Centralizing identity management by configuring Microsoft Entra ID as the primary identity provider across enterprise platforms using SAML 2.0 and OIDC. Enables single sign-on for staff, reducing password fatigue and improving security posture.

Implemented SAML SSO for Google Workspace, configuring the ACS URL, entity ID, and attribute claims on the Entra enterprise app side, then mapping the Entra-issued Name ID claim to existing staff Google accounts across mismatched domain namespaces. Currently researching macOS Platform SSO to sync local Mac accounts with Entra credentials for self-service password resets without requiring district network connectivity.

Microsoft Entra ID SAML 2.0 OIDC Google Workspace macOS Platform SSO

Infrastructure Status Page

Complete

A web-based status feed aggregator monitoring real-time health across 26 vendor platforms with color-coded severity cards, live WAN throughput graphs for dual ISP links via the FortiGate API, and a firewall health panel showing firmware, uptime, CPU, and memory utilization. Designed for a wall-mounted display with auto-refresh and glanceable status visible from across the room.

Node.js FortiGate API Microsoft Entra ID / M365 Service Health Caddy NSSM

Print Queue Web UI

Complete

A locally hosted web application that allows building technicians to view and manage district print queues on the Windows print server without requiring access to the Print Management MMC console.

Authentication is handled via a dedicated Entra ID app registration using MSAL with delegated permissions, restricting access to assigned building tech accounts. A separate app registration using application permissions handles backend Graph API calls independent of the signed-in user context. The backend polls the print server via PowerShell on a 30-second cache cycle, exposing a REST API for viewing, canceling, pausing, and resuming print jobs. Deployed as a Windows service on the print server using NSSM.

Node.js Express PowerShell Microsoft Entra ID MSAL NSSM

Device Offboarding Automation

Archived

A PowerShell utility that streamlines device offboarding by automating the removal of devices from multiple management platforms. Handles Active Directory, SCCM, Intune, and Azure cleanup in a single execution, reducing the risk of orphaned device objects. Paused for future development when bandwidth allows.

PowerShell Active Directory SCCM Microsoft Intune Azure

District Knowledge Base

Archived

Initiated the deployment of a self-hosted district-wide knowledge base with role-based access controls via Entra ID integration. Designed to centralize documentation for staff, students, and technicians. Project has been handed off to another team member for continued development.

Wiki.js Docker Entra ID Markdown

HOPS - Homelab Orchestration

Archived

A shell-based automation tool for deploying and managing self-hosted services via Docker Compose. Features a menu-driven interface for spinning up media servers, download clients, and monitoring solutions. Includes encrypted secrets management and cross-platform support for Linux, macOS, and Windows (WSL2).

Shell Docker Docker Compose
View on GitHub →

Hillside Cabins Website

Complete

Website management for a seasonal vacation rental business operating five lakefront cabins on Long Lake in Harrison, Maine. The site provides cabin information, rates, amenities, and contact details for prospective guests looking for lakeside retreats.

Web Management Content Updates Hosting
Visit Site →
04

Contact

Interested in working together or have a question? Feel free to reach out.