Tuesday, 6 September 2016

OpenIG on Docker: The Perfect Couple

"Docker containers wrap a piece of software in a complete filesystem that contains everything needed to run [...]" [1]

OpenIG (Open Identity Gateway) provides an elegant yet flexible way to integrate your applications, devices, APIs with modern identity standards such as token types, authentication and authorization. The gateway as your integration component can be deployed and scaled along the applications and services it secures. 
Whilst organizations adopt containerization as part of a "well-oiled" delivery pipeline, which includes the gateway, OpenIG in a container is also very beneficial for evaluation purposes. Here's how you can evaluate in just a couple of minutes.

As prerequisites, you need docker and git on your system.
  1. Checkout the ForgeRock docker project to retrieve the Dockerfile and sample OpenIG configuration files
    • git clone https://stash.forgerock.org/scm/docker/docker.git
    • cd docker/openig
  2. Build the docker image (the --no-cache option assures that it pulls the latest OpenIG nightly build at each docker build)
    • docker build -t forgerock/openig:latest .
  3. Run the docker image and mount the sample-config directory from your local git copy in the container
    • docker run --detach -p 8080:8080 --volume <LOCAL_PATH_TO_GIT>/docker/openig/sample-config:/var/openig --name openig -it forgerock/openig
To test the sample configuration, point your client (e.g. web browser, curl) to http://localhost:8080/simplethrottle for instance. The response is determined by the StaticResponseHandler setting in the 20-simplethrottle.json file.

A simplified version of this procedure however without the sample configuration but not necessitating usage of git and clone the full repo goes as follows. This is well suited to evaluate the upcoming user interface.
  1. Download the Dockerfile from https://stash.forgerock.org/projects/DOCKER/repos/docker/browse/openig/Dockerfile
  2. Build the docker image (as above)
    • docker build -t forgerock/openig:latest .
  3. Run the docker image
    • docker run -d -p 8080:8080 --name openig -it forgerock/openig
Other useful commands:
  • Stop container: docker stop openig
  • Start container: docker start openig
  • Get shell prompt: docker exec -i -t openig /bin/bash
  • Remove container: docker rm openig


[1] "Package your application into a standardized unit for software development". Retrieved from https://www.docker.com/what-docker on Sep 6th, 2016.