Keycloak - Per Server

 

The Keycloak setup is separated into two parts. Firstly the steps that need to be performed on Keycloak are shown, followed by the steps that need to be performed on ISL Conference Proxy (ICP). Please refer to the relevant part:

Setup - Keycloak

Step 1

Sign in to the Keycloak Admin portal using your Keycloak administrator account and create a new Realm if one is not created already.


Step 2

Navigate to "Clients" -> "Create client"

  • Select SAML from the Client type dropdown menu.
  • Set the Client ID (Entity ID) field: https://isl.example.com/sso/saml/sp/metadata.xml
  • Fill out the Name (e.g. ISLConferenceProxy) and Description.

Click Next.


Step 3

Set the following fields:

  • Root URL: https://isl.example.com/
  • Home URL: https://isl.example.com/users/isllight/start.html
  • Valid redirect URIs: https://isl.example.com/* and https://www.isl.example.com/*


Step 4

Navigate to the Advanced tab, and set:

  • Assertion Consumer Service POST Binding URL (mandatory):
    https://isl.example.com/sso/saml/sp/acspost
  • Logout service POST Binding URL (mandatory):
    https://isl.example.com/sso/saml/sp/slopost


Step 5

Navigate to the Client scopes tab, and click on the default "Dedicated" scope.


Step 6

Click Add mapper -> By configuration -> User attribute and set the fields:

Email (mandatory): e-mail
First name (optional): 
first-name
Last name (optional):
last-name

Group list (optional): groups

Note: In larger organizations the number of groups a user is a member of may exceed the ISL Conference Proxy limit, that is 100 groups per user. If your user's group membership count exceeds this limit, we recommend restricting the groups emitted in claims only to the relevant groups for the application.


Step 7

Store the SAML claim names (Name column on the screenshot above) as you will need to include them in the next part of this manual.


Get Keycloak metadata XML URL

Navigate to Realm settings, and scroll down to find Endpoints. Open or Copy the SAML 2.0 Identity Provider Metadata and store the URL as it will be used in step 4 of the ISL Conference Proxy setup.


Setup - ISL Conference Proxy

Step 1

Generate Service Provider (ICP) key-pair (public certificate file and private key). These keys will be used when the Service Provider (ICP) communicates with the Identity Provider (Keycloak). The simplest way of generating the key-pair is using the OpenSSL tool and issuing the commands below. Replace the isl.example.com with your ISL Conference Proxy server address.

openssl genrsa -out sso_saml_sp.key -aes128 2048
openssl req -x509 -key sso_saml_sp.key -out sso_saml_sp.cert -days 3650 -subj "/CN=isl.example.com" 
 

Important: ISL Conference Proxy supports the traditional PEM format (Non PKCS 8). If you are generating a key with OpenSSL 3.x.y, which generates the PKCS 8 by default, use the -traditional flag.

openssl genrsa -traditional -out sso_saml_sp.key -aes128 2048


Step 2

Upload the key-pair (from Step 1) to ISL Conference Proxy Private File storage. You can access Private File storage by opening “ISL Conference Proxy web administration" -> "Configuration" -> "Advanced" -> "File storage" -> "Private”.


Step 3

Configure the ISL Conference Proxy to use the uploaded files in Step 2 for SAML communication. Settings are found under "Configuration" -> "Security". To access files placed in Private storage you have to append "objects/" before the filename.

Important: For the "SAML service provider PEM key file passphrase" enter the passphrase that you entered when generating the key-pair in Step 1.


Step 4

On the same page configure the setting "SAML identity provider XML metadata URL" with the URL that you have stored in Get Keycloak metadata XML URL part of this guide and select "Save" at the bottom of the page.

Important: Replacing the Identity Provider metadata XML file on your ISL Conference Proxy requires restart of the module apps. Navigate to “ISL Conference Proxy web administration" -> "Activity monitor" -> "Servers", select each server, and click "Restart module apps" one by one.


Step 5 (optional)

Enable additional logs in the Core Login module for easier debugging. Under "Configuration" -> "Logs" set the following settings to log anything with a severity greater than 6 (info):

  • Log subsystem [Core Login] Application web login severity report level
  • Log subsystem [Core Login] Login dialog severity report level
  • Log subsystem [Core Login] Single sign-on: SAML severity report level


Step 6

Create an additional domain for Single Sign-On users. A new domain can be created under "User management" -> "Domains", process is further described in the topic titled Domains. In this example, we created a Domain "sso".


Step 7

Set SAML login setting rules under "User management" -> "your_domain" -> "Security". These settings specify how claims obtained via SAML are mapped to ISL Conference Proxy user profile settings. An example configuration looks like this:

[
 ["key", "domain", "sso"]
 ,["key-from-attr", "realname","first-name", " ", "last-name"]
 ,["key", "user_profile::name", "0"]
 ,["key-from-attr", "email", "e-mail"]
 ,["key", "user_profile::email", "0"]
]


Step 8

As the final step in ICP enable Single Sign-On on the same page to force the logins to be redirected to the Identity Provider and thus enable the Single Sign-On functionality. Restart module apps in ISL Conference Proxy when prompted.


Sign In - Web

Step 1

Click "Login" on the ISL Conference Proxy web page.


Step 2

Enter your Keycloak credentials and sign in. You will be redirected back to ICP if login succeeds.


Step 3

You are now logged in and can use all the functionalities of ICP normally. Note that the user is a part of the sso (\\sso\) domain we created during the setup.


Sign In - Application

Step 1

Select "Sign in" button in order to proceed to the Keycloak login. If the setup was successful you will be redirected to the Single Sign-On page.


Step 2

Enter your Keycloak credentials and sign in. You will be redirected back to the application if login succeeds.

Note: If the token received from Keycloak is still active in your default browser you won't have to enter your credentials again.


Step 3

Click on "Grant Access" and you will be logged in and redirected back to the application.


Step 4

You are now logged in and can use the application normally.

Note: If you have enabled additional logs in the Core Login module for easier debugging, navigate to configuration page of your ISL Conference Proxy -> "Configuration" -> "Logs" and set the following settings back to default value:
  • Log subsystem [Core Login] Application web login severity report level
  • Log subsystem [Core Login] Login dialog severity report level
  • Log subsystem [Core Login] Single sign-on: SAML severity report level

Was this article helpful?