SAML Single Sign-On (SSO) For ASP.NET Using Shibboleth-2 As IDP

SAML Single Sign-On (SSO) For ASP.NET Using Shibboleth-2 As IDP


ASP.NET SAML SP Single Sign-On (SSO) module gives the ability to enable SAML Single Sign-On for your ASP.NET applications. Using Single Sign-On you can use only one password to access your ASP.NET application and services. Our module is compatible with all the SAML compliant Identity providers. Here we will go through a step-by-step guide to configure Single Sign-On (SSO) between ASP.NET and Shibboleth-2 considering Shibboleth-2 as IdP.

Pre-requisites : Download And Installation

  • Download miniOrange ASP.NET SAML 2.0 Module.
  • To set up the module, extract the file asp.net-saml-sso-module-xxx.zip. You will find a DLL named miniorange-saml-sso.dll, a configuration file named saml.config and an integration.md file which contains steps for adding the module into your application.
  • Add miniorange-saml-sso.dll into your bin folder (where other DLL files for your application exist).
  • Register minorangesamlsso module in your application according to the steps provided in the file named integration.md.
  • Add the provided configuration file saml.config in the root directory of your application.
  • After integration, open your browser and browse the connector dashboard with the URL below:
    https://<your-application-base-url>/?ssoaction=config
  • If the registration page or login page pops up, you have successfully added the miniOrange SAML SSO connector to your application.
  • asp.net saml single sign-on using Shibboleth-2 as IdP, saml dll register
  • Register or log in with your account by clicking the Register button to configure the module.

Steps to configure Shibboleth-2 Single Sign-On (SSO) Login into ASP.NET

1. Add the module in your application

  • Go to Plugin settings section and Choose Shibboleth-2 from the list.
  • asp.net saml single sign-on using Shibboleth-2 as IdP, select app
  • You will see the Service Provider Settings option, where you will get the service provider metadata. You can have three options to provide the metadata to your IDP. Keep the metadata handy as it will be required later to configure step 2.
  • asp.net saml single sign-on using Shibboleth-2 as IdP, get metadata

2. Configure Shibboleth-2 as Identity Provider

  • In the miniOrange SAML SP SSO plugin, navigate to Service Provider Metadata tab. Here, you can find the SP metadata such as SP Entity ID and ACS (AssertionConsumerService) URL which are required to configure the Identity Provider.
  • asp.net saml single sign-on using Shibboleth-2 as IdP, sp metadata
  • In conf/relying-party.xml, configure Service Provider like this
  •       <MetadataProviderxsi:type="InlineMetadataProvider"
                                  xmlns="urn
    :mace:shibboleth:2.0:metadata" id="MyInlineMetadata">
      <EntitiesDescriptorxmlns="urn:oasis:names:tc:SAML:2.0:metadata">
        <md:EntityDescriptorxmlns:md="urn:oasis:names:tc:SAML:2
    .0:metadata" entityID="<ENTITY_ID_FROM_PLUGIN>">
          <md:SPSSODescriptorAuthnRequestsSigned="false"
    WantAssertionsSigned="true" protocolSupportEnumeration=
              "urn:oasis:names:tc:SAML:2.0:protocol">
            < urn:oasis:names:tc:SAML:1
    .1:nameidformat:emailAddress</md:NameIDFormat>
            <md:AssertionConsumerService Binding="urn
    :oasis:names:tc:SAML:2.0:bindings:https-POST"
              Location="<ACS_URL_FROM_PLUGIN>" index="1"/>
          </md:SPSSODescriptor>
        </md:EntityDescriptor>
      </EntitiesDescriptor>
    </MetadataProvider>
  • Make sure your Shibboleth server is sending Email Address of the user in Name ID. In attribute-resolver.xml, get the email attribute as Name ID:
  •      <resolver:AttributeDefinitionxsi:type="ad:Si
    mple" id="email" sourceAttributeID="mail">
       <resolver:Dependency ref="ldapConnector" />
       <resolver:AttributeEncoderxsi:type="enc:SAML2
    StringNameID" nameFormat="urn:oasis:names:tc:SAML:1.1:
        nameid-format:emailAddress"/>
    </resolver:AttributeDefinition>
  • In attribute-filter.xml, release the email attribute:
  •        <afp:AttributeFilterPolicy id="releaseTransientIdToAnyone"> 
    <afp:PolicyRequirementRulexsi:type="basic:ANY"/>
      <afp:AttributeRuleattributeID="email">
        <afp:PermitValueRulexsi:type="basic:ANY"/>
      </afp:AttributeRule>
    </afp:AttributeFilterPolicy>
  • Restart the Shibboleth Server.
  • You need to configure these endpoints in the Service Provider.
  • IDP Entity ID https://<your_domain>/idp/shibboleth
    Single Login URL https://<your_domain>/idp/profile/SAML2/Redirect/SSO
    X.509 Certificate The public key certificate of your Shibboleth server

3. Configure ASP.NET SAML Module as Service Provider

There are two ways detailed below with which you can configure your SAML identity provider metadata in the module.

A] Upload metadata using the Upload IDP Metadata button:
  • If your identity provider has provided you with the metadata URL or metadata file (.xml format only), then you can simply configure the identity provider metadata in the module using the Upload IDP Metadata option.
  • You may refer to the screenshot below:
  • ASP.NET SAML SSO - Upload Metadata
  • You can choose any one of the options according to the metadata format you have available.
B] Configure the identity provider metadata manually:
  • After configuring your Identity Provider, it will provide you with IDP Entity ID, IDP Single Sign On URL and SAML X509 Certificate fields respectively.
  • Click Save to save your IDP details.
  • ASP.NET SAML SSO - SAML dll config

4. Test Configuration

  • Click on the Test Configuration button to test whether the SAML Configuration you’ve done is correct.
  • The screenshot below shows a successful result. Click on Continue SSO Integration to continue further with the SSO Integration.
  • asp.net saml sso using Shibboleth-2 as an idp, configure attribute mapping
  • If you are experiencing any error on the module end you’ll be shown with the window similar to below.
  • ASP.NET SAML SSO - Enable debug logs
  • To troubleshoot the error you can follow the below steps:
    • Under Troubleshoot tab, enable the toggle to receive the plugin logs.
    • ASP.NET SAML SSO - Enable debug logs
    • Once enabled, you will be able to retrieve plugin logs by navigating to Plugin Settings tab and clicking on Test Configuration.
    • Download the log file from the Troubleshoot tab to see what went wrong.
    • You can share the log file with us at aspnetsupport@xecurify.com and our team will reach out to you to resolve your issue.

5. Integration Code

  • You can also find the Integration code in the Integration Code tab in the module. Just copy-paste that code snippet wherever you want to access the user attributes.
  • Note: All the mapped attributes will be stored in the session so that you can access them in your application.
  • asp.net saml single sign-on using Shibboleth-2 as IdP, integration code

Note: If you need any assistance with adding the integration code in your application please reach out to us at aspnetsupport@xecurify.com

6. Login Settings

  • Use the following URL as a link in your application from where you want to perform SSO:
  • https://<your-application-base-url>/?ssoaction=login
  • For example you can use it as:
  • <a href="https://<your-application-base-url>/?ssoaction=login">Login</a>

7. Logout Settings

  • Use the following URL as a link in your application from where you want to perform SLO:
  • https://<your-application-base-url>/?ssoaction=logout
  • For example you can use it as:
  • <a href="https://<your-application-base-url>/?ssoaction=logout">Logout</a>

You can configure the DotNetNuke SAML 2.0 Single Sign-On (SSO) module with any Identity Provider such as ADFS, Azure AD, Bitium, centrify, G Suite, JBoss Keycloak, Okta, OneLogin, Salesforce, AWS Cognito, OpenAM, Oracle, PingFederate, PingOne, RSA SecureID, Shibboleth-2, Shibboleth-3, SimpleSAML, WSO2 or even with your own custom identity provider.


If you are looking to Single Sign-On into your sites with any SAML compliant Identity Provider then we have a separate solution for that. We do provide SSO solutions for the following:

Application LINK
SAML SSO into DotNetNuke (DNN) site Click here
SAML SSO into Nopcommerce site Click here
SAML SSO into Umbraco site Click here
SAML SSO into SiteFinity site Click here

Additional Resources

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