Search Results :

×

Guide to Configure ASP.NET Framework SAML SSO using Azure B2C 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 Azure B2C considering Azure B2C as IdP.

Platform Support: The ASP.NET SAML SSO module supports ASP.NET 3.5 and above frameworks.


  • To install the miniOrange SAML SSO NuGet package in your .NET application, simply install the miniOrange NuGet package on top of your application.
NuGet Package
.NET CLI

PM> NuGet\Install-Package miniOrange.SAML.SSO

  • After Installation, open your browser and browse the module dashboard with the URL below:
 http(s)<your-dotnet-application-base-url>?ssoaction=config
  • If the registration page or login page pops up, you have successfully added the miniOrange SAML SSO module in your application.
ASP.NET Core- registeration page

  • Register or log in with your account by clicking the Register button to configure the module.
  • After successful registration, you will receive a trial license key on your registered email address.
  • To activate the module, you can either:
    • Enter the license key received via email in the provided input field.

    OR

    • Upload the license file that you downloaded by clicking on the Click Here button.
ASP.NET Framework Verify Trial License

  • Then, check the box "I have read the above conditions and I want to activate the module", and click the Activate License button.
ASP.NET Framework Activate License

There are two ways detailed below with which you can get the SAML SP metadata to configure onto your Identity Provider end.

A] Using SAML metadata URL or metadata file

  • In the Plugin Settings menu, look for Service Provider Settings. Under that, you can find the metadata URL as well as the option to download the SAML metadata.
  • Copy metadata URL or download the metadata file to configure the same on your identity provider end.
  • You may refer to the screenshot below:
ASP.NET Core- Service Provider Metadata

B] Uploading metadata manually

  • From the Service Provider Settings section, you can manually copy the service provider metadata like SP Entity ID, ACS URL, Single Logout URL and share it with your identity provider for configuration.
  • You may refer to the screenshot below:
ASP.NET Core- enter sp data manually

Register the Identity Experience Framework application

  • Log into Azure B2C Portal.
  • From the Azure AD B2C tenant, select App registrations, and then select New registration.
Azure B2C Portal

  • For Name, enter IdentityExperienceFramework.
  • Under Supported account types, select Accounts in this organizational directory only.
Supported account types

  • Under Redirect URI, select Web, and then enter "https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com", where your-tenant-name is your Azure AD B2C tenant domain name.

Note: In the following step if the 'Permissions' section is not visible then it might be the reason that you don't have an active AzureAD B2C subscription for that tenant. You can find the details regarding the AzureAD B2C subscription here and you can create a new tenant by following the steps here.


  • Under Permissions, select the Grant admin consent to openid and offline_access permissions check box.
  • Click on Register.
Redirect URI

  • Record the Application (client) ID for use in a later step.
Application (client) ID

Register the Identity Experience Framework application

  • Under Manage, select Expose an API.
  • Select Add a scope, then select Save and continue to accept the default application ID URI.
Identity Experience Framework application

  • Enter the following values to create a scope that allows custom policy execution in your Azure AD B2C tenant:
    • Scope name: user_impersonation
    • Admin consent display name: Access IdentityExperienceFramework
    • Admin consent description: Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.
  • Select Add scope.
Custom policy execution

Register the ProxyIdentityExperienceFramework application

  • Select App registrations, and then select New registration.
  • For Name, enter ProxyIdentityExperienceFramework.
  • Under Supported account types, select Accounts in this organizational directory only.
ProxyIdentityExperienceFramework application

  • Under Redirect URI, use the drop-down to select Public client/native (mobile & desktop).
  • For Redirect URI, enter myapp://auth.
  • Under Permissions, select the Grant admin consent to openid and offline_access permissions check box.
  • Select Register.
ProxyIdentityExperienceFramework application

  • Record the Application (client) ID for use in a later step.
ProxyIdentityExperienceFramework application

Next, specify that the application should be treated as a public client

  • Under Manage, select Authentication.
  • Under Advanced settings, enable Allow public client flows (select Yes).
  • Select Save.
Allow public client flows

Now, grant permissions to the API scope you exposed earlier in the IdentityExperienceFramework registration

  • Under Manage, select API permissions.
  • Under Configured permissions, select Add a permission.
IdentityExperienceFramework registration

  • Select the My APIs tab, then select the IdentityExperienceFramework application.
IdentityExperienceFramework registration

  • Under Permission, select the user_impersonation scope that you defined earlier.
  • Select Add permissions. As directed, wait a few minutes before proceeding to the next step.
IdentityExperienceFramework registration

  • Select Grant admin consent for (your tenant name).
IdentityExperienceFramework registration

  • Select your currently signed-in administrator account, or sign in with an account in your Azure AD B2C tenant that's been assigned at least the Cloud application administrator role.
  • Select Yes.
  • Select Refresh, and then verify that "Granted for ..." appears under Status for the scopes - offline_access, openid and user_impersonation. It might take a few minutes for the permissions to propagate.
IdentityExperienceFramework registration

Register the ASP.NET Application

  • Select App registrations, and then select New registration.
  • Enter a Name for the application such as: WP-app.
  • Under Supported account types, select Accounts in any organizational directory or any identity provider. For authenticating users with Azure AD B2C.
Register the ASP.NET Application

  • Under Redirect URI, select Web, and then enter the ACS URL from the Service Provider Settings tab of the miniOrange ASP.NET SAML plugin.
  • Select Register.
Register the ASP.NET Application

  • Under Manage, click on Expose an API.
  • Click on Set for the Application ID URI and then click on Save, accepting the default value.
Register the ASP.NET Application

  • Once saved, copy the Application ID URI and navigate to the Service Provider Metadata tab of the plugin.
  • Paste the copied value under the SP Entity ID / Issuer field provided in this tab.
  • Click on Save.

Generate SSO Policies

  • From our Azure B2C portal, navigate to the Overview section of your B2C tenant and record your tenant name.
    NOTE: If your B2C domain is b2ctest.onmicrosoft.com, then your tenant name is b2ctest.
Generate SSO Policies

  • Enter your Azure B2C tenant name below, along with the application ID for IdentityExperienceFramework and ProxyIdentityExperienceFramework apps as registered in the above steps.
Azure B2C tenant Name:
IdentityExperienceFramework app ID:
ProxyIdentityExperienceFramework app ID:
Select additional attributes

  • Click on the Generate Azure B2C Policies button to download the SSO policies.
  • Extract the downloaded zip file. It contains the policy files and certificate (.pfx), which you will require in the following steps.

Setup and upload Certificates

Note: In the following step if the 'Identity Experience Framework' is not clickable then it might be the reason that you don't have an active Azure AD B2C subscription for that tenant. You can find the details regarding the Azure AD B2C subscription here and you can create a new tenant by following the steps here.


  • Sign in to the Azure portal and browse to your Azure AD B2C tenant.
Setup and upload Certificates

  • Under Policies, select Identity Experience Framework and then Policy keys.
Identity Experience Framework

  • Select Add, and then select Options > Upload.
  • Enter the Name as SamlIdpCert. The prefix B2C_1A_ is automatically added to the name of your key.
Create a Key

  • Using the upload file control, upload your certificate that was generated in the above steps along with the SSO policies (tenantname-cert.pfx).
  • Enter the certificate's password as your tenant name and click on Create. For example, if your tenant name is xyzb2c.onmicrosoft.com, enter the password as xyzb2c.
  • You should be able to see a new policy key with the name B2C_1A_SamlIdpCert.

Create the signing key

  • On the overview page of your Azure AD B2C tenant, under Policies, select Identity Experience Framework.
  • Select Policy Keys and then select Add.
  • For Options, choose Generate.
  • In Name, enter TokenSigningKeyContainer.
  • For Key type, select RSA.
  • For Key usage, select Signature.
Create the signing key

  • Select Create.

Create the encryption key

  • On the overview page of your Azure AD B2C tenant, under Policies, select Identity Experience Framework.
  • Select Policy Keys and then select Add.
  • For Options, choose Generate.
  • In Name, enter TokenEncryptionKeyContainer.
  • For Key type, select RSA.
  • For Key usage, select Encryption.
Create the encryption key

  • Select Create.

Upload the policies

  • Select the Identity Experience Framework menu item in your B2C tenant in the Azure portal.
Upload the policies

  • Select Upload custom policy.
Upload the policies

  • As per the following order, upload the policy files downloaded in the above steps:
    • TrustFrameworkBase.xml
    • TrustFrameworkExtensions.xml
    • SignUpOrSignin.xml
    • ProfileEdit.xml
    • PasswordReset.xml
    • SignUpOrSigninSAML.xml
  • As you upload the files, Azure adds the prefix B2C_1A_ to each.

You have successfully configured Azure B2C as SAML IDP (Identity Provider) for achieving ASP.NET Single Sign-On (SSO).


  • Click on the Select your IDP button to configure a new Identity Provider.
ASP.NET Framework SAML SSO using AzureB2C as IDP - Add New IDP

  • Under the Plugin Settings tab, select AzureB2C as your identity provider from the list shown.
ASP.NET Framework SAML SSO using AzureB2C as IDP - Add New IDP

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.
  • Copy metadata URL or download the metadata file to configure the same on your identity provider end.
  • You may refer to the screenshot below:
ASP.NET Framework - Upload IDP 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 Framework- Configure IDP Manually
  • After uploading the metadata details, navigate to the Identity Provider Settings section. Hover over the Select Actions dropdown and click on Test Configuration.
ASP.NET Core- Test Configuration

  • The screenshot below shows a successful result. Click on SSO Integration to further continue with the SSO Integration.
ASP.NET Framework - Test Configuration

  • If you are experiencing any error on the module end you’ll be shown with the window similar to below.
ASP.NET Framework - Test Configuration Error

  • To troubleshoot the error you can follow the below steps:
  • Under Troubleshoot tab, enable the toggle to receive the plugin logs.
ASP.NET Framework - TroubleShoot

  • 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.
  • After testing the configuration, Map your application attributes with the Identity Provider (IdP) attributes.
  • From the left-hand menu of the miniOrange ASP.NET SAML SSO Module, click on Attribute/Role Mapping tab as shown in the image.
ASP.NET Framework - Attribute Mapping

  • If you want to pass additional attributes from your IdP, enter the Attribute Name and corresponding Attribute Value under Custom Attribute Mapping.
  • Note: All the mapped attributes will be stored in the session so that you can access them in your application.
  • Once the attributes are mapped, click Save Attribute Mapping to apply changes.
ASP.NET Core- Attribute Mapping
  • This steps allow you to retrieve the SSO user information in your application in the form of session.
  • You can also look the setup tour to understand how the SSO integration would work in your asp.net module application.
  • Just copy-paste that code snippet wherever you want to access the user attributes.
ASP.NET Framework - Integration Code

  • Note: With the trial module the authenticated user details are stored in session variables. Support of setting user claims using Header-based, Forms-Cookie-based, JWT-based authentication is available in our premium plugin.
  • Hover on Select Actions and click on Copy SSO Link.
ASP.NET Framework Copy SSO Link

  • Use the following URL as a link in the application from where you want to perform SSO:
  https://<asp.net-module-base-url>/?ssoaction=login
  • For example, you can use it as:
  <a href="https://<asp.net-module-base-url>/?ssoaction=login">Log in</a>
  • Use the following URL as a link to your application from where you want to perform SLO:
  https://<asp.net-module-base-url>/?ssoaction=logout
  • For example, you can use it as:
  <a href="https://<asp.net-module-base-url>/?ssoaction=logout">Log out</a>

Please reach out to us at aspnetsupport@xecurify.com, and our team will assist you with setting up the ASP.NET Framework SAML SSO. Our team will help you to select the best suitable solution/plan as per your requirement.

ADFS_sso ×
Hello there!

Need Help? We are right here!

support