Tuesday, January 14, 2014

Implementing SSO w/ DNN and SmarterTrack

So this I have to admit had me spinning my wheels for a while, but I finally figured it out. So below is a step-by-step guide on how to implement SSO using DNN as the main login site, and SmarterTrack as a secondary site that authenticates using the DNN login.

Requirements: Please note that in order for SSO to work "out-of-the-box" so to speak is that both site must be on the same domain. (ie: www.mydomain.com & support.mydomain.com) If the domains are different this method will not work and you will have to implement a custom SSO scenario.

Note: This write-up was performed on DNN 06.02.09 and SmarterTrack 9.5

  1. Open up the web.config files from both DNN and SmarterTrack sites.
  2. Copy the entire "machineKey" tag line from the DNN web.config and paste it into the SmartTrack web.config.
  3. In both web.config files add the following parameters to the end of the "forms" tag:   domain="MyDomain.com" enableCrossAppRedirects="true"
  4. In the SmarterTrack web.config add the following to the beginning of the "forms" tag:
    name=".DOTNETNUKE"
  5. Log into your SmarterTrack site as the administrator
  6. Click the settings icon.
  7. In the navigation pane - Navigate to System Settings > Setup > External Providers
  8. In the options tab check "Enable login provider".
  9. Click the "Login" tab which is now available and enter the following information:
    Note: Replace www.MyDomain.com with your DNN domain
    Web Service URL: http://www.MyDomain.com/login.aspx
    Web Service Password: [Leave This Blank]
    Forgot Password URL: [Copy The Link From Your Login Page's 'Retrieve Password' Link]
    Select a default role for users
  10. Check "Enable single sign-on cookies from other sites".
  11. Click save.

Congratulations, you have successfully setup SSO between DNN and SmarterTrack.

Note that you have to have a matching User in SmarterTrack with the same UserName as found in DNN for SSO to work, otherwise you will get an error. So may have to manually create SmarterTrack usernames to match DNN accounts.