OpenID Connect с ASP.NET MVC - PullRequest
       60

OpenID Connect с ASP.NET MVC

0 голосов
/ 13 июня 2018

Вопрос в названии довольно прост.Все учебные материалы, доступные в Интернете, рассказывают о реализации OpenID Connect в .NET Core.Мой текущий проект разработан в ASP.NET MVC (не в ASP.NET Core), и мне необходимо реализовать в нем OpenID Connect.

Я следовал в этом посте и пытался, но безуспешно!

Любая помощь / разъяснения по этому вопросу будут оценены.

1 Ответ

0 голосов
/ 13 июня 2018

Прежде всего вы должны забыть о настройке полномочий в web.config.
Затем вы должны убедиться, что вы присваиваете атрибут Authorize каждому контроллеру (для уверенности используйте подход глобального фильтра).
Ссылка Microsoft.Owin.Security.OpenIdConnect и все его зависимости.
Добавьте класс запуска Owin с помощью метода public void Configuration(IAppBuilder app).Как указано ниже:

using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using Microsoft.Owin.Security.OpenIdConnect;
using System.Collections.Generic;
using System.IdentityModel.Tokens;

[assembly: OwinStartup(typeof(MVC_OWIN_Client.Startup))]

namespace MVC_OWIN_Client
{
  public class Startup
  {
    public void Configuration(IAppBuilder app)
    {
        JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();

        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = "Cookies"
        });

        app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
        {
            ClientId = <Your app instance' identifier, must be registered in IdP>,
            Authority = <your IdP>,
            RedirectUri = <base address of your app as registered in IdP>,
            ResponseType = "id_token",
            Scope = "openid email",

            UseTokenLifetime = false,
            SignInAsAuthenticationType = "Cookies",
        });
    }
  }
}

Используйте ключевые слова "Owin", "Katana" и "Identityserver3" для дальнейшего поиска.

...