ASP .NET MVC OWIN and ADFS 3.0 with saml 2.0 - asp.net

I am trying to understand how I can use OWIN (katana) with ADFS 3.0 as an IdP using a SAML 2.0 token.
When you setup the relying party registration with your application you have an option of using the WS-Federation and or the SAML 2.0 token
From what I understand the SAML 2.0 token is the newer standard than WS-Federation. I believe one of the big differences is that you do not have to do any back channel validation of the token that you get back from your IdP but as far as why I have no idea. Can someone help me understand the following?
What are the differences from using WS-Federation and SAML 2.0?
If SAML 2.0 is better then how do I use OWIN to get that to work?

SAML-P 2.0 (P for protocol) uses SAML 2.0 tokens. WS-Fed uses SAML 1.1 tokens.
Both protocols implement federation. Historically, WS-Fed is Microsoft (SharePoint, CMS, Office 365) and SAML is open-source (Java).
Neither is "better" or "worse" functionally. It depends on your use case and what your IDP supports.
In terms of OWIN, there is no Microsoft OWIN SAML stack for this. There are others - refer here. Kentor is a popular choice.
If you have a choice, use WS-Fed. There is an official Microsoft NuGet package. Also, fewer parameters to configure.

Related

How to Validate Azure AD SAML 2.0 Assertion in C# using ITfoxtec Identity SAML 2.0 library

My project technology is ASP.NET Webforms (.NET framework 4.6.2).
We are using "ITfoxtec Identity SAML 2.0" library for Azure AD SAML Authentication. The sample code present in Itfoxtech website was helpful but, my manager asked me, how you are validating saml assertion once user login was successful? But, I didn't find any documentation regading validating saml assertion when user login successful. can you please let me know how to do that? I am not aware of SAML before, hence, could you please explain in details?
Validating Azure AD SAML Assertion in ASP.NET Webforms applicaiton
The SAML 2.0 assertion is part of the SAML 2.0 authn response sendt from Azure AD. The ITfoxtec Identity SAML 2.0 library validates the authn response and the assertion. By validating the signature(s), issuer, audience and time.

How to enable SAML into .net core(3.1) application with Auth0 as IDP

I want to enable SAMP into '.net core 3.1' application with Auth0 as IDP. I tried to explore Auth0.AspNetCore.Authentication but I did not find any information around SAML configuration as it's just a wrapper around Microsoft.AspNetCore.Authentication.OpenIdConnect.
Can someone help here with some documentation or sample code with some well proven open source library.
Thank you!
Microsoft.AspNetCore.Authentication.OpenIdConnect is for OpenId Connect.
SAML is a completely different protocol.
I don't think Auth0 have a sample for a .Net core client-side stack?
Otherwise, look here.
To configure Auth0 as a SAML IDP, look here.

Combining cookie and token authentication in ASP.NET Core

I've REST services (Web API) and admin panel (MVC) in one project on ASP.NET Core 2.1. I want to secure my API with JWT token, and my MVC pages with cookies. Can I combinate these two authentication ways. How to configure my Startup.cs, Authorize attribute and sign in functionality.
I suppose you should use an OAuth 2.0 framework. please check IdentityServer4 it enables many features in your applications.
IdentityServer is middleware that adds the spec compliant OpenID
Connect and OAuth 2.0 endpoints to an arbitrary ASP.NET Core
application.
Typically, you build (or re-use) an application that contains a login
and logout page (and maybe consent - depending on your needs), and the
IdentityServer middleware adds the necessary protocol heads to it, so
that client applications can talk to it using those standard
protocols.

Ping federate as IDp, consuming the SAML 2.0 response in ASP .net web forms

What is the best open source or paid library to make ASP .net web forms application as relying party, sign in a user, when Ping Federate as Idp.
PingFederate Integration Kit
https://documentation.pingidentity.com/display/NETIK/.NET+Integration+Kit
One Login
https://developers.onelogin.com/saml/c-and-aspnet
Kentor.AuthServices
https://github.com/KentorIT/authservices
Do all these solutions use open token protocol ?
Thanks
ameet
Calling one library the best is not that straightforward as it's highly circumstantial.
If you're the Ping Identity customer yourself, the Integration Kit would make sense, as it's supported by Ping, making life easier if something goes wrong. This limits you to an integration with PingFederate, but doesn't mean a SAML 2.0 connection couldn't be set up via PingFederate.
If the application might be offered to other customers who don't run PingFederate, using one of the SAML 2.0 libraries might make more sense, as it would be possible to connect anyone who has a SAML 2.0-supporting solution in place.
I don't know how support with the OneLogin Toolkit works, but Kentor is Open-Source, which needs to be considered prior making the choice.
OpenToken is not a standard, and the PingFederate implementation might not work with 3rd-party or Open-Source libraries.

SP Initiated SSO - ADFS 2.0

I've been trying to implement the SP initiated SSO with ADFS 2.0 configuration. But I could not find any solution to do that.
Not sure if the ADFS 2.0 supports the SP initiated SSO. I can see there are some third party libraries to do that but I don't want to use any third party libraries. I just need information on posting SAML request to identity provider and getting the SAML assertion back to the survive provider.
Here Service Provider is my application(asp.net) is and ADFS 2.0 is the Identity Provider.
Any idea how I can achieve this.
Thanks.
Your problem isn't ADFS - it's ASP.NET.
.NET has no SAML support. You need a third-party stack.
Refer: SAML : SAML connectivity / toolkit.
ADFS definitely supports the SP initiated SSO flow.

Resources