【问题标题】:Asp.NET MVC 5 IdentityServer4 External ProviderAsp.NET MVC 5 IdentityServer4 外部提供程序
【发布时间】:2016-02-24 08:33:42
【问题描述】:

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

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

有什么想法吗?谢谢

【问题讨论】:

标签: c# asp.net asp.net-mvc identityserver4


【解决方案1】:

谢谢大家,

我认为我取得了一些重大进展。问题是我试图将旧的 OWIN 引用添加到我的解决方案中,而不是采用新的 AspNet 身份验证。

“Microsoft.AspNet.Authentication.MicrosoftAccount”:“1.0.0-rc1-final”

我找到了解决方案here

使用 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;
        });
    }

【讨论】:

  • @federico 然后如何从登录页面获取外部提供商列表?在 MVC6 模板中,它使用 SignInManager.GetExternalAuthenticationSchemes(),但对于 IdentityServer4,我看不到如何获取相同的列表... :(
  • Context.Authentication.GetAuthenticationSchemes() 似乎得到了列表,但我还没有完全到那里... :( 是否有一个完整的指南可以使用 IdentityServer4 实现社交登录?
  • Seb,经过与 OpenIdConnect 的长期斗争,我最终创建了基于 jwt 的自定义身份服务器 :-)
猜你喜欢
  • 2017-03-29
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 2021-08-14
  • 1970-01-01
  • 2016-05-26
  • 2021-02-13
  • 1970-01-01
相关资源
最近更新 更多