Search Results :

×

ASP.NET SAML Single Sign-On (SSO) with 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. 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.

Pre-requisites : Download And Installation


PM> NuGet\Install-Package miniOrange.SAML.SSO
  • 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 (SSO) using Azure B2C as IDP - saml dll register
  • Register or log in with your account by clicking the Register button to configure the module.

Configure ASP.NET Single Sign-On (SSO) using Azure B2C as IDP

1. Configure Azure B2C as IDP

miniorange img Register the Identity Experience Framework application
  • Login into Azure B2C Portal.
  • From the Azure AD B2C tenant, select App registrations, and then select New registration.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Identity Experience FrameWork
  • For Name, enter IdentityExperienceFramework.
  • Under Supported account types, select Accounts in this organizational directory only.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Register an Application
  • 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.
  • Select Register.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Redirect URL
  • Record the Application (client) ID for use in a later step.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Application Client ID
miniorange img 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Expose an api
  • Enter the following values to create a scope that allows custom policy execution in your Azure AD B2C tenant:
    1. Scope name: user_impersonation
    2. Admin consent display name: Access IdentityExperienceFramework
    3. Admin consent description: Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.
  • Select Add scope
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - custom scopes
miniorange img 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Original Directory
  • 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Register
  • Record the Application (client) ID for use in a later step.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP -  application proxy
miniorange img 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - proxy authentication
miniorange img 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - authentication
  • Select the My APIs tab, then select the IdentityExperienceFramework application.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - API permissions
  • 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - My APIs
  • Select Grant admin consent for (your tenant name).
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Grant Admin
  • 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - B2C,Status og admin access
miniorange img 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Supported account types
  • 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - app Register
  • Under Manage, click on Expose an API.
  • Click on Set for the Application ID URI and then click on Save, accepting the default value.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP -  SAML 2.0 Azure B2C, Expose a sso login
  • 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.
miniorange img 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - B2C tenant ID Reco
  • 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.
miniorange img 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - framework
  • Under Policies, select Identity Experience Framework and then Policy keys.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Policy keys
  • 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - 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.
miniorange img 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Create the signing key
  • Select Create.
miniorange img 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Create the encryption key
  • Select Create.
miniorange img Upload the policies
  • Select the Identity Experience Framework menu item in your B2C tenant in the Azure portal.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Upload the Policies
  • Select Upload custom policy.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - identity experience framework
  • 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).

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 Azure B2C. SAML metadata is shared with Azure B2C so they can update their inbuilt configuration to support Single Sign-On.

2.1: Share SAML Metadata with Azure B2C
  • Click on Add New IDP to configure ASP.NET Single Sign-On (SSO) with Azure B2C.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Click on Add new IDP
  • 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - SP Settings Metadata
2.2: Import Azure B2C SAML metadata
  • Select Azure B2C from the list of identity providers shown below.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Select identity 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 Single Sign-On (SSO) using Azure B2C as IDP - 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 Single Sign-On (SSO) using Azure B2C as IDP - SAML dll config

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 Azure B2C (IDP).
    • Importing the Azure B2C (IDP) SAML metadata in ASP.NET (SP).
    • Click here if you haven't already configured MFA on Azure B2C. You can also disable MFA for Azure B2C by clicking here.
  • To test whether the SAML configuration you’ve done is correct, hover on Select Actions and click on Test Configuration.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Test Configuration
  • If you are experiencing any error on the module end you’ll be shown with the window similar to below.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Error Window
  • To troubleshoot the error you can follow the below steps:
    • Under Troubleshooting tab, enable the toggle to receive the plugin logs.
    • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Enable debug 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - Prefix SSO Attributes
  • 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - ASP.NET Integration Codes Based on language
  • 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.
  • ASP.NET SAML Single Sign-On (SSO) using Azure B2C as IDP - ASP.NET Integration Codes Based on language
  • 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.

Additional Resources

Need Help?

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!

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