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.
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.
Configure ASP.NET Single Sign-On (SSO) using Azure B2C as IDP
1. Configure Azure B2C as IDP
Register the Identity Experience Framework application
From the Azure AD B2C tenant, select App registrations, and then
select New registration.
For Name, enter IdentityExperienceFramework.
Under Supported account types, select
Accounts in this organizational directory only.
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.
Record the Application (client) ID for use in a later step.
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.
Enter the following values to create a scope that allows custom policy
execution in your Azure AD B2C tenant:
Admin consent description:Allow the application to access IdentityExperienceFramework on behalf
of the signed-in user.
Select Add scope
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.
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.
Record the Application (client) ID for use in a later step.
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.
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.
Select the My APIs tab, then select the
IdentityExperienceFramework application.
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.
Select Grant admin consent for (your tenant name).
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.
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.
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.
Under Manage, click on Expose an API.
Click on Set for the Application ID URI and then click on
Save, accepting the default value.
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.
Enter your Azure B2C tenant name below, along with the application ID
for IdentityExperienceFramework and ProxyIdentityExperienceFramework
apps as registered in the above steps.
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.
Under Policies, select Identity Experience Framework and then
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.
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.
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.
Select Create.
Upload the policies
Select the Identity Experience Framework menu item in your B2C tenant
in the Azure portal.
Select Upload custom policy.
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.
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 Azure B2C SAML metadata
Select Azure B2C 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 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.
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