Я пытаюсь добавить аутентификацию SAML 2.0 в решение ASP.Net Core. Я не могу найти документацию по этому вопросу, поэтому я не уверен, с чего начать. Вероятно, есть документация, но я не хочу тратить 3 дня на то, чтобы стать экспертом по этому вопросу.
Из того, что я вижу, ASP.Net Core кое-что изменил из старых сборок/пространств имен OWIN. Для упрощения реализации SAML 2.0 существуют сторонние библиотеки, такие как Kentor.AuthServices.
Я не уверен, как объединить это с ASP.Net 5 RC 1/ASP.Net Core. Например, используя таблицы AspNet * в SQL.
ASP.Net 5 RC 1 поставляется с несколькими библиотеками для реализации аутентификации (клиента).
Например:
- Microsoft.AspNet.Authentication.OAuth
- Microsoft.AspNet.Authentication.Facebook
- Microsoft.AspNet.Authentication.Google
- Microsoft.AspNet.Authentication.Twitter
Реализация этих задач - вызов простого метода расширения в Startup.cs
:
app.UseIdentity()
.UseFacebookAuthentication(new FacebookOptions
{
AppId = "ID",
AppSecret = "KEY"
})
.UseGoogleAuthentication(new GoogleOptions
{
ClientId = "ID",
ClientSecret = "SECRET"
})
.UseTwitterAuthentication(new TwitterOptions
{
ConsumerKey = "KEY",
ConsumerSecret = "SECRET"
});
Как только это будет сделано, образец проекта ASP.Net автоматически отобразит социальные кнопки для входа/управления учетной записью:
В базовом коде поставщики проверки подлинности извлекаются с помощью var otherLogins = _signInManager.GetExternalAuthenticationSchemes().Where(auth => userLogins.All(ul => auth.AuthenticationScheme != ul.LoginProvider)).ToList();
. Это означает, что провайдеры аутентификации зарегистрированы где-то, что делает их доступными, вызывая _signInManager.GetExternalAuthenticationSchemes()
.
Как реализовать проверку подлинности SAML 2.0 в ASP.Net 5 RC1/ASP.Net Core?