PIMActivation
1.1.0
PowerShell module for managing Microsoft Entra ID Privileged Identity Management (PIM) role activations through a modern GUI interface. Supports authentication context, bulk operations, and policy compliance. Developed with AI assistance. Requires PowerShell 7+.
Minimum PowerShell version
7.0
Installation Options
Owners
Copyright
(c) 2025 Sebastian Flæng Markdanner. All rights reserved.
Package Details
Author(s)
- Sebastian Flæng Markdanner
Tags
PIM PrivilegedIdentityManagement EntraID AzureAD Identity Governance RBAC GUI Authentication ConditionalAccess Security Microsoft Graph
Functions
PSEditions
Dependencies
-
- Az.Accounts (>= 3.0.0)
- Microsoft.Graph.Authentication (>= 2.0.0)
- Microsoft.Graph.Identity.DirectoryManagement (>= 2.0.0)
- Microsoft.Graph.Identity.Governance (>= 2.0.0)
- Microsoft.Graph.Users (>= 2.0.0)
Release Notes
## Release Notes v1.1.0
### � Major Improvements
- **WAM Authentication**: Implemented Windows Web Account Manager (WAM) for reliable authentication
- **Removed MSAL.PS Dependency**: Now uses direct MSAL.NET calls for better reliability and performance
- **Enhanced Authentication Context**: Improved handling of conditional access policies
### 🔧 Technical Changes
- Direct integration with Az.Accounts MSAL assemblies
- Eliminated PowerShell 5.1 fallback - now fully PowerShell 7+ native
- Improved error handling and timeout management
- Better assembly loading and management
## Release Notes v1.0.1
### 🔧 Bug Fixes
- Fixed authentication context token acquisition for conditional access policies
- Enhanced error handling for authentication scenarios
- Improved MSAL.PS integration for more reliable interactive authentication prompts
- Fixed timing issues with authentication context token validation
### 🆕 New Features
- Added token caching to minimize re-authentication prompts
- Enhanced authentication context flow with better error messages
- Improved handling of authentication timeouts and cancellation
### 🔧 Technical Changes
- Better integration with MSAL.PS for authentication context scenarios
- Enhanced token validation and refresh logic
- Improved error handling for authentication context failures
## Release Notes v1.0.0
### 🎉 Initial Release
- **Modern GUI Interface**: Clean Windows Forms application for PIM role management
- **Multi-Role Support**: Activate Microsoft Entra ID roles and PIM-enabled security groups
- **Authentication Context**: Seamless handling of Conditional Access authentication context policies
- **Bulk Operations**: Select and activate multiple roles simultaneously with policy validation
- **PowerShell Compatibility**: Requires PowerShell 7+ for optimal performance and modern language features
- **Policy Compliance**: Automatic detection of MFA, justification, and ticket requirements
- **Real-time Updates**: Live monitoring of active assignments and pending requests
### 🔧 Technical Features
- Direct REST API calls for authentication context preservation
- Automatic module dependency management
- Comprehensive error handling and user feedback
### 📋 Requirements
- Windows Operating System
- PowerShell 7+ (Download from https://aka.ms/powershell)
- Microsoft Graph PowerShell modules (auto-installed)
- Az.Accounts module for WAM authentication support
- Appropriate Entra ID permissions for PIM role management
### 📝 Development Note
This module was developed with the assistance of AI tools (GitHub Copilot and Claude), combining AI-accelerated development with human expertise in Microsoft identity and security workflows.
For detailed usage instructions, see the README.md file.
FileList
- PIMActivation.nuspec
- CHANGELOG.md
- CONTRIBUTING.md
- Private\Authentication\Clear-AuthenticationCache.ps1
- Private\RoleManagement\Get-PIMRolePolicy.ps1
- Private\UI\Show-OperationSplash.ps1
- LICENSE
- Private\Authentication\Connect-PIMServices.ps1
- Private\RoleManagement\Get-PIMRoles.ps1
- Private\UI\Show-PIMActivationDialog.ps1
- Private\Authentication\Disconnect-PIMServices.ps1
- Private\RoleManagement\Initialize-AzureResourceSupport.ps1
- Private\UI\Update-PIMRolesList.ps1
- PIMActivation.psd1
- Private\Profiles\Manage-PIMProfiles.ps1
- Private\RoleManagement\Invoke-PIMRoleActivation.ps1
- Private\Utilities\Get-MembershipType.ps1
- PIMActivation.psm1
- Private\RoleManagement\Clear-PIMPolicyCache.ps1
- Private\RoleManagement\Invoke-PIMRoleDeactivation.ps1
- Private\Utilities\Get-ScopeDisplayName.ps1
- README.md
- Private\RoleManagement\Get-AzureResourceRoles.ps1
- Private\RoleManagement\Test-PIMRoleEligibility.ps1
- Private\Utilities\Install-RequiredModules.ps1
- .github\ISSUE_TEMPLATE\bug_report.md
- Private\RoleManagement\Get-EntraIDRoles.ps1
- Private\UI\Initialize-PIMForm.ps1
- Private\Utilities\Show-TopMostMessageBox.ps1
- .github\ISSUE_TEMPLATE\documentation-issue.md
- Private\RoleManagement\Get-GroupRoles.ps1
- Private\UI\New-PIMActiveRolesPanel.ps1
- Private\Utilities\Start-STAProcess.ps1
- .github\ISSUE_TEMPLATE\feature_request.md
- Private\RoleManagement\Get-PIMActiveRoles.ps1
- Private\UI\New-PIMDurationPanel.ps1
- Private\Utilities\Test-AuthenticationContextToken.ps1
- .github\workflows\PSGalleryPublish.yml
- Private\RoleManagement\Get-PIMEligibleRoles.ps1
- Private\UI\New-PIMEligibleRolesPanel.ps1
- Private\Utilities\Test-STAMode.ps1
- docs\about_PIMActivation.help.txt
- Private\RoleManagement\Get-PIMPendingRequests.ps1
- Private\UI\Show-LoadingSplash.ps1
- Public\Start-PIMActivation.ps1