2016-02-23 12 views
2

С IdentityServer3 одном подходе к настройке внешнего поставщика проверки подлинности был добавить к методу запуска приложенияAsp.NET MVC 5 IdentityServer4 Внешний поставщик

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, но это будет довольно грязный решение ...

Любые мысли? Спасибо

+0

Посмотрите здесь, кто-то говорит о подобном вопросе: https://github.com/IdentityServer/IdentityServer3/issues/ 34 –

ответ

3

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

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

"Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-RC1-окончательный"

Я нашел решение 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; 
     }); 
    } 
+0

@calzi Спасибо, что указал мне в правильном направлении! –

+0

@federico, как вы можете получить список внешних поставщиков со страницы входа? В шаблоне MVC6 он использует SignInManager.GetExternalAuthenticationSchemes(), но для IdentityServer4 я не вижу, как получить тот же список ... :( – Seb

+0

Context.Authentication.GetAuthenticationSchemes(), кажется, получает список, но я не полностью там еще ... :(Есть ли полное руководство где-то, чтобы реализовать социальные логины с IdentityServer4? – Seb