Настройте IdentityServer4 с собственным веб-приложением OWIN. - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь создать службу идентификации с помощью IdentityServer4.Служба размещается в OWIN (.Net Fx 4.7.x).Вот что я пробовал до сих пор:

Попытка # 1: Используйте примеры из документации : Однако все примеры основаны на ядре .Net.Репликация кодов, таких как app.UseIdentityServer();, не работает просто потому, что в этом примере app имеет тип IApplicationBuilder, тогда как в автономном приложении OWIN у нас есть IAppBuilder.

// Startup.cs
public void Configuration(IAppBuilder app)
{
    // Configure Web API for self-host. 
    HttpConfiguration config = new HttpConfiguration();
    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );

    // Configure Unity IOC

    app.UseIdentityServer(); //<--doesn't compile
    app.UseWebApi(config);
}

Попытка № 2: зарегистрировать промежуточное ПО IdentityServer вручную: Я попытался зарегистрировать необходимое промежуточное ПО вручную, просмотрев источники.Это выглядит примерно так:

//Startup.cs
public void Configuration(IAppBuilder app)
{
    ...
    // Configure Unity IOC

    app.Use<IdentityServerMiddleware>(
        config.DependencyResolver.GetService(typeof(ILogger<IdentityServerMiddleware>)));
    app.UseWebApi(config);
}

Это тоже не работает, так как метод Main выдает следующую ошибку при запуске WebApp с WebApp.Start<Startup>(baseAddress);

Без преобразованиядоступно между System.Web.Http.Owin.HttpMessageHandlerAdapter и Microsoft.AspNetCore.Http.RequestDelegate.Имя параметра: подпись

Как я могу правильно настроить это?Я знаю, что я могу использовать IdentityServer3 в этом случае, но я заинтересован в использовании IdentityServer4, так как IdentityServer3 больше не поддерживается.

1 Ответ

0 голосов
/ 14 мая 2018

Непосредственно из документации для Сервер идентификации 4

IdentityServer4 - это платформа OpenID Connect и OAuth 2.0 для ASP.NET Core 2 .

Identity Server 4 работает только с ядром Asp.Net 2.0. Вы не сможете использовать это для создания сервера идентификации со старым ASP.Net (Owin / KATANA). Я рекомендую вам перейти на ASP.NET Core 2.0.

Как уже упоминалось в комментариях, вы можете вернуться к Identity Server 3 , но это больше не поддерживается, поэтому, вероятно, не будет никаких обновлений безопасности, если с ним возникнут какие-либо проблемы. В связи с этим я бы не стал использовать его лично в новом производственном продукте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...