Asp.NET MVC 5 IdentityServer4 Внешний поставщик

В IdentityServer3 один из способов настройки внешнего поставщика аутентификации был добавлен в метод запуска приложения.

    internal class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var microsoft = new MicrosoftAccountAuthenticationOptions()
            {
                AuthenticationType = "Microsoft",
                ClientId = "********",
                ClientSecret = "********"
            };
            app.UseMicrosoftAccountAuthentication(microsoft);
            ....
        }
    }

В IdentityServer4 все разработано на основе интерфейса IApplicationBuilder, который не имеет методов, описанных выше.

    public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
    {
       ....
    }

Означает ли это, что в V4 внешние провайдеры аутентификации еще не поддерживаются?

Я безуспешно пытался ввести IAppBuilder в метод Configure, но это было бы довольно грязное решение...

Какие-нибудь мысли? Спасибо

1 ответ

Спасибо всем,

Я думаю, что я сделал несколько значительных успехов. Проблема заключалась в том, что я пытался добавить старые ссылки OWIN к своему решению вместо того, чтобы принять новую Аутентификацию AspNet.

"Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-rc1-final"

Я нашел решение здесь.

Событие с IApplicationBuilder можно зарегистрировать внешних провайдеров, как описано ниже

        public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
    {
        ...
        app.UseMicrosoftAccountAuthentication(options =>
        {
            options.ClientId = Configuration["AppSettings:AzureClientId"];
            options.ClientSecret = Configuration["AppSettings:AzureClientSecret"];
            options.AuthenticationScheme = "Microsoft";
            options.SignInScheme = "Cookies";
            options.CallbackPath = new PathString("/signin-microsoft");
            options.AuthorizationEndpoint = MicrosoftAccountDefaults.AuthorizationEndpoint;
            options.TokenEndpoint = MicrosoftAccountDefaults.TokenEndpoint;
        });
    }
Другие вопросы по тегам