SAML Single Sign-On into Joomla using IdentityServer4 | IdentityServer4 SSO | Login using IdentityServer4


IdentityServer4 SAML Single sign-on (SSO) is an authentication method that enables IdentityServer4 users to access multiple Joomla applications with one login and one set of credentials.

What is SSO ?


Single sign-on (SSO) is anauthenticationmethod that enables users to access multiple applications with one-click login and one set of credentials. For example, after users log in to your org, they can automatically access all apps from the App Launcher. When you set up SSO, you configure one system to trust another to authenticate users , eliminating users' need to log in to each system separately. The system that authenticates users is called an Identity provider. The system that trusts the identity provider for authentication is called the Service provider.

SAML allows exchanging of information betweenService ProviderandIdentity provider, SAML isintegration between SP and IDP. When a user tries to log in, your identity provider sends SAML assertions containing facts about the user to Identity Provider. Identity Provider receives the assertion, validates it against your Identity Provider configuration, and allows the user to access your org.


Our plugin is compatible with Joomla 4 as well as with all the SAML 2.0 compliant Identity Providers. Here we will go through a step-by-step guide to configure SAML SSO login between Joomla site and IdentityServer4 by considering IdentityServer4 as IdP (Identity Provider & Joomla as SP (Service Provider).

Download of Plugin



Configuration Support and Free Trial

If you want support in configuring the plugin, or to integrate IdentityServer4 with Joomla, click on Free Configuration Setup button.

We provide a 7 day full feature trial wherein you can fully test out all the features of the plugin, click on Free Business Trial button.

Steps to Integrate IdentityServer4 Single Sign-On (SSO) with Joomla SAML SP

1. Configure IdentityServer4 as IdP

Note: To add SAML IDP functionality you would require modifications in the Startup.cs file.

  • In the ConfigureServices method, your call to AddIdentityServer needs to be updated with the following code:
  •             

    services.AddIdentityServer()
    // the rest of registrations (clients, resources, users, etc)
      .AddSigningCredential(new X509Certificate2(/*your cert*/))
      .AddSamlPlugin(options => {      options.Licensee = "/*your license key org name*/";
         options.LicenseKey = "/*your license key*/";
    })
    .AddInMemoryServiceProviders(new List());

  • In the configure method, the call to UseIdentityServer needs to be extended with following code:
  •         

    app.UseIdentityServer()
      .UseIdentityServerSamlPlugin();

    miniorange img Configure IdentityServer4 as Service Provider

    • In the Config.cs file create a Client entry.
    •             

      new Client {
         ClientId = "http://localhost:5001/saml",
         ClientName = "RSK SAML2P Test Client",
         ProtocolType = IdentityServerConstants.ProtocolTypes.Saml2p,
         AllowedScopes = { "openid", "profile" }
      }

      ClientId Provide clientId from Service Provider Metadata tab
      ClientName Provide Service Provider name
      ProtocolType IdentityServerConstants.ProtocolTypes.Saml2p
      AllowedScopes openid, profile
    • In the Config.cs configure SAML Specifics using Service Provider object.
    •             

      new ServiceProvider {
         EntityId = "http://localhost:5001/saml",
         SigningCertificates = {new X509Certificate2("TestClient.cer")},/*Enter the certificate name*/
         AssertionConsumerServices = { new Service(SamlConstants.BindingTypes.HttpPost, "http://localhost:5001/signin-saml") }
      };

    • Note: The Client ID and Entity ID must be Equal.
    • You would need the following information from the Service Provider Metadata.
    • Entity-Id Provide Entity-Id from Service Provider Metadata tab
      Signing Certificates Download the Certificate from Service Provider Metadata tab of the plugin and enter Certificate name
      Assertion Consumer Service URL Provide the required Binding type followed by the ACS URL:
      Http Post method: SamlConstants.BindingTypes.HttpPost
      Http Redirect method: SamlConstants.BindingTypes.HttpRedirect
      ACS URL: Provide ACS URL from Service Provider Metadata Tab
    • To configure your Service Provider retrieve IDP Metadata by visiting /saml/metadata URL.
    • You will get the endpoints required for the Service Provider configuration.
    • You have successfully configured IdentityServer4 as SAML IDP ( Identity Provider) for achieving IdentityServer4 SSO login into your joomla Site.


    2. Configure Joomla as Service Provider


    • In Joomla SAML plugin, go to Service Provider Setup Tab. There are three ways to configure the plugin:

        SAML SSO Single-Sign-On By Metadata URL :

        • Click on Upload IDP Metadata.
        • Joomla Single Sign On SSO SAML SP, Upload Metadata
        • Enter Metadata URL (Copy from IDP app) and click on Fetch Metadata.
        • Joomla Single Sign On SSO SAML SP, Upload Metadata URL

        SAML SSO Single-Sign-On By Uploading Metadata File:

        • Click on Upload IDP Metadata.
        • Choose metadata file and click on Upload.
        • Joomla Single Sign On SSO SAML SP, Upload Metadata file

        SAML SSO Single-Sign-On Manual Configuration :

        • Copy SAML Entity ID, SAML Single-Sign-On Endpoint URL and x.509 certificate from Federation Metadata document and paste it in IdP Entity ID or Issuer, Single Sign-on Service URL, x.509 Certificate fields respectively in the plugin.
        • IdP Entity ID or Issuer SAML Entity ID in the Federation Metadata document
          Single Sign-On Service URL SAML Single-Sign-On Endpoint URL in the Federation Metadata document
          X.509 Certificate x.509 Certificate in the Federation Metadata document

        SAML SSO Single-Sign-On Add a button on your site login page with the following URL:

          Joomla Single Sign On SSO SAML SP, Signin Settings
    • In Joomla SAML plugin, go to Service Provider Setup Tab. There are three ways to configure the plugin:

        Azure_As_Idp By Metadata URL :

        • Click on Upload IDP Metadata.
        • Joomla Single Sign On SSO SAML SP, Upload Metadata
        • Enter Metadata URL (Copy from IDP app) and click on Fetch Metadata.
        • Joomla Single Sign On SSO SAML SP, Upload Metadata URL

        Azure_As_Idp By Uploading Metadata File:

        • Click on Upload IDP Metadata.
        • Choose metadata file and click on Upload.
        • Joomla Single Sign On SSO SAML SP, Upload Metadata file

        Azure_As_Idp Manual Configuration :

        • Copy SAML Entity ID, SAML Single-Sign-On Endpoint URL and x.509 certificate from Federation Metadata document and paste it in IdP Entity ID or Issuer, Single Sign-on Service URL, x.509 Certificate fields respectively in the plugin.
        • IdP Entity ID or Issuer SAML Entity ID in the Federation Metadata document
          Single Sign-On Service URL SAML Single-Sign-On Endpoint URL in the Federation Metadata document
          X.509 Certificate x.509 Certificate in the Federation Metadata document

        Azure_As_Idp Add a button on your site login page with the following URL:

        Joomla Single Sign On SSO SAML SP, Signin Settings

    3. Attribute Mapping (It is Optional to fill this). This is Premium feature.

    • Attributes are user details that are stored in your Identity Provider.
    • Attribute Mapping helps you to get user attributes from your Identity Provider (IdP) and map them to Joomla user attributes like firstname, lastname etc.
    • While auto registering the users in your Joomla site these attributes will automatically get mapped to your Joomla user details.
    • In Joomla SAML plugin, go to Attribute Mapping tab and fill in all the fields.
      Username: Name of the username attribute from IdP (Keep NameID by default)
      Email: Name of the email attribute from IdP (Keep NameID by default)
      Group/Role: Name of the Role attribute from Identity Provider(IdP)
    • You can check the Test Configuration Results under Service Provider Setup tab to get a better idea of which values to map here.

    4. Group Mapping (It is Optional to fill this). This is Premium feature.

    • Role mapping helps you to assign specific roles to users of a certain group in your Identity Provider (IdP).
    • While auto registering, the users are assigned roles based on the group they are mapped to.

    5. Redirection & SSO Links

    • Go to Login Settings tab. There are multiple features availabe in this tab like Auto redirect the user to Identity Provider and Enable Backed Login for Super Users. To use these features, click on the respective checkboxes.
    • Joomla Single Sign On SSO SAML SP Signin Settings

      You have successfully completed your miniOrange SAML 2.0 SP configurations. Still, if you are facing any difficulty please mail us on joomlasupport@xecurify.com .

    Recommended Add-Ons

    User Sync SCIM Provisioning

    Synchronize users, groups & directory with SCIM & REST APIs for Server.




    Know More

    Page Restriction

    Page Restriction plugin restricts Joomla pages (Articles) based on User Roles and User's Login Status.



    Know More

    Integrate with Community Builder Customer

    Using this Add-on you would be mapping the user details into the CB's comprofilers fields table which contains the values.


    Know More

    Additional Resources.

    Miniorange Joomla SAML Single sign-on(web SSO) supports multiple known IDPs like WSO2, Azure AD, Salesforce,
    Shibboleth, Onelogin, Okta, SimpleSamlPhp, Google apps, Bitium, OpenAM, miniorange IDP, Centrify and many more.

    Business Trial

    If you want Business Trial for FREE Click Here

    If you don't find what you are looking for, please contact us at joomlasupport@xecurify.com or call us at +1 978 658 9387.

    Hello there!

    Need Help? We are right here!

    support
    Contact miniOrange Support
    success

    Thanks for your inquiry.

    If you dont hear from us within 24 hours, please feel free to send a follow up email to info@xecurify.com