Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Tom Scavo committed Nov 11, 2016
2 parents 71e1aec + dbaa96e commit a2d65c8
Showing 1 changed file with 93 additions and 0 deletions.
93 changes: 93 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# SAML IdP Probe

Probe a SAML IdP deployment

## Installation

Download the dependent [Bash Library](https://github.internet2.edu/InCommon/bash-library) source, change directory to the source directory, and install the source into ``/tmp`` as follows:

```Shell
$ export BIN_DIR=/tmp/bin
$ export LIB_DIR=/tmp/lib
$ ./install.sh $BIN_DIR $LIB_DIR
```

or install into your home directory:

```Shell
$ export BIN_DIR=$HOME/bin
$ export LIB_DIR=$HOME/lib
$ ./install.sh $BIN_DIR $LIB_DIR
```

A target directory will be created if one doesn't already exist. The following files will be installed:

```Shell
$ ls -1 $BIN_DIR
cget.sh

$ ls -1 $LIB_DIR
command_paths.sh
compatible_date.sh
compatible_mktemp.sh
extract_entity.xsl
http_tools.sh
md_tools.sh
```

Next download the SAML IdP Probe project source, change directory to the source directory, and install the source on top of the previous installation:

```Shell
$ ./install.sh $BIN_DIR $LIB_DIR
```

The following files will be installed:

```Shell
$ ls -1 $BIN_DIR
cget.sh
check_idp_error_urls.sh
list_local_idp_error_urls.sh


$ ls -1 $LIB_DIR
command_paths.sh
compatible_date.sh
compatible_mktemp.sh
extract_IdP_entityIDs.xsl
extract_IdP_names.xsl
extract_InCommon_IdP_entityIDs.xsl
extract_entity.xsl
http_tools.sh
md_tools.sh
```

## Overview

Given a list of entityIDs and a metadata source, bash script ``check_idp_error_urls.sh`` probes each entity and determines which of the entityIDs correspond to SAML IdP deployments. For each such deployment, the script determines whether it has an ``errorURL`` in metadata and whether or not that URL is resolvable. For example:

```Shell
# Fetch the main production metadata aggregate at md.incommon.org:
$ MD_LOCATION=http://md.incommon.org/InCommon/InCommon-metadata.xml
$ MD_PATH=$MD_DIR/InCommon-metadata.xml
$ /usr/bin/curl --silent $MD_LOCATION > $MD_PATH

# Probe every errorURL in IdP metadata registered by InCommon
$ /bin/cat $MD_PATH \
| /usr/bin/xsltproc $LIB_DIR/extract_InCommon_IdP_entityIDs.xsl - \
| $BIN_DIR/check_idp_error_urls.sh -f $MD_PATH
```

See the inline help file for details:

```Shell
$ $BIN_DIR/check_idp_error_urls.sh -h
```

## Compatibility

The bash scripts are compatible with both GNU/Linux and Mac OS. The XSLT scripts are written in XSLT 1.0.

## Dependencies

* [Bash Library](https://github.internet2.edu/InCommon/bash-library)

0 comments on commit a2d65c8

Please sign in to comment.