OAuth Single Sign-On (SSO) For ASP.NET Web Applications Using Keycloak As OAuth Provider

ASP.NET OAuth Single Sign-On (SSO) module gives the ability to enable OAuth 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 OAuth compliant Identity providers. Here we will go through a step-by-step guide to configure Single Sign-On (SSO) between ASP.NET and Keycloak as OAuth Provider.

Download And Extract Package

  • Download miniOrange ASP.NET OAuth 2.0 Module.
  • For Setting up the connector, extract the asp-net-oauth-sso-module.zip, you will find a DLL file miniorange-oauth-sso.dll, a configuration file oauthsso.config and a integration.md file which contain the steps for adding the module into your application.

Step 1: Add the connector in your application

  • Add miniorange-oauth-sso.dll in bin folder (where your other DLL files exists) for your application.
  • Register miniorangeoauthsso module in your application according to the provided steps in the integration.md file.
  • Add the provided configuration file oauthsso.config in the root directory for your application.
  • After integration open browser and browse the connector dashboard with URL below:
    https:// <your-application-base-url>/?ssoaction=config
  • If it pop up the registration page or login page, you have successfully added the miniOrange oauth sso connector for your application.
  • ASP.NET keycloak OAuth SSO - register with miniorange
  • Register or Login for configuring the connector.

Step 2: Setup Keycloak as OAuth Provider

  • First of all, Download Keycloak and install it.
  • Start Server: Start the keycloak server by running the _standalone.sh_ file.
  • Root Directory of keycloak bin standalone.sh
  • Add Realm : Now login to keycloak administration console and navigate to your desired realm. You can add new realm by selecting Add Realm option.
  • Keycloak Single Sign-On SSO add realm
  • Create realm: Enter Realm Name and click on CREATE to add realm.
  • Create ROLE: The Role will be used by your applications to define which users will be authorized to access the application. Click on the Roles and choose Add Role.
  • Keycloak Single Sign-On SSO add role
  • Add User: We need to add users to realm who will be able to access the resources of realm. Click on the Users and choose to Add a new User.
  • Keycloak Single Sign-On SSO add user
  • User Configuration: After user is created following action needs to be performed on it.
    • 1) Setting a password for it so click on Credentials and set a new Password for the user.

    Keycloak Single Sign-On SSO set password

    NOTE : Disabling Temporary will make user password permanent.

  • Map User: We need to map user to a role. Click on Role Mappings and assign the user desired role from available roles and clicking on add selected.
  •  Keycloak Single Sign-On SSO map user
  • Create groups: Click on the Groups and choose New to create a new group.
  •  Keycloak Single Sign-On SSO create group
  • Assign user to group: Select the user whom you want to add in group. Choose Groups option from tab and then select the group-name and click on join.
  •  Keycloak Single Sign-On SSO assign group
  • Create OpenID client: Click on the Clients and choose create to create a new client. Enter client id and select client protocol openeid-connect and select Save.
  •  Keycloak Single Sign-On SSO client id
  • Change Access type: After client is created change its access type to confidential.
  •  Keycloak Single Sign-On SSO change access type
  • Enter Valid Redirect URIs: Copy callback URL from plugin and then click on SAVE. Ex -- https:///oauth/callback
  • Keycloak Group Mapper: Now to get group details we need to perform its client mapping with group membership else group details will not be fetched. So in client select Mappers and then click on create. Select mapper type Group Membership and enter name and token claim-name i.e the attribute name corresponding which groups will be fetched. Turn Off full group path and click on Save.
  • Keycloak Single Sign-On SSO group mapper

    Note: -- If full path is on group path will be fetched else group name will be fetched.

  • Realm name: You need a realm name when you set up Keycloak as an OAuth provider. Go to the Realm Settings tab and copy the realm name.
  • Get Client Secret: Now we need to get client secret. So select Clients and select credentials and copy your secret from here.
  •  Keycloak Single Sign-On SSO client id client secret
  • Plugin Configuration: Enter copied Client Secret here Client ID will be your client name and the URL are given below.

  • Keycloak Endpoints and Scope:


    Client ID : Click Here
    Client Secret : Click Here
    Scope: email profile openid
    Authorize Endpoint: <keycloak domain>/auth/realms/{realm-name}/protocol/openid-connect/auth
    Access Token Endpoint: <keycloak domain>/auth/realms/{realm-name}/protocol/openid-connect/token
    Get User Info Endpoint: <keycloak domain>/auth/realms/{realm-name}/protocol/openid-connect/userinfo
    Custom redirect URL after logout: [optional] https://{domain-name}/auth/realms/{realm-name}/protocol/openid-connect/logout?redirect_uri=encodedRedirectUri

Step 3: Configure miniOrange ASP.NET OAuth Client

  • After configuring your OAuth Provider, it will provide you with Client ID, Client Secret, Authorize Endpoint, Access Token Endpoint and Get User Info Endpoint. Configure these values under respective fields.
  • Fill all the required details and click on Save Configuration.
  • ASP.NET keycloak OAuth SSO - Oauth configuration

Step 3: Test Configuration

  • After saving configuration, click on the Test Configuration button to verify if you have configured correctly.
  • On successful configuration, you will get Attributes Name and Attribute Values on Test Configuration window. The below screenshot shows a successful result.
  • ASP.NET keycloak OAuth SSO - test configuration

Step 4: Attribute Mapping

  • Map Attribute Names provided by your OAuth Server with your ASP.NET application Attributes given under Attribute Mapping Section and click on Save Attribute Mapping.
  • ASP.NET keycloak OAuth SSO - attribute mapping
  • Note: All the mapped attributes will be stored in the session so that you can access them in your application.

Step 5: Integration Code

  • You can find the integration code in Integration Code tab in the connector. Just copy-paste that code snippet wherever you want to access the user attributes.
  • ASP.NET keycloak OAuth SSO - integration code

Step 6: Add following link in your application for Single Sign-On (SSO)

  • Use the following URL as a link in your application from where you want to perform SSO:
    http://base-url/?ssoaction=login
  • For example you can use it as:
    <a href="http://base-url/?ssoaction=login”>Log in</a>"

    You can configure the ASP.NET SAML 2.0 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.

Application LINK
SAML SSO into DotNetNuke (DNN) site Click here
SAML SSO into SiteFinity site Click here
SAML SSO into Umbraco site Click here
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