2016-12-08 9 views
2

Я использую IdentityServer3 с несколькими приложениями за последний год. Все эти приложения работают на .Net Framework 4.5. Теперь я создал приложение ASP.Net Core MVC (1.1), и я хотел использовать свой IdentityServer для обеспечения безопасности этого приложения. Но я изо всех сил пытаюсь заставить его работать. Я получаю 401 Несанкционированную ошибку.401 Неавторизованный с IdentityServer3 В ASP.Net Core 1.1 MVC Application

Вот конфигурация Я использую:

app.UseCookieAuthentication(new CookieAuthenticationOptions 
{ 
    AuthenticationScheme = "Cookies", 
    AutomaticAuthenticate = true, 
    AutomaticChallenge = true 
}); 

JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear(); 

app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions 
{ 
    AuthenticationScheme = "oidc", 
    SignInScheme = "Cookies", 

    Authority = "<IdentityServer URL>", 
    RequireHttpsMetadata = false, 

    ClientId = "clientid", 

    ResponseType = "token id_token", 
    Scope = { "openid","email"}, 

    SaveTokens = true, 

    PostLogoutRedirectUri = "http://localhost:29995/", 

    Scope = { "openid, email" }, 
    ResponseType = "id_token token", 

    Events = new OpenIdConnectEvents() 
    { 
     OnTokenValidated = (context) => 
     { 
      //my code 
      return Task.FromResult(0); 
     } 
    } 
}); 

Когда я пытаюсь попасть защищенную страницу я получаю 401 Несанкционированное. Его даже не идет на страницу входа IdentityServer.

Url, что он пытается ударить

https://<IdentityServerUrl>/connect/authorize?client_id=APITestweb&redirect_uri=http://localhost:29995/signin-oidc&response_type=code id_token&scope=openid profile email&response_mode=form_post&nonce=<data>&state=<data> 

идентификатор клиента и URL, правильно настроен. Я попытался создать еще одно приложение ASP.Net MVC (не ASP.Net Core), и это прекрасно работает с той же информацией о конфигурации.

Пожалуйста, помогите.

[Edit] Добавление записи информации в

[Debug] Executing action "WebClient.Controllers.HomeController.About (WebClient)" 
[Information] Authorization failed for user: null. 
[Warning] Authorization failed for the request at filter '"Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter"'. 
[Information] Executing ChallengeResult with authentication schemes ([]). 
[Debug] AuthenticationScheme: "Cookies" was not authenticated. 
[Verbose] Entering "Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler"'s HandleUnauthorizedAsync. 
[Verbose] Using properties.RedirectUri for 'local redirect' post authentication: '"http://localhost:29995/Home/About"'. 
[Debug] Reading data from file '"C:\path\DataProtection-Keys\key-2a848b38-3cf4-4c57-b8ef-4c0b56c83993.xml"'. 
[Debug] Found key {2a848b38-3cf4-4c57-b8ef-4c0b56c83993}. 
[Debug] Considering key {2a848b38-3cf4-4c57-b8ef-4c0b56c83993} with expiration date 2017-03-08 21:08:54Z as default key. 
[Debug] Decrypting secret element using Windows DPAPI. 
[Debug] Opening CNG algorithm '"AES"' from provider 'null' with chaining mode CBC. 
[Debug] Opening CNG algorithm '"SHA256"' from provider 'null' with HMAC. 
[Debug] Using key {2a848b38-3cf4-4c57-b8ef-4c0b56c83993} as the default key. 
[Verbose] Performing protect operation to key {2a848b38-3cf4-4c57-b8ef-4c0b56c83993} with purposes "('project path', 'Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectMiddleware', 'System.String', 'oidc', 'v1')". 
[Verbose] Performing protect operation to key {2a848b38-3cf4-4c57-b8ef-4c0b56c83993} with purposes "('project path', 'Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectMiddleware', 'System.String', 'oidc', 'v1')". 
[Information] AuthenticationScheme: "oidc" was challenged. 
[Information] Request finished in 1301.6524ms 401 
[Debug] Connection id ""0HL10CR7G2G0J"" completed keep alive response. 
+0

Вы добавили вход в проект 1.1? что говорит журнал? – Lutando

+0

@ Lutando Спасибо. Я добавил информацию журнала к вопросу. – user3731783

+0

Какая версия OIDC mw? –

ответ

3

Если вы используете Microsoft.AspNetCore.Authentication.OpenIdConnect v.1.1.0, есть в настоящее время ошибка (или нарушение изменения, как можно было бы назвать его).

Для меня пакет 1.0.0 все еще работает, поэтому проверьте, помогает ли понижение.

Link to GitHub issue on change introduced in 1.1.0 and why it was breaking

+0

Вы находитесь на месте. Огромное спасибо. Для других людей, у которых есть аналогичная проблема, мне пришлось понизить Microsoft.AspNetCore.Authentication.Cookies тоже. После этого мне пришлось добавить путь singin-oidc, чтобы разрешить перенаправление uri, что не требуется с полной .Net Framework. – user3731783