A Docker container for Sal that uses SAML
You will almost certainly need to edit settings.py and provide your own metadata.xml file from your SAML provider.
The following instructions are provided as a best effort to help get started. They might require modifications to meet specific environments.
SAML_ATTRIBUTE_MAPPING (These values come from OpenLDAP, Active Directory, etc)SAML_CONFIG
entityid Ex: https://sal.example.com/saml2/metadata/assertion_consumer_service Ex: https://sal.example.com/saml2/acs/single_logout_service Ex: https://sal.example.com/saml2/ls/ and https://sal.example.com/saml2/postrequired_attributes - These should match the values from SAML_ATTRIBUTE_MAPPINGidp
root url Ex: https://app.onelogin.com/saml/metadata/1234567890single_sign_on_service Ex: https://apps.onelogin.com/trust/saml2/http-post/sso/1234567890single_logout_service Ex: https://apps.onelogin.com/trust/saml2/http-redirect/slo/1234567890Please note that this docker run is incomplete, but shows where to pass the metadata.xml and settings.py. Also note, latest in the below run should not be used unless you have a real reason (needing a development version). When performing docker run, you should substitute latest for the latest tagged release.
docker run -d --name="sal" \
-p 80:8000 \
-v /yourpath/metadata.xml:/home/docker/sal/sal/metadata.xml \
-v /yourpath/settings.py:/home/docker/sal/sal/settings.py \
--restart="always" \
macadmins/sal-saml:latest
In the OneLogin admin portal click on Apps > Add Apps.
Search for SAML Test Connector (IdP). Click on this option.
Give the application a display name, upload a icon if you wish, and then click save.
Under "Configuration" tab, you will need at least the minimum settings shown below:
Recipient: https://sal.example.com/saml2/acs/ACS (Consumer) URL Validator: .* (Note this is a period followed by an asterisk)ACS (Consumer) URL: https://sal.example.com/saml2/acs/Under the "Parameters" tab, you will need to add the custom iDP Fields/Values. The process looks like:
Field name: FIELD_NAMEFlags: Check the Include in SAML assertionRepeat the above steps for all required fields:
| FIELD_NAME | FIELD_VALUE |
|---|---|
| urn:mace:dir:attribute-def:cn | First Name |
| urn:mace:dir:attribute-def:sn | Last Name |
| urn:mace:dir:attribute-def:mail | |
| urn:mace:dir:attribute-def:uid | Email name part |
Under the "SSO" tab, download the "Issuer URL" metadata file. This will be mounted in your docker container (see above).
Under the "SSO" tab, you will find the "SAML 2.0 Endpoint" and "SLO Endpoint" which will go into the settings.py > idp section.
Lastly, "Save" the SAML Test Connector (IdP).
Okta has a slightly different implementation and a few of the tools that this container uses, specifically pysaml2 and djangosaml2, do not like this implementation by default. Please follow the setup instructions, make sure to replace the example URL:
Create a new app from the admin portal
Platform: Web
Sign on method: SAML 2.0
Under "General Settings", give the app a name, add a logo and modify app visibility as desired.
Under "Configure SAML" enter the following (if no value is given after the colon leave it blank):
Single sign on URL: https://sal.example.com/saml2/acs/
Use this for Recipient URL and Destination URL: Checked
Allow this app to request other SSO URLs: Unchecked (If this option is available)
Audience URI (SP Entity ID): https://sal.example.com/saml2/metadata/
Default RelayState: Unspecified
Application username: Okta username
| Name | Format | Value |
|---|---|---|
| urn:mace:dir:attribute-def:cn | Basic | ${user.firstName} |
| urn:mace:dir:attribute-def:sn | Basic | ${user.lastName} |
| urn:mace:dir:attribute-def:mail | Basic | ${user.email} |
| urn:mace:dir:attribute-def:uid | Basic | ${user.login} |
Sal does not support these at this time.
Under "Feedback":
Are you a customer or partner? I'm an Okta customer adding an internal app
App type: This is an internal app that we have created
Download the metadata file from: "Sign On" tab > Settings > SAML 2.0 > "Identity Provider metadata" link
metadata.xml to match the docker run example. Make sure to move this file to the correct location on your docker host.Under "Sign On" tab > Settings > SAML 2.0 > "View Setup Instructions", you will find the "Identity Provider Single Sign-On URL" and "Identity Provider Issuer" which will go into the settings.py > idp section.
For more information on what to put in your settings.py, look at https://github.com/knaperek/djangosaml2
Also, swing by the #sal channel on the MacAdmins slack team (https://macadmins.org/)
Content type
Image
Digest
sha256:134b2d08e…
Size
429.3 MB
Last updated
almost 2 years ago
docker pull macadmins/sal-saml