ASP.NET SAML Single Sign-On (SSO) with Shibboleth As IDP
ASP.NET SAML 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 considering Shibboleth as IdP. To know
more about the other features we provide, click
here.
Platform Support: The ASP.NET SAML SSO module supports ASP.NET 3.5
and above frameworks.
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.
Register or log in with your account by clicking the
Register button to configure the module.
Steps to configure ASP.NET Single Sign-On (SSO) using Shibboleth-1 as IDP
1. Configure Shibboleth as identity provider
You need to send your SP metadata to your identity provider. For SP
metadata, use the SP metadata URL or download the SP metadata as a .xml file
and upload it at your IdP end. You can find both these options under the
Service Provider Settings tab.
Alternatively, you can manually add the SP Entity ID and ACS URL from
Service Provider Settings tab in the plugin to your IdP
configurations.
In conf/idp.properties, uncomment and set 'idp.encryption.optional' to
true.
eg. idp.encryption.optional = true
In conf/metadata-providers.xml, configure Service Provider like this
<MetadataProvider xmlns:samlmd="urn:oasis: names:tc:SAML:2.0:metadata"
id="miniOrangeInLineEntity" xsi:type="InlineMetadata Provider"
sortKey="1">
<samlmd:EntityDescriptor ID="entity" entityID="<SP-EntityID / Issuer
from Service Provider Info tab in plugin.>"
validUntil="2020-09-06T04:13:32Z">
<samlmd:SPSSODescriptor AuthnRequests Signed="false"
WantAssertionsSigned="true"
protocolSupportEnumeration="urn:oasis:names: tc:SAML:2.0:protocol">
<samlmd:NameIDFormat>
urn:oasis:names:tc:SAML: 1.1:nameid-format:emailAddress
</samlmd:NameIDFormat>
<samlmd:AssertionConsumerService
Binding="urn:oasis:names:tc: SAML:2.0:bindings:HTTP-POST"
Location="<ACS (AssertionConsumerService) URL from Step1 of
the plugin under Identity Provider Tab.>"
index="1" />
</samlmd:SPSSODescriptor>
</samlmd:EntityDescriptor>
</MetadataProvider>
In conf/saml-nameid.properties, uncomment and set default
NameID as Email Address like this
In conf/saml-nameid-xml, search for shibboleth.SAML2NameIDGenerators.
Uncomment the shibboleth.SAML2AttributeSourcedGenerator bean and comment all
other ref beans
Make sure you have defined AttributeDefinition in
conf/attribute-resolver.xml.
<!-- Note: AttributeDefinitionid must be same as what you provided in
attributeSourceIds in conf/saml-nameid.xml -->
<resolver:AttributeDefinitionxsi:type="ad:Simple" id="email"
sourceAttributeID="mail">
<resolver:Dependency ref="ldapConnector" />
<resolver:AttributeEncoderxsi:type="enc:SAML2String" name="email"
friendlyName="email" />
</resolver:AttributeDefinition >
<resolver:DataConnector id="ldapConnector" xsi:type="dc:LDAPDirectory"
ldapURL="%{idp.authn.LDAP.ldapURL}"
baseDN="%{idp.authn.LDAP.baseDN}" principal="%{idp.authn.LDAP.bindDN}"
principalCredential="%{idp.authn.LDAP.bindDNCredential}">
<dc:FilterTemplate>
<!-- Define you User Search Filter here -->
<![CDATA[
(&(objectclass=*) (cn=$requestContext.principalName)) ]]>
</dc:FilterTemplate>
The public key certificate of your Shibboleth server
You have successfully configured Shibboleth as SAML IdP ( Identity Provider)
for achieving Shibboleth SSO login into your ASP.NET application.
2. Configure ASP.NET application as service provider (SSO Module)
Note: After installation of the plugin, we need to setup the trust
between your ASP.NET application and Shibboleth-1. SAML metadata is shared
with Shibboleth-1 so they can update their inbuilt configuration to support
Single Sign-On.
2.1: Share SAML Metadata with Shibboleth-1
Click on Add New IDP to configure ASP.NET Single Sign-On (SSO) with
Shibboleth-1.
Under Service Provider Settings tab, you can either copy-paste the
metadata URL on your IDP side or download the SP metadata as
an XML file. Additionally, you have the choice to manually copy and paste
Base URL, SP Entity ID, and ACS URL.
Share SAML metadata with your identity provider.
2.2: Import Shibboleth-1 SAML metadata
Select Shibboleth-1 from the list of identity providers shown below.
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:
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.
You have successfully configured your ASP.NET application as a service
provider.
3. Testing SAML SSO
Before testing, please ensure the following:
The ASP.NET (SP) SAML metadata has been exported to Shibboleth-1 (IDP).
Importing the Shibboleth-1 (IDP) SAML metadata in ASP.NET (SP).
To test whether the SAML configuration you’ve done is correct, hover on
Select Actions and click on Test Configuration.
Note: In the trial version of the plugin, you can only configure and
test one identity provider (IDP).
The screenshot below shows a successful result. Click on
Done to further continue with the SSO Integration.
If you are experiencing any error on the module end you’ll be shown with the
window similar to below.
To troubleshoot the error you can follow the below steps:
Under
Troubleshooting
tab, enable the toggle to receive the plugin logs.
Once enabled, you will be able to retrieve plugin logs by navigating to
Identity Provider 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.
4. Integration Code
This step allows you to specify the sso prefix of the session or claims
parameter that will be used to access user attributes in your application.
If you're still confused about how the integration steps work, take a look
at the Setup Tour.
Select the mode for storing SSO attributes, and you will now see the
integration code based on the authentication method you selected and
the language your application uses.
Just copy-paste that code snippet wherever you want to access the user
attributes.
Note: This trial module only supports session-based authentication
and User Claims is available in the premium plugin.
Note: All the mapped attributes will be stored in the session so that
you can access them in your application.
If you want some assistance regarding the integration code, get in touch
with us at
aspnetsupport@xecurify.com
5. Login Settings
Hover on Select Actions and click on Copy SSO Link.
Use the copied link in the application from where you want to perform SSO:
https://base-url/?ssoaction=login
For example, you can use it as: <a href=”https://base-url/?ssoaction=login”>Log in</a>
6. 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 even configure the
DNN SAML 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. To check other identity
providers. click
here.
Not able to find your identity provider? Mail us on
aspnetsupport@xecurify.com
and we'll help you set up SSO with your IDP and for quick guidance (via
email/meeting) on your requirement and our team will help you to select the
best suitable solution/plan as per your requirement.
×
Hello there!
Need Help? We are right here!
Contact miniOrange Support
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