Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions docs/saml/create-sp-metadata.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
## Install Shibboleth

Check failure on line 1 in docs/saml/create-sp-metadata.md

View workflow job for this annotation

GitHub Actions / check_markdown / check_markdown

First line in a file should be a top-level heading

docs/saml/create-sp-metadata.md:1 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "## Install Shibboleth"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md041.md

repo file for RHEL `/etc/yum.repos.d/shibboleth.repo`

```

Check failure on line 5 in docs/saml/create-sp-metadata.md

View workflow job for this annotation

GitHub Actions / check_markdown / check_markdown

Fenced code blocks should have a language specified

docs/saml/create-sp-metadata.md:5 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md040.md
sudo su -
cat << 'EOF' > /etc/yum.repos.d/shibboleth.repo
[shibboleth]
name=Shibboleth (rockylinux9)
# Please report any problems to https://shibboleth.atlassian.net/jira
type=rpm-md
mirrorlist=https://shibboleth.net/cgi-bin/mirrorlist.cgi/rockylinux9
gpgcheck=1
gpgkey=https://shibboleth.net/downloads/service-provider/RPMS/cantor.repomd.xml.key
enabled=1
EOF
```

```

Check failure on line 19 in docs/saml/create-sp-metadata.md

View workflow job for this annotation

GitHub Actions / check_markdown / check_markdown

Fenced code blocks should have a language specified

docs/saml/create-sp-metadata.md:19 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md040.md
yum install -y shibboleth
```


Check failure on line 23 in docs/saml/create-sp-metadata.md

View workflow job for this annotation

GitHub Actions / check_markdown / check_markdown

Multiple consecutive blank lines

docs/saml/create-sp-metadata.md:23 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md012.md
Start the shibd service,

```

Check failure on line 26 in docs/saml/create-sp-metadata.md

View workflow job for this annotation

GitHub Actions / check_markdown / check_markdown

Fenced code blocks should have a language specified

docs/saml/create-sp-metadata.md:26 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md040.md
sudo systemctl start shibd.service
sudo systemctl enable shibd.service
```

## Verify

```

Check failure on line 33 in docs/saml/create-sp-metadata.md

View workflow job for this annotation

GitHub Actions / check_markdown / check_markdown

Fenced code blocks should have a language specified

docs/saml/create-sp-metadata.md:33 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md040.md
sudo LD_LIBRARY_PATH=/opt/shibboleth/lib64 shibd -t
```

Important is that the last line of the output is:
```

Check failure on line 38 in docs/saml/create-sp-metadata.md

View workflow job for this annotation

GitHub Actions / check_markdown / check_markdown

Fenced code blocks should have a language specified

docs/saml/create-sp-metadata.md:38 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md040.md

Check failure on line 38 in docs/saml/create-sp-metadata.md

View workflow job for this annotation

GitHub Actions / check_markdown / check_markdown

Fenced code blocks should be surrounded by blank lines

docs/saml/create-sp-metadata.md:38 MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md031.md
overall configuration is loadable, check console for non-fatal problems
```


Check failure on line 42 in docs/saml/create-sp-metadata.md

View workflow job for this annotation

GitHub Actions / check_markdown / check_markdown

Multiple consecutive blank lines

docs/saml/create-sp-metadata.md:42 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md012.md
## Configuration

### Generate Certificate and Key for SAML message signing/encrypting

The Shibboleth daemon (`shibd`) needs an X.509 keypair for signing and encrypting SAML messages. Switch recommends to use a dedicated self-signed certificate, independently configured from the SSL/TLS certificate used by the Web server. Checkout the [Certificate Overview](https://www.switch.ch/aai/certificates/) to better understand the role the certificates play in this context.
The web server can use any certificate for providing TLS/SSL. In addition, the Shibboleth SP also needs a keypair with a certificate for signing and decrypting messages. The Service Provider can either use the same certificate as is used for the web server (not recommended) or one can create an independent self-signed certificate with a lifetime of 10 years for usage by the Shibboleth SP only. Switch recommends to use a long-lived, self-signed certificate for usage by the Shibboleth SP.

Check failure on line 49 in docs/saml/create-sp-metadata.md

View workflow job for this annotation

GitHub Actions / check_markdown / check_markdown

Trailing spaces

docs/saml/create-sp-metadata.md:49:1 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md009.md
Generate the x509 certs with `keygen.sh` (Red Hat Enterprise, Rocky, CentOS):

```
sudo /etc/shibboleth/keygen.sh -f -u shibd -h <YOURHOST.EXAMPLE.ORG> -y 10 -o /etc/shibboleth/
```

### Generate the SP metadata

```
sudo /etc/shibboleth/metagen.sh -c /etc/shibboleth/sp-cert.pem -h it-gpt.it.uab.edu > /etc/shibboleth/sp-metadata.xml
```

Check if these four attributes match with your app values
- entityID
- `AssertionConsumerService`
- <ds:X509Certificate>
- SingleLogoutService

This concludes the SP metadata generation. You can open a ticket with ASKIT and attach the metadata file you generated /etc/shibboleth/sp-metadata.xml

Alternately, you can also provide them with a URL where the SP metadata is available for your app. Follow the section below for the additional configuration needed for that.

## Testing

### Configure shibboleth2.xml file for your SP

The shibboleth2.xml file will need to be configured for your Service Provider (SP) to allow it to work with UAB's Identity Provider (IdP). The file comes with the Shibboleth SP software, and is located by default at `/etc/shibboleth/shibboleth2.xml`

### Install Apache

```
yum install -y httpd
systemctl start httpd
systemctl enable httpd
```

### Generate SSL certs
Loading