Search Results :

×

Guide to Configure ASP.NET Core SAML SSO using AzureB2C as IDP

ASP.NET Core SAML Single Sign-On (SSO) middleware gives the ability to enable SAML Single Sign-On for your ASP.NET core applications. Using Single Sign-On you can use only one password to access your ASP.NET core application and services. Our middleware 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 Core and AzureB2C considering AzureB2C as IdP.

Platform Support: The ASP.NET Core SAML middleware supports ASP.NET Core 2.0 and above. It supports all the ASP.NET Core platforms, including Windows, Linux and macOS.


NuGet Package
.NET CLI

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


Note: To integrate the miniOrange ASP.NET SAML SSO middleware in your application, you will be required to add the below namespaces, services and middleware in your project, below is a sample implementation for reference.
Include only the highlighted section below in the Program.cs file of your application.

  using miniOrange.saml;
  using System.Reflection
  var builder=WebApplication.CreateBuilder(args);

  // Add services to the container.
  builder.Services.AddRazorPages();
  builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());

  var app = builder.Build();
        if(!app.Environment.IsDevelopment())
  {
    app.UseExceptionHandler("/Error");
    app.UseHsts();
  }

  app.UseHttpsRedirection();
  app.UseRouting();
  app.UseAuthorization();
  app.MapRazorPages();

  app.UseCookiePolicy();
  app.UseAuthentication();

  #if NET9_0_OR_GREATER
  app.MapStaticAssets();
  #else
  app.UseStaticFiles();
  #endif

  app.UseminiOrangeSAMLSSOMiddleware();
  app.Run();
NuGet Packege
.NET CLI

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


Note: To integrate the miniOrange ASP.NET SAML SSO middleware in your application, you will be required to add the below namespaces, services and middleware in your project, below here is a sample.
Include only the highlighted section below in the Program.cs file of your application.

  using miniOrange.saml;
  using System.Reflection;

  public class Startup
  {

    public Startup(IConfiguration configuration)
    {
      Configuration = configuration;
    }
    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
      services.AddRazorPages();
      services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
      if (env.IsDevelopment())
      {
        app.UseDeveloperExceptionPage();
      }
      else
      {
        app.UseExceptionHandler("/Error");
        // The default HSTS value is 30 days. You may want to change this for production scenarios, see         https://aka.ms/aspnetcore-hsts.
        app.UseHsts();
      }

      app.UseHttpsRedirection();

      app.UseCookiePolicy();
      app.UseAuthentication();

      #if NET9_0_OR_GREATER
      app.MapStaticAssets();
      #else
      app.UseStaticFiles();
      #endif

      app.UseminiOrangeSAMLSSOMiddleware();

      app.UseRouting();
      app.UseAuthorization();
      app.UseEndpoints(endpoints =>
      {
        endpoints.MapRazorPages();
      });
    }
  }
  • Login to http://portal.miniorange.com/ and navigate to the Downloads tab. From there, locate your purchased plugin and click on Download Plugin to download the plugin zip file.
ASP.NET SSO Middleware Enterprise Plugin Download

  • Extract the Downloaded zip file in your machine and place the nuget package file (.nupkg file) in a some folder like "C:\miniOrangePackages"
  • Run the following command in your VS terminal to add it as a package source:
dotnet nuget add source C:\miniOrangePackages--name miniOrangePackage
  • Open your Project in the terminal:
cd C:\Path\To\YourProject
  • Install the Package in your project using the below command:
dotnet add package miniOrange.SAML.SSO --source miniOrangePackage

OR

  • After placing the NuGet package (.nupkg file) in a local folder, instead of using the terminal, you can also install it using Visual Studio by following the steps below:
  • Open your .NET application in Visual Studio, click on Tools in the top navigation bar, and navigate to NuGet Package Manager → Manage NuGet Packages for Solution.
Nuget Package Manager

  • A new window will open; click on the gear icon next to the Package source dropdown.
Gear icon

  • A pop-up window will open; select Package Sources from the left navigation panel, click on the plus (+) icon, enter a name for the package source, provide the path of the folder where you placed the NuGet package in the Source field, then click Update and finally click OK to save the changes, as shown in the image.
Package Sources Window

  • After closing the pop-up window, select the newly added package source from the Package source dropdown.
Package Source dropdown

  • Now click on the Browse tab, search for miniOrange.SAML.SSO, select the package from the results, and click Install.
miniOrange.SAML.SSO

  • Note: To integrate the miniOrange ASP.NET SAML SSO middleware in your application, you will be required to add the below namespaces, services and middleware in your project, below is a sample implementation for reference.
    Include only the highlighted section below in the Program.cs file of your application.
  using miniOrange.saml;
  using System.Reflection
  var builder=WebApplication.CreateBuilder(args);

  // Add services to the container.
  builder.Services.AddRazorPages();
  builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());

  var app = builder.Build();
        if(!app.Environment.IsDevelopment())
  {
    app.UseExceptionHandler("/Error");
    app.UseHsts();
  }

  app.UseHttpsRedirection();
  app.UseRouting();
  app.UseAuthorization();
  app.MapRazorPages();

  app.UseCookiePolicy();
  app.UseAuthentication();

  #if NET9_0_OR_GREATER
  app.MapStaticAssets();
  #else
  app.UseStaticFiles();
  #endif

  app.UseminiOrangeSAMLSSOMiddleware();
  app.Run();
  • Login to http://portal.miniorange.com/ and navigate to the Downloads tab. From there, locate your purchased plugin and click on Download Plugin to download the plugin zip file.
ASP.NET SSO Middleware Enterprise Plugin Download

  • Extract the Downloaded zip file in your machine and place the nuget package file (.nupkg file) in a some folder like "C:\miniOrangePackages"
  • Run the following command in your VS terminal to add it as a package source:
dotnet nuget add source C:\miniOrangePackages--name miniOrangePackage
  • Open your Project in the terminal:
cd C:\Path\To\YourProject
  • Install the Package in your project using the below command:
dotnet add package miniOrange.SAML.SSO --source miniOrangePackage

OR

  • After placing the NuGet package (.nupkg file) in a local folder, instead of using the terminal, you can also install it using Visual Studio by following the steps below:
  • Open your .NET application in Visual Studio, click on Tools in the top navigation bar, and navigate to NuGet Package Manager → Manage NuGet Packages for Solution.
Nuget Package Manager

  • A new window will open; click on the gear icon next to the Package source dropdown.
Gear icon

  • A pop-up window will open; select Package Sources from the left navigation panel, click on the plus (+) icon, enter a name for the package source, provide the path of the folder where you placed the NuGet package in the Source field, then click Update and finally click OK to save the changes, as shown in the image.
Package Sources Window

  • After closing the pop-up window, select the newly added package source from the Package source dropdown.
Package Source dropdown

  • Now click on the Browse tab, search for miniOrange.SAML.SSO, select the package from the results, and click Install.
miniOrange.SAML.SSO

  • Note: To integrate the miniOrange ASP.NET SAML SSO middleware in your application, you will be required to add the below namespaces, services and middleware in your project, below is a sample implementation for reference.
    Include only the highlighted section below in the Program.cs file of your application.
  using miniOrange.saml;
  using System.Reflection;

  public class Startup
  {

    public Startup(IConfiguration configuration)
    {
      Configuration = configuration;
    }
    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
      services.AddRazorPages();
      services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
      if (env.IsDevelopment())
      {
        app.UseDeveloperExceptionPage();
      }
      else
      {
        app.UseExceptionHandler("/Error");
        // The default HSTS value is 30 days. You may want to change this for production scenarios, see         https://aka.ms/aspnetcore-hsts.
        app.UseHsts();
      }

      app.UseHttpsRedirection();

      app.UseCookiePolicy();
      app.UseAuthentication();

      #if NET9_0_OR_GREATER
      app.MapStaticAssets();
      #else
      app.UseStaticFiles();
      #endif

      app.UseminiOrangeSAMLSSOMiddleware();

      app.UseRouting();
      app.UseAuthorization();
      app.UseEndpoints(endpoints =>
      {
        endpoints.MapRazorPages();
      });
    }
  }

Step by Step guide for ASP.NET Core SAML SSO using AzureB2C as Identity Provider.

  • After integration, open your browser and browse the connector 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 middleware in your application.
ASP.NET Core- registeration page

  • Register or log in with your account by clicking the Register button to configure the middleware.
  • After successful registration, you will receive a trial license key on your registered email address.
  • To activate the middleware, 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 Middleware Verify Trial License

  • Then, check the box "I have read the above conditions and I want to activate the middleware", and click the Activate License button.
ASP.NET Middleware Activate License
  • After integration, open your browser and browse the connector dashboard with the URL below:
 http(s)<your-dotnet-application-base-url>?ssoaction=config
  • If the login page pops up, you have successfully added the miniOrange SAML SSO middleware in your application.
ASP.NET Core- login page

  • Log in with your licensed miniOrange account to configure the middleware.
  • After logging in, the Account Setup dashboard will open. Enter the license key to activate the plugin, which you will receive after logging in to portal.miniorange.com and navigating to Manage License → License Keys.
License Activation

  • Then, check the box "I have read the above two conditions and I want to activate the plugin", and click the Activate License button.
License Activation Checkbox

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, as mentioned in Step 2B above.
  • 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).

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 Enterprise- 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.
  • ou can also download the SP Certificate by clicking on Download SP Cert and provide it to your Identity Provider if required.
  • Under the Encryption Certificate section, select the appropriate certificate type as per your requirement.
  • After completing the above steps, click on Save to apply the configuration.
  • You may refer to the screenshot below:
ASP.NET Core Enterprise - Upload 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, as mentioned in Step 2B above.
  • 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 Add new IDP button to configure a new Identity Provider.
ASP.NET Core 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 Core 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 middleware.

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 middleware 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 Core- 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 Core- Configure IDP Manually
  • Click on the Add new IDP button to configure a new Identity Provider.
ASP.NET Core SAML SSO using AzureB2C as IDP - Add New IDP

  • Under the Plugin Settings tab, select AzureB2C as your identity provider from the list shown.
Identity Provider List

There are two ways detailed below with which you can configure your SAML Identity Provider metadata in the middleware.

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 middleware 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 Coren Enterprise- 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 Core Enterprise- 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 Core- Test Configuration

  • If you are experiencing any error on the middleware end you’ll be shown with the window similar to below.
ASP.NET Core- 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 Core- 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 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 Enterprise- Test Configuration

  • The screenshot below shows a successful test result. Please click on click here to complete the remaining SSO integration steps.
ASP.NET Core Enterprise - Test Configuration

  • If you are experiencing any error on the middleware end, click on the Troubleshooting button.
ASP.NET Core Enterprise - Troubleshoot

  • To troubleshoot the error, you can follow the below steps:
  • Under the Troubleshoot tab, enable the toggle to receive the plugin logs and reproduce the issue.
  • Download the log file by clicking on the Download Log File button to see what went wrong.
ASP.NET Core Enterprise - log file

  • 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 Middleware, click on Attribute/Role Mapping tab as shown in the image.
ASP.NET Core- 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
  • 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 Middleware, click on Attribute/Role Mapping tab as shown in the image.
  • Map the required IdP attributes (such as Username, Email, Firstname, and Lastname) received in the SAML Response to their corresponding fields.
ASP.NET Core Enterprise- 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.
Custom Attribute Mapping
  • If you want to pass additional attributes from your IdP, enter the Attribute Name and corresponding Attribute Value under Custom Attribute Mapping.
  • From the Attribute Value (Claim) dropdown, select one of the claims you received in the Test Configuration results. For example: NameID.
  • These claims correspond to the attributes sent by your Identity Provider (IdP).
ASP.NET Core Enterprise - Custom Attribute Mapping

  • These claims correspond to the attributes sent by your Identity Provider (IdP).
ASP.NET Core Enterprise - Custom Attribute Mapping

  • In the Attribute Name field, enter the name of the attribute as you want it to appear or be used in your .NET application.
  • You can add multiple mappings if your application requires multiple attributes by clicking on the + button.
  • After defining all the required mappings, click on Save Attribute Mapping to store the configuration.
ASP.NET Core Enterprise - Custom Attribute Multiple Mapping

  • The plugin will now translate the incoming SSO claims from your Identity Provider (IdP) into the custom attribute names defined here.
Role Mapping
  • In the Role Mapping section , enter the Group Attribute Name exactly as configured in your Identity Provider to fetch the user group information.
  • Enter the Role Name received from the Identity Provider and map it to the appropriate Role Vaue field. In the Role Value field, enter the roles defined in your .NET application.
  • For example: Map the IdP group Group1 or Group10 received under the UserGroups attribute to the corresponding role configured in your .NET application.
  • After adding the required mappings, click on Save Role Mapping to save the configuration successfully.
ASP.NET Core Enterprise - Role Mapping

Domain Restriction
  • This feature can be used to restrict user access to the site based on the domain of their mapped “Email“ Attribute.
  • In the Email Attribute field, enter the attribute name that contains the user's email address as received from your Identity Provider (IdP).
ASP.NET Core Enterprise - Domain Restriction

  • In the Domain Name field, enter the domain(s) you want to allow or restrict, separated by commas if adding multiple domains.
  • Enable the Restrict toggle based on your requirement to configure blacklist or whitelist access.
  • After completing the configuration, click on Save Domains to save the settings successfully.
ASP.NET Core Enterprise - Domain Restriction Save Domains

  • This steps allow you to retrieve the SSO user information in your application in the form of user claims.
  • You can also look the setup tour to understand how the SSO integration would work in your asp.net middleware application.
  • Just copy-paste that code snippet wherever you want to access the user attributes.
ASP.NET Core- Integration Code

  • Note: With the trial middleware the authenticated user details are stored in user claims using the default .NET Cookie Authentication. Support of setting user claims using Header-based, Session-based, JWT-based authentication is available in our premium plugin.
  • You can also copy the integration code from below:

  string name="";
  string claimtype="";
  string claimvalue="";
  if(User.Identity.IsAuthenticated)
  {
    foreach(var claim in User.claims)
    {
      claimtype = claim.Type;
      claimvalue = claim.Value;
    }
    //retrive custom attributes(for eg. Retrieve Mapped 'mobileNumber' attribute of your IDP)
    var identity = (ClaimsIdentity)User.Identity;
    IEnumerable claims = identity.claims;
    string mobileNumber = identity.FindFirst("mobileNumber")?.Value;
  }

  • These steps allow you to retrieve the SSO user information in your application in the form of user claims.
  • Simply copy and paste the code snippet wherever you want to access the user attributes.
ASP.NET Core Enterprise- Integration Code

  • You can also copy the integration code from below:

  string name="";
  string claimtype="";
  string claimvalue="";
  if(User.Identity.IsAuthenticated)
  {
    foreach(var claim in User.claims)
    {
      claimtype = claim.Type;
      claimvalue = claim.Value;
    }
    //retrive custom attributes(for eg. Retrieve Mapped 'mobileNumber' attribute of your IDP)
    var identity = (ClaimsIdentity)User.Identity;
    IEnumerable claims = identity.claims;
    string mobileNumber = identity.FindFirst("mobileNumber")?.Value;
  }

  • Hover on Select Actions and click on Copy SSO Link.
ASP.NET Core Copy SSO Link

  • Use the following URL as a link in the application from where you want to perform SSO:
  https://<asp.net-middleware-base-url>/?ssoaction=login
  • For example, you can use it as:
  <a href="https://<asp.net-middleware-base-url>/?ssoaction=login">Log in</a>
  • Hover on Select Actions and click on Copy SSO Link.
ASP.NET Core Enterprise Copy SSO Link

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

Advanced Settings

If you want to apply Advanced Settings, navigate to the Advanced Settings tab.

Auto Redirect to IdP
  • Enable the Auto Redirect to IdP toggle button to automatically redirect users to the configured Identity Provider during login.
  • Select the IDP where you want to redirect the users from the specific Url in the Default IDP dropdown.
  • Choose the Type of Redirection as Restricted or Public based on your requirement.
  • If required, enter the URLs that should be excluded from redirection in the Exclude URLs field, separated by commas.
  • Click on Save to store the configuration successfully.
ASP.NET Core Enterprise - Auto Redirection to Idp

Disable Admin Dashboard
  • Enable the Disable Admin Dashboard toggle to hide the miniOrange Admin Dashboard, and click on Save to apply the changes.
ASP.NET Core Enterprise - Disable Admin Dashboard

Certificate Information
  • Navigate to the Certificate Information section and select the required Certificate Type (Signing Certificate or Encryption Certificate).
  • Click on Regenerate Certificate if you want to generate a new certificate.
ASP.NET Core Enterprise - Certificate Information

  • Then click on Apply New Certificate to apply the updated certificate.
ASP.NET Core Enterprise - Certificate Information

Upload Custom Certificate
  • Navigate to the Upload Custom Certificate section and select the required Certificate Type (Signing Certificate or Encryption Certificate).
  • Click on Choose File to upload the Public Key (.crt) and Private Key (.pfx) files, and enter the Private Key Password in the provided field.
  • After providing the required details, click on Save to upload and apply the custom certificate successfully.
ASP.NET Core Enterprise - Upload Custom Certificate

 Thank you for your response. We will get back to you soon.

Something went wrong. Please submit your query again

We'll Reach Out to You at the Earliest!


ADFS_sso ×
Hello there!

Need Help? We are right here!

support