iiminov / LinkWise---OneDrive-Module

Simple DNN module to access users files from OneDrive for business built on Office365 API.
Other
1 stars 0 forks source link

Owin challenge didn't trigger the redirect to the Azure login page #1

Open tatigo opened 9 years ago

tatigo commented 9 years ago

Hello, I was using your solution as a sample, as I'm trying to achive soemthing similar in DNN. The issue that I'm having is that the HttpContext.Current.GetOwinContext().Authentication.Challenge that called to signin redirects me to the DNN login page instead of the Azure login. That boiled down to the fact that DNN uses forms authentication, and OWIN-OpenId Connect is overtaken by that login. How did you managed make your module work with DNN website?

iiminov commented 9 years ago

@tatigo it is as you said and unfortunately everything boils down to the fact that DNN is focused around forms authentication.

While it has been suggested by Cathal Connolly to create my own authentication provider based on google/live/twitter it didn't suit what I was trying to achieve.

Another suggestion by someone on stackoverflow to do it on server level via IIS. Unfortunately I can't seem to find the link for the post :c but in the end this approach didn't suit me.

Luckily someone took the time and recently made Azure authentication provider. Unfortunately it requires DNN v7.4.1+ (again I can't find a link to it right now) but if you search the store or better bug tracker you'll find it. I haven't tested this myself but it from what I read it seemed promising.

But what I ended up doing is creating a stand alone module to handle Office 365 authentication and communication with OneDrive because of this problem with OWIN. Then I created a module in DNN, to be more precise a service. The sole purpose of this service is to handle requests from that stand alone module.

So in the end I didn't manage to get my module to work with DNN directly but I managed to get a roundabout way of getting data from OneDrive into DNN.

tatigo commented 9 years ago

I know that dnn azure provider that you're talking about, it won't solve the task that I 'm trying to achieve. Since I need to have the user to login with their regular dnn credentials and only connect to azure if needed. But thanks for confirming the conclusion that I came to regarding separate web client for authentication.

P.S. In case that you wish to upload your solution here I would be glad to contribute to it.

-----Original Message----- From: "Isa Iminov" notifications@github.com Sent: ‎2015-‎08-‎28 18:22 To: "iiminov/LinkWise---OneDrive-Module" LinkWise---OneDrive-Module@noreply.github.com Cc: "Tatiana" tatiana.golod@yahoo.com Subject: Re: [LinkWise---OneDrive-Module] Owin challenge didn't trigger theredirect to the Azure login page (#1)

@tatigo it is as you said and unfortunately everything boils down to the fact that DNN is focused around forms authentication. While it has been suggested by Cathal Connolly to create my own authentication provider based on google/live/twitter it didn't suit what I was trying to achieve. Another suggestion by someone on stackoverflow to do it on server level via IIS. Unfortunately I can't seem to find the link for the post :c but in the end this approach didn't suit me. Luckily someone took the time and recently made Azure authentication provider. Unfortunately it requires DNN v7.4.1+ (again I can't find a link to it right now) but if you search the store or better bug tracker you'll find it. I haven't tested this myself but it from what I read it seemed promising. But what I ended up doing is creating a stand alone module to handle Office 365 authentication and communication with OneDrive because of this problem with OWIN. Then I created a module in DNN, to be more precise a service. The sole purpose of this service is to handle requests from that stand alone module. So in the end I didn't manage to get my module to work with DNN directly but I managed to get a roundabout way of getting data from OneDrive into DNN. — Reply to this email directly or view it on GitHub.

iiminov commented 9 years ago

I'd love to upload my workaround here but it is no longer resembles the module I thought of when I began working on it. As a result most of it got scrapped all client side code has been removed. And now it resembles nothing more than a collection of service functions to interpret CORS requests from my stand alone app.

On the other hand I found that stackoverflow question Owin challenge triggers in the second intent on DNN by lienysd I mentioned earlier. Looking at comments you also stumbled upon it at some point. But more importantly original poster has now come up with authentication provider that works with DNN forms authentication so its worth digging deeper into it.