4

I'm trying to use Sustainsys.Saml2 and Sustainsys.Saml2.AspNetCore2 library provided by this saml2 library to implement both IDP initiated and SP initiated scenarios.

After referring sample appliation things I did so far:
1. Refer latest Sustainsys.Saml2.AspNetCore2 and Sustainsys.Saml2 via nuget
2. Modified Startup.cs to add new options
3. Created MVC controller with ACS end point

Things I'm trying to understand:
1. Do I need to Initiated Saml2Handler so that I can hit HandleRequestAsync() end point of library.
2. How to retrive principal/claims
3. For sp initiated case when end point identifies request is not authenticated how to redirect request to IDP?
ConfigureServices method in startup.cs

        public void ConfigureServices(IServiceCollection services)
            {
                services.AddAuthentication()
                    .AddSaml2(options => 
                    {
                        options.SPOptions.EntityId = new EntityId("https://localhost:3131/Saml2");
                        options.IdentityProviders.Add(
                            new IdentityProvider(
                                new EntityId("http://localhost:52071/Metadata"), options.SPOptions)
                            {
                                LoadMetadata = true
                            });

                        options.SPOptions.ServiceCertificates.Add(new X509Certificate2("Sustainsys.Saml2.Tests.pfx"));
                    });
            }

    **SSO Controller** 


            [Authorize(AuthenticationSchemes = "Saml2")] 
            public class SsoController : Controller
            {
                public SingleSignOnController(ILogger logger)
                {
                }

                [Route("saml2/ACS")]
                [HttpPost]
                public ActionResult ACS()
                {
                    try
                    {   
                    // Is request authenticated here by library? 
                    // I tried hitting this end point from stud idp portal, but it is    
  throwing " MVC Exception Handler: The method or operation is not implemented.    at Sustainsys.Saml2.AspNetCore2.Saml2Handler.AuthenticateAsync()
       at Microsoft.AspNetCore.Authentication.AuthenticationService"         
                    }
                    catch (Exception e)
                    {

                    }
                }
            }

Do I need to create/implement Custom Saml2Handler and inject it in SSo controller? I could not find exact end point in this ASPNETSAMPLE project for saml2/ACS?

What I'm missing ?

Ami
  • 63
  • 1
  • 7

1 Answers1

1

The Acs endpoint is built into the handler. Remove your SsoController.

Check the asp.net core sample applications in the repo for an example on how to configure. The AspNetCore2 package contains a handler that works the same as any other external authentication handler for Asp.NET Core. You initiate the sign in sequence by an authentication challenge.

Anders Abel
  • 67,989
  • 17
  • 150
  • 217