Unicon/ccc-shib-split-authn

Name: ccc-shib-split-authn

Owner: Unicon, Inc.

Description: This demonstrates how to modify the Shibboleth IdP v3 to support unique users coming from 2 different authn/attribute sources.

Created: 2015-11-03 01:11:23.0

Updated: 2017-03-07 18:20:10.0

Pushed: 2017-02-01 06:52:06.0

Homepage: null

Size: 163

Language: Java

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

ccc-shib-split-authn

This project demonstrates how to modify the Shibboleth IdP v3 to support unique users coming from 2 different authn/attribute sources. The main strategy of this implementation is to only modify resources in the “public” areas of the IdP.

While this has been configured to support two LDAP servers, it should be trivial to switch authentication sources to another forms-based authentication type, such as JAAS/JDBC.

Project layout

IdP configuration files that are either added or changed to utilize the split authn support are located in src/main/IDP_HOME. The directory structure generally mirrors that of an installed IdP.

This project includes a few Java source files. Those can be found in src/main/java and in src/test/java.

This project utilizes Docker for testing (see Testing below). The test env configuration is in src/test/docker-compose.

Developer Notes

Notes on the types of changes made to each resource is available in the project wiki.

Releasing

./gradlew assembleDist will build and package the distributable. New releases should be put in the release section of the project's Github repo.

Installation

Download the latest stable release from https://github.com/Unicon/ccc-shib-split-authn/releases/.

After unpacking the distribution, review the layout of the directory structure. It should line up with your IdP installation. A breakdown of the changes made to each resource is available in the project wiki.

Many of the files have matching equivalents of the default installation, so it may not be desirable to just drop them into your overlay directly. It might be more prudent to use a diff/merge utility to identify changes between the distribution's files and yours.

Notable configuration Settings

The label of the “role/realm” can be changed by adding a property idp.login.realm=<label> to the messages/messages.properties file.

Testing

This project utilizes a pure Shibboleth IdP v3 Docker image along with two 389-ds LDAP images for testing. There is also an Shibboleth SP-based image to simulate the whole SAML process end-to-end.

A hosts file entry should be setup to point idp.ccc.local to the IP address of the docker host.

Assuming that Docker has been setup properly, and your Docker env variables are correct, as well, the containers can be started with:

adlew runContainers

Browsing to https://idp.ccc.local/ will bring you to a landing page. Clicking the link will initiate the SP/IdP flowx. There are test accounts staff1/password and student1/password. Each lives in a separate LDAP server.

The containers can be reset with:

adlew clean

To add in viewing the logs of Jetty, the IdP, the LDAP servers, and the SP, one can run:

nwithLogs.sh

Ctrl+C will stop the logging process, but will leave the containers running. Use './gradlew clean' to terminate and remove those instances.

Release notes

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.