Динамическое добавление поставщика проверки подлинности SAML2 с использованием Sustainsys.Saml2 в ASP.NET Core
Я пытаюсь динамически добавить схему аутентификации 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(запрос EntityId idpEntityId, строка returnPath, запрос HttpRequestData, IOptions параметры. ChallengeAsync(свойства AuthenticationProperties)
Таким образом, похоже, что свойства никогда не связаны со схемой.
Я не уверен, что иду по правильному пути с этим. Можно ли динамически зарегистрировать схему таким образом?
1 ответ
Оказывается, это был просто регистратор, который не был создан, все остальные варианты были в порядке. Я решил это, добавив...
options.SPOptions.Logger = new AspNetCoreLoggerAdapter(loggerFactory.CreateLogger<Saml2Handler>());
... когда я настраивал параметры.
loggerFactory
относится к введенному экземпляру Microsoft.Extensions.Logging.ILoggerFactory
,