| Back | Main view

Single sign on configuration using generic SAML2 plugin

Product:IMiS/ARChive
Release:Since 10.3.2210
Date:08/31/2023

Case: Generic SAML2 plugin enables single sign on authentication method, using external identity provider (IDP). In this article we present different configuration examples, how to configure generic SAML2 plugin to establish single sign on.

Description:

Generic SAML2 plugin validates security token end extract information from it to resolve IMiS ARChive user identity. Plugin is configured with xml configuration tags, which are listed in next sections:

Network related xml tags:
Clock skew xml tags:
Audience xml tags:
If blacklist is defined, then such audience has denied access to SAML2 authentication on IMiS ARChive server. Whitelist must be defined in order to successfully validates SAML2 valid audience. Evaluation order is next: blacklist, whitelist.

Generic SAML2 plugin xml tags:
List of SAML2 supported fields for linked identity resolving:
Combination of "subject" and "issuer" is globally unique identifier across all IDP, and that combination is also preferred by IMiS ARChive plugin configuration. Supported IMiS ARChive plugin configuration fields are next:
Each plugin field can also be additionally manipulated by using embedded translation rules and javascript. For details, check linked articles in "related documents" section. Next few examples demonstrate different SAML2 configurations with Auth0 IDP provider.

Example 1: SAML2 plugin configuration with Auth0

<Arguments>
    <Class>com.imis.imisarc.server.aaa.impl.GenericSAML2Validator</Class>
    <EntityId>urn:tenant-id.eu.auth0.com</EntityId>
    <OnlineIDPMetadata>https://tenant-id.eu.auth0.com/samlp/metadata/tenant-application-id</OnlineIDPMetadata>
    <AudienceWhitelist>urn:auth0:tenant-id:SAML-Auth0-IDP</AudienceWhitelist>
    <SubjectConformationValidRecipient>https://path-to-saml2-assertion-endpoint</SubjectConformationValidRecipient>
    <Field key="sys:dir:lid:Subject" type="string">int:saml2:Subject</Field>
    <Field key="sys:dir:lid:Issuer" type="string">sys:dir:lid:Issuer</Field>
</Arguments>

Example 2: SAML2 plugin configuration with Auth0 with signing certificate validation

<Arguments>
    <Class>com.imis.imisarc.server.aaa.impl.GenericSAML2Validator</Class>
    <EntityId>urn:tenant-id.eu.auth0.com</EntityId>
    <OnlineIDPMetadata>https://tenant-id.eu.auth0.com/samlp/metadata/tenant-application-id</OnlineIDPMetadata>
    <AudienceWhitelist>urn:auth0:tenant-id:SAML-Auth0-IDP</AudienceWhitelist>
    <SubjectConformationValidRecipient>https://path-to-saml2-assertion-endpoint</SubjectConformationValidRecipient>
    <Field key="sys:dir:lid:Subject" type="string">int:saml2:Subject</Field>
    <Field key="sys:dir:lid:Issuer" type="string">sys:dir:lid:Issuer</Field>
    <Field key="sys:dir:lid:EntityX509PEM" type="string">int:saml2:EntityX509PEM</Field>
</Arguments>

Example 3: SAML2 plugin configuration with Auth0, which translates linked identity to Auth0 OIDC format

<Arguments>
    <Class>com.imis.imisarc.server.aaa.impl.GenericSAML2Validator</Class>
    <EntityId>urn:tenant-id.eu.auth0.com</EntityId>
    <OnlineIDPMetadata>https://tenant-id.eu.auth0.com/samlp/metadata/tenant-application-id</OnlineIDPMetadata>
    <AudienceWhitelist>urn:auth0:tenant-id:SAML-Auth0-IDP</AudienceWhitelist>
    <SubjectConformationValidRecipient>https://path-to-saml2-assertion-endpoint</SubjectConformationValidRecipient>
    <Field key="sys:dir:lid:Subject" type="string">int:saml2:Subject</Field>
    <Field key="sys:dir:lid:Issuer" type="string" script="var oidc_compliant = sys_dir_lid_Issuer[0]; oidc_compliant = oidc_compliant.replace('urn:', 'https://') + '/'; oidc_compliant;">int:saml2:Issuer</Field>
</Arguments>

This configuration translates SAML2 subject/issuer linked identity to Auth0 OIDC format, so that user does not need to link two identities (SAML2 and OIDC) on IMiS ARChive server. With such configuration, user needs to link identity from OIDC, and then it can use SAML2 authentication method with Auth0 IDP. For details check article "Single sign on configuration using generic OpenID Connection plugin".

Related Documents:

https://www.owasp.org/index.php/SAML_Security_Cheat_Sheet
https://auth0.com/blog/how-saml-authentication-works/
https://www.samltool.com/saml_documentation.php
https://en.wikipedia.org/wiki/SAML_2.0
Database 'IMiS Knowledge database', View 'By Product', Document 'Generic connector field evaluation using javascript' - Generic connector field evaluation using javascript
Database 'IMiS Knowledge database', View 'By Product', Document 'Generic connector field evaluation using embedded translation rules' - Generic connector field evaluation using embedded translation rules
Database 'IMiS Knowledge database', View 'By Product', Document 'Single sign on configuration using generic OpenID Connection plugin' - Single sign on configuration using generic OpenID Connection plugin

| Back | Main view