IAM Infrastructure Modernization – Internship at IdentIT
Introduction
As part of my internship at IdentIT, a company specialized in Identity and Access Management (IAM) solutions, I was given the opportunity to modernize an existing Ping Identity deployment. The main goal of this project was to transition from a traditional LDAP-based configuration to a more modern and flexible File-Based Configuration (FBC) setup. In doing so, I applied DevOps principles to automate deployments and streamline infrastructure management.
Project Overview
The project focused on setting up both legacy and modernized environments of Ping Identity’s Access Management (PingAM) and Directory Server (PingDS) tools. Initially, I deployed the classic setup using an LDAP configuration to understand the existing structure. After this baseline was established, I worked on converting the deployment to use File-Based Configuration, which allows system configurations to be managed as code, bringing version control, better automation, and easier migration between environments.
To simulate cloud deployments locally, I used Minikube to create a Kubernetes-like environment. I containerized the applications using Docker and automated the provisioning and deployment steps using Ansible Playbooks and Jenkins pipelines. This approach made it possible to rebuild the entire environment reliably with minimal manual effort.
Project Objectives
- Gain a deep understanding of how Identity and Access Management works in enterprise environments.
- Migrate the IAM setup from LDAP-based configuration to File-Based Configuration (FBC).
- Automate infrastructure setup and application deployment using Ansible and Jenkins.
- Implement and test authentication methods, including OAuth 2.0 and social login flows.
- Use Minikube and Docker to simulate a cloud-native deployment environment.
Technology Stack
Throughout the internship, I worked with a wide range of modern DevOps and IAM tools:
- Ping Identity (PingAM & PingDS): Core IAM tools used for managing user access and application security.
- Minikube: A lightweight Kubernetes environment used for local testing and deployment simulations.
- Docker: Containerization of services for consistent and portable deployments.
- Ansible: Automation of deployment steps through reusable playbooks.
- Jenkins: CI/CD pipelines for orchestrating automated builds and deployments.
Challenges and Learnings
One of the biggest challenges was understanding how Ping Identity separates static and dynamic configuration, and how that translates into File-Based Configuration. It required close attention to how changes in the interface translated to exported configuration files.
Another technical hurdle involved troubleshooting network communication between the Minikube environment and the host system. Exposing services externally and testing login flows across virtual boundaries required some creative problem-solving.
Finally, integrating all the tools together, Docker, Minikube, Ansible, Jenkins, and Ping Identity, helped me gain valuable insight into how DevOps pipelines are built and maintained in real-world environments.
Conclusion
This internship was a highly educational and practical experience. I not only deepened my understanding of IAM principles and technologies, but also significantly strengthened my skills in DevOps tooling, automation, and containerization. The result was a fully automated, modern IAM deployment that follows best practices and can be replicated easily across environments.
I'm proud of the progress made during this project, and it has prepared me well for future roles involving cloud infrastructure, security, and automation.