Sign inSign up

lgosling/pim-activation

By lgosling

Updated 5 months ago

Web-based PIM activation tool for Microsoft Entra ID roles, groups, and Azure resources

Image
Security
Developer tools
0

1.3K

lgosling/pim-activation repository overview

PIM Activation Web

GitHub PowerShell 7+ Pode

A web-based Privileged Identity Management (PIM) tool for Microsoft Entra ID, PIM-enabled groups, and Azure Resources. Built with Pode (PowerShell HTTP server) running in Docker, with Entra ID OAuth 2.0 authentication.

Key Features

  • Entra ID Roles — View and activate/deactivate directory roles with AU scope support
  • PIM Groups — Manage PIM-enabled security group memberships (member/owner)
  • Azure Resources — Activate/deactivate Azure subscription and resource roles
  • Saved Profiles — Save role combinations and activate them with two clicks
  • Activation History — History log with analytics and Entra audit log sync
  • Dark/Light Theme — Auto, light, or dark mode with full color customization

Quick Start

1. Pull the image
docker pull lgosling/pim-activation
2. Create a .env file
ENTRA_TENANT_ID=your-tenant-id.onmicrosoft.com
ENTRA_CLIENT_ID=your-app-client-id
ENTRA_CLIENT_SECRET=your-app-client-secret
ENTRA_REDIRECT_URI=https://{FQDN}/api/auth/callback

Replace {FQDN} with your actual domain name (e.g. pim.corp.example.com).

3. Add TLS certificate
mkdir -p certs
# Copy your CA-signed certificate:
cp /path/to/cert.pem certs/cert.pem
cp /path/to/key.pem  certs/key.pem
4. Run
docker run -d \
  --name pim-activation \
  --env-file .env \
  -v ./certs:/etc/pim-certs:ro \
  -v ./config:/etc/pim-config:ro \
  -v pim-data:/var/pim-data \
  -v ./logs:/var/log/pim:rw \
  -p 443:8080 \
  -p 80:8081 \
  --dns 8.8.8.8 --dns 8.8.4.4 \
  lgosling/pim-activation

Or use the docker-compose.yml from the GitHub repository.

5. Open the UI

Navigate to https://{FQDN} — you'll be redirected to Entra ID for authentication.

Environment Variables

VariableDefaultDescription
ENTRA_TENANT_IDrequiredEntra ID tenant ID
ENTRA_CLIENT_IDrequiredApp registration client ID
ENTRA_CLIENT_SECRETrequiredApp registration client secret
ENTRA_REDIRECT_URIrequiredOAuth redirect URI
HTTPS_PORT443Host port for HTTPS
HTTP_PORT80Host port for HTTP (redirects to HTTPS)
LOG_LEVELInformationVerbose, Debug, Information, Warning, Error
SESSION_TIMEOUT3600Session duration in seconds
INCLUDE_ENTRA_ROLEStrueEnable Entra ID directory roles
INCLUDE_GROUPStrueEnable PIM-enabled groups
INCLUDE_AZURE_RESOURCESfalseEnable Azure resource roles
INCLUDE_AUDIT_LOGStrueEnable Entra audit log sync

DNS Note

This container uses Alpine Linux. Due to a musl libc DNS issue, you must provide external DNS servers (--dns 8.8.8.8 --dns 8.8.4.4) or use the provided docker-compose.yml. Without this, API calls to Microsoft Graph will fail.

Documentation

Full documentation, app registration guide, and architecture details are available on GitHub.

License

MIT

Tag summary

Content type

Image

Digest

sha256:44d0bba34

Size

101.4 MB

Last updated

5 months ago

docker pull lgosling/pim-activation