HR data error gave an intern Global Admin and I didn't catch it until they'd been using it for a week

Posted by Curious-Session4119@reddit | sysadmin | View on Reddit | 19 comments

Our Workday to Entra provisioning is automated based on job title. New hire gets tagged as Software Engineer and the system adds them to groups with Azure access for dev environments. Worked fine until it didn't. Intern started last week. HR fat-fingered their job code and put "Senior Software Engineer" instead of whatever the intern code is. Provisioning saw Senior Engineer and gave them the same access as our principal devs. Production Azure subscriptions, deployment pipelines, all of it. Kid spent the week deploying code to what they thought was dev but was actually prod. Logs looked normal because technically they had valid access. Caught it Friday during access review. Intern had access to customer databases and everything else. Nothing bad happened but that's just luck. The automation worked exactly like we built it but the input data was wrong. Now I need to add some kind of validation without making every new hire require manual approval because that kills the whole point of automating this.