2016-06-24 33 views
0

Ich habe hier https://identityserver.github.io/Documentation/docsv2/overview/jsGettingStarted.htmlIdentityServer3 Token Validation - Ausnahme in EmitCorsResponseHeaders nach unzureichendem Umfang in Zugriffstoken

Token-Validierung arbeitet einen Grund WebAPI Projekt nach der Führung einrichten nur in Ordnung, wenn ich den richtigen api Umfang in dem Token passieren Wenn es jedoch nicht eingeschlossen ist (wenn der Benutzer den Zugriff verweigert), fügt es der Antwort wie erwartet 403 hinzu.

In EmitCorsResponseHeaders (ScopeRequirementMiddleware.cs) geht es CORS-Header hinzufügen, aber eine Ausnahme auslöst -

[ArgumentException: The key 'Access-Control-Allow-Origin' is already present in the dictionary.] 
Microsoft.Owin.Host.SystemWeb.CallHeaders.AspNetResponseHeaders.Add(String key, String[] value) +178 
IdentityServer3.AccessTokenValidation.ScopeRequirementMiddleware.EmitCorsResponseHeaders(IDictionary`2 env) in c:\local\identity\server3\AccessTokenValidation\source\AccessTokenValidation\Plumbing\ScopeRequirementMiddleware.cs:97 

dies geschieht oder ist sein Sollte es etwas, was ich verpasst haben? app.UseCors (CorsOptions.AllowAll) wird in startup.cs wie im Handbuch für den ersten Start angegeben festgelegt.

Dank

Antwort

2

Es ist in der Tat ein Problem hier, aber ich bin mir nicht ganz sicher, wie es zu lösen.

Die ScopeRequirementMiddleware versucht, die Allow-Access-Control-Origin-Header für die Antwort festzulegen, aber dies geschieht nur, wenn die in der Middleware festgelegte Bereichsanforderung nicht erfüllt ist.

Dies steht offensichtlich in Konflikt mit der Tatsache, dass wir bereits die CORS-Middleware früher in der OWIN-Pipeline haben, die diesen spezifischen Header bereits gesetzt hat.

Ich bin mir nicht sicher, warum die Scope Requirement Middleware diese Header in diesem speziellen Fall setzt, werde ich ein Problem auf GitHub erstellen und es hier wieder für Sichtbarkeit verknüpfen.

+0

Danke für die Antwort - Ich habe tatsächlich ein Problem hier erstellt - https://github.com/IdentityServer/IdentityServer3.AccessTokenValidation/issues/93, aber ohne Antwort. Entschuldigungen sollten es in meinem ursprünglichen Beitrag verlinkt haben. – Dom