Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDNN Open Source...DNN Open Source...Provider and Extension ForumsProvider and Extension ForumsAuthenticationAuthenticationLogin Authentication with Digital Certificates - need adviceLogin Authentication with Digital Certificates - need advice
Previous
 
Next
New Post
10/27/2009 4:25 PM
 

Hello,

I am looking for direction or advice after many days playing with DNN and reading Forum.

Our company trying to build portal based on DNN.

Main requirement is SSL connection and Certificate Authentication on every page. All our customers have already installed digital certificates and using them in all our other applications for authentication.
We are already installed latest DNN and I already tried to create Authentication module based on article of Joe Brinkman
http://blog.theaccidentalgeek.com/post/2009/07/13/DotNetNuke-Tips-and-Tricks-12-Creating-your-own-Authentication-Provider.aspx,
but we not satisfied with result (user still have to provide userid and password), but I can see certificate information passed by user (Dim certificate = HttpContext.Current.Request.ClientCertificate).

I need advice and direction how to implement our requrements in DNN:

- transparent authentication (user does not enter any info or click any buttons), if user does not have valid certificate show error page
- every page should be authenticated (by redirecting every page to our new module/page?)
- digital certificate info should be checked behind scene by our new DNN module (compare certificate params with our data in SQL table or XML file ?)

I will appreciate any help and advice.

Eugene

 
New Post
10/28/2009 3:51 PM
 

DNN Team!

Guys, I know you are very busy people and you help a lot to DNN community but I desparatly need some help and direction - we could be potentially big customer for you.

Eugene

 
New Post
10/28/2009 6:00 PM
 

Sorry Eugene. I saw this post earlier, got distracted, and missed answering it.

The best I can think of ATM is to look at the AD provider. Specifically look at the AuthenticationModule.vb that implements IHttpModule. In the web.config there's a line added to the <httpModule> section which forces DNN to go through the AuthenticationModule.vb file every page refresh, click, etc. In the case of an automatic login it does the redirect to WindowsSignin.aspx which logs the Active Directory user into DNN.

Without seeing your code I'm just guessing but from what you've described this is similar to what you're trying to accomplish (user visits site, your AuthenticationModule file is called, certificate is checked, if valid pass user on to wherever they're going/if not do something else).

 
New Post
10/28/2009 11:38 PM
 

Thank you Mike for advice!

I definitly will look at AD provider and try to adjust code to our requrements.

Cheers

Eugene

 
New Post
11/3/2009 12:42 AM
 

Mike,

you suggested to investigate AD provider and specificly AuthenticationModule.vb that implements IHttpModule, but after searching DNN project I discovered another place where potentially I can verify my clients certificates on every page request, this is DotNetNuke.HttpModules.dll (project DotNetNuke.HttpModules  - Membership - MembershipModule.vb following method:

        Public Sub OnAuthenticateRequest(ByVal s As Object, ByVal e As EventArgs)

            Dim Context As HttpContext = CType(s, HttpApplication).Context
            Dim Request As HttpRequest = Context.Request
            Dim Response As HttpResponse = Context.Response

            'read Certificate
            Response.Write("Eugene Test; DateTime=" + DateAndTime.Now.ToString() + "</br>")
            Response.Write("ClientCertificate.IsValid=" + Request.ClientCertificate.IsValid.ToString() + "</br>")
            Response.Write("ClientCertificate.Issuer=" + Request.ClientCertificate.Issuer + "</br>")
            Response.Write("ClientCertificate.ServerIssuer=" + Request.ClientCertificate.ServerIssuer + "</br>")
            Response.Write("ClientCertificate.Subject=" + Request.ClientCertificate.Subject + "</br>")

I did some quick changes, recompile, replaced original DLL and now I see certificate info on every HTTPS request

so Mike my question is it correct place to do this page certificate validation ?

 
Previous
 
Next
HomeHomeDNN Open Source...DNN Open Source...Provider and Extension ForumsProvider and Extension ForumsAuthenticationAuthenticationLogin Authentication with Digital Certificates - need adviceLogin Authentication with Digital Certificates - need advice


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out