Динамическое добавление поставщика проверки подлинности SAML2 с использованием Sustainsys.Saml2 в ASP.NET Core - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь динамически добавить схему аутентификации SAML2, используя IAuthenticationSchemeProvider в ASP.NET Core и библиотеке Sustainsys.Saml2:

schemeProvider.AddScheme(new AuthenticationScheme("myAuthScheme", "myAuthScheme", typeof(Saml2Handler)));

Наряду со схемой мне нужно настроить Saml2Options, которые согласны с этим.Я пытаюсь сделать это, используя IOptionsMonitorCache<Saml2Options>, например так:

samlOptionsCache.TryAdd("myAuthScheme", options);

Когда я пытаюсь аутентифицироваться по этой схеме, я получаю следующую ошибку:

NullReferenceException:В экземпляре объекта не задана ссылка на объект.Sustainsys.Saml2.WebSso.Saml2Urls..ctor (запрос HttpRequestData, параметры IOptions). Sustainsys.Saml2.WebSso.SignInCommand.Run (запрос idityId idpEntityId, строка returnPath, HttpRequestData.ChallengeAsync (свойства AuthenticationProperties)

Таким образом, похоже, что свойства никогда не связываются со схемой.

Я не уверен, что иду по правильному пути с этим,Можно ли динамически зарегистрировать схему таким образом?

1 Ответ

0 голосов
/ 25 февраля 2019

Оказывается, что это был просто регистратор, который не был создан, все остальные параметры были в порядке.Я решил это, добавив ...

options.SPOptions.Logger = new AspNetCoreLoggerAdapter(loggerFactory.CreateLogger<Saml2Handler>());

... при настройке параметров.

loggerFactory относится к внедренному экземпляру Microsoft.Extensions.Logging.ILoggerFactory.

...