2016-08-26 10 views
1

Я загрузил образец проекта IdentityServer и MVC-клиента из Github. Моя цель - создать среду портала, в которой пользователь может аутентифицироваться и затем запрашивать защищенные ресурсы.Комбинированный идентификаторServer4 и MVC-клиент

Так что я сделал это переместить взгляды от клиента MVC к проекту IdentityServer, изменил Client.cs для поддержки клиента на тот же порт и добавил следующее в запуске из IdentityServer:

 var oidcOptions = new OpenIdConnectOptions 
     { 
      AuthenticationScheme = "oidc", 
      SignInScheme = "Cookies", 

      Authority = "http://localhost:5000", 
      RequireHttpsMetadata = false, 
      PostLogoutRedirectUri = "http://localhost:5000/", 
      ClientId = "mvc", 
      ClientSecret = "secret", 
      ResponseType = "code id_token", 
      GetClaimsFromUserInfoEndpoint = true, 
      SaveTokens = true 
     }; 

Вопрос в том, есть ли какие-либо причины, касающиеся безопасности, я не должен реализовывать это и держать его отдельно?

ответ

3

В этом нет ничего плохого с точки зрения безопасности.

Однако я должен предупредить вас, что вы столкнулись с проблемой при работе с куки-файлами и токенами. Выполнение их в отдельных проектах неявно отделяет проблемы проектов MVC и IDS.

что-то, что вы, возможно, захотите сделать, - это раскошелиться на ваш запрос, используя app.Map(). (например, IDS карты для «/ identity» и проект MVC для «/ ui»)

+0

Означает ли это, что файлы cookie и токены разделены в разных схемах аутентификации? Я не уверен, что вы имеете в виду с отображением, что должно отображаться? – user

+0

Вы узнали, что означает app.Map()? –

+0

Интересно, но не уверен, что это решит все проблемы. IdentityServer имеет определенные встроенные функции для перенаправления и для того, что вызывает действие входа, и вам все равно придется бороться, чтобы получить правильное поведение. Например, вы обычно запускаете вход, когда вы нажимаете на защищенную страницу, и после входа вы перенаправляетесь на защищенную страницу. Но что, если я просто выйду из входа в мое главное меню с анонимной страницы? Ожидаемое поведение будет состоять в том, чтобы вернуться к последней посещенной странице, которую IdentityServer не настроен для обработки. – dapug