2

使用 IdentityServer3,一种配置外部身份验证提供程序的方法被添加到应用程序的 Startup 方法中

    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 中尚不支持外部提供者身份验证?

我尝试在 Configure 方法中注入 IAppBuilder 失败,但这将是一个非常混乱的解决方案......

有什么想法吗?谢谢

4

1 回答 1

3

感谢大家,

我认为我取得了一些重大进展。问题是我试图将旧的 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;
        });
    }
于 2016-02-24T00:33:42.620 回答