secure workflow
ECS Account Request App
A web app that replaced a paper-style account-request process for an IT team. A request moves from the requester to their manager, then to an approver, and finally to IT for account creation, with email notifications at each step. I recently did a full security review of it and closed every gap I found.
# What it does
- Collects account requests through a web form.
- Routes each request through manager approval, then final approval.
- Emails each person when it is their turn, using the Microsoft Graph API.
- Produces an account-creation package (PDF summary plus a PowerShell script) for IT once a request is fully approved.
- Gives admins a portal to review, manage, and audit requests.
# Tech
# Security work
- Approve/deny links require a per-request access code, so guessing a request ID is not enough.
- PDF downloads and account-creation actions are limited to admins and the assigned approver.
- CSRF protection and blocking of cross-site requests.
- Rate limits on login and other sensitive actions.
- Audit log of approvals, denials, and admin actions; denied requests are kept, not deleted.
- Request data encrypted at rest, with tightly restricted file permissions.
- Secure, HTTP-only session cookies.
- Microsoft Entra sign-in built so approvers must prove who they are (switched on once the tenant side is configured).
- Server: TLS 1.2+ only, key-only SSH, fail2ban, patched dependencies, unused libraries and test scripts removed.
# Screenshots
[TBD: add screenshots to /projects/ecs-forms/ (scrub hostnames, IPs and personal data first)]
# Links
- Source and live site are private (internal app). [TBD: decide whether to share screenshots with sample data]