SAML SSO
Overview#
The Janssen Server acts as a SAML Identity Provider to support outbound SAML single sign-on (SSO). It does this by leveraging the SAML features available in Keycloak, while leveraging the Janssen Server's authentication module to handle the user authentication part of SSO. Once authentication is successful, the user is redirected to the SP with personal attributes and an active SSO session.
Installation#
During installation of the Janssen Server, simply select the option
Install Jans KC
to install and setup SAML SSO for Keycloak. Instructions
on how to setup SAML SSO with Keycloak post-install will eventually be provided.
Managing SAML Service Providers Through the Jans-Cli#
To act as an IDP to various SAML SPs (Service Providers), the latter need to be added to the Janssen Server. This can be done via the Jans TUI which is what we will cover in this section.
Adding a SAML SP#
- Open Jans-TUI
- Select the menu item
Jans SAML
>Service Providers
- Then navigate and select
<Add Service Provider>
- Input the following:
Display Name
: An identifiable name for the Service ProviderEnable TR
: Whether or not the Service Provider should be enabledMetadata Location
: The location of the metadata. The supported options so far arefile
andmanual
.Released Attributes
: The user attributes to be released via the SAML response if authentication is successful
The configurable options are kept to the bare functional minimum but will be expanded gradually.
The manual
metadata option for Metadata Location
, allows the possibility
to specify SP metadata information manually.
IDP Metadata Location#
For SAML authentication to work, there is a need for the SPs to
trust the IDP, which usually is done by using an IDP metadata file that will
be used on the SP side. The metadata can be found at
https://<server-hostname>/kc/realms/jans/protocol/saml/descriptor
where
<server-hostname>
is the hostname of the Janssen server specified during
installation.
IDP Initiated Flows#
This content is a work in progress
IDP Key Management#
This content is a work in progress
Have questions in the meantime?#
You can ask questions through GitHub Discussions or the community chat on Gitter. Any questions you have will help determine what information our documentation should cover.
Want to contribute?#
If you have content you'd like to contribute to this page in the meantime, you can get started with our Contribution guide.
Created: 2022-07-21