Как использовать Sustainsys.Saml2.AspNetCore2 в существующих сетевых приложениях? - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь использовать библиотеки Sustainsys.Saml2 и Sustainsys.Saml2.AspNetCore2, предоставляемые этой библиотекой saml2 для реализации сценариев, инициируемых как IDP, так и SP.

После ознакомления с примерами того, что я делал до сих пор:
1. Обратитесь к последним Sustainsys.Saml2.AspNetCore2 и Sustainsys.Saml2 через nuget
2. Изменен Startup.cs для добавления новых опций
3. Создан контроллер MVC с конечной точкой ACS

Вещи, которые я пытаюсь понять:
1. Нужно ли инициировать Saml2Handler, чтобы я мог нажать на конечную точку библиотеки HandleRequestAsync ().
2. Как вернуть основной / претензии
3. Для инициируемого sp случая, когда конечная точка идентифицирует запрос, не аутентифицированный, как перенаправить запрос в IDP?
Метод ConfigureServices в файле 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)
                    {

                    }
                }
            }

Нужно ли создавать / реализовывать Custom Saml2Handler и внедрять его в контроллер SSo? Я не смог найти точную конечную точку в этом ASPNETSAMPLE проекте для saml2 / ACS?

Что мне не хватает?

1 Ответ

0 голосов
/ 17 января 2019

Конечная точка Acs встроена в обработчик. Удалите свой SsoController.

Проверьте примеры приложений ядра asp.net в репозитории для примера того, как настроить. Пакет AspNetCore2 содержит обработчик, который работает так же, как и любой другой внешний обработчик аутентификации для Asp.NET Core. Вы инициируете последовательность входа с помощью запроса аутентификации.

...