2015-05-01 14 views
9
için çalışıyor.

IdentityServer v3'ü kullandım, şimdi bir web sitesinin hem kimlik ana bilgisayarı hem de web api ana bilgisayarı olmasını istiyorum.UseIdentityServerBearerTokenAuthentication, IdentityServer3

Yetkilendirme seçeneği, belirteci doğrulamak için kullanılmaz. Belirteç son noktasını doğruladım ve belirteç sonlandırma bitiş noktası beklendiği gibi çalışıyor (postacı kullanarak bir belirteç alabilir ve doğrulayabilirim). Denetleyici yöntemimi süslemek için [Authorize] özniteliğini kullandım. Tam günlüğe kaydetme IdentityServer'da etkinleştirilir, 'Bearer mytokenhere' değeriyle 'Yetkilendirme' başlık adıyla bir api isteği yaparken hiçbir şey günlüğe kaydedilir.

Bu, Visual Studio 2015 CTP6'yı kullanarak ASP.NET 5'te vNext web sitesidir.

 app.UseMvc(); 

     var certFile = AppDomain.CurrentDomain.BaseDirectory + "\\myawesomesite.pfx"; 

     app.Map("/core", core => 
     { 
      var factory = InMemoryFactory.Create(
          users: Users.Get(), 
          clients: Clients.Get(), 
          scopes: Scopes.Get()); 

      var idsrvOptions = new IdentityServerOptions 
      { 
       SiteName = "Lektieplan", 
       Factory = factory, 
       RequireSsl = false, 
       SigningCertificate = new X509Certificate2(certFile, "lektieplan"), 
       CorsPolicy = CorsPolicy.AllowAll, 
       LoggingOptions = new LoggingOptions { EnableWebApiDiagnostics = true,EnableHttpLogging = true, IncludeSensitiveDataInLogs = true, WebApiDiagnosticsIsVerbose = true } 
      }; 

      core.UseIdentityServer(idsrvOptions); 
     }); 

     app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions 
     { 
      Authority = "http://localhost:57540/core", 
      RequiredScopes = new[] { "api1" }, 
     }); 

Ve project.json

Benim bağımlılıkları:

"Microsoft.AspNet.Server.IIS": "1.0.0-beta3", 
    "Microsoft.AspNet.Mvc": "6.0.0-beta3", 
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta3", 
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta3", 
    "Thinktecture.IdentityServer3": "1.3.0.0", 
    "Microsoft.AspNet.Owin": "1.0.0.0-beta3", 
    "Microsoft.AspNet.Security.DataProtection": "1.0.0.0-beta3", 
    "Thinktecture.IdentityServer3.AccessTokenValidation": "1.2.2", 
    "Autofac": "4.0.0-alpha1", 
    "log4net": "2.0.3" 

sağladığım örneklerin bazıları çünkü bir çerez tabanlı seçenek çalışır geliyor bana. Tanımlama bilgilerini kullanmak istemiyorum.

+1

Kimlik doğrulama için owin katman yazılımı/core owin katman yazılımı ile çakışıyor, herhangi bir ipucu nasıl hata ayıklanır? – Jacee

+2

herhangi bir haber var mı? Şu anda çalışıyor mu? Ben de aynısını yapmak istiyorum. – dknaack

cevap

3

UseIdentityServerBearerTokenAuthentication yalnızca kimlik doğrulama türünüzdür? MVC için tanımlanmış herhangi bir filtreniz var mı?

Uygulamaları ayrı katana boru hatlarına ayırmaya çalışacağım, bu yüzden hiç bir şekilde çakışmıyorlar.

Sözde:

app.Map("/core", a => a.UseIdsrv()); 
app.Map("/somethingweb", a => a.UseMvc()); 
app.Map("/api", a => { 
    a.UseBearerTokenAuth(); 
    a.UseWebApi(); //or Mvc from now on, with v5 
}); 

Eğer ulaşmak istediğiniz şeye bağlı olarak, hem de o mvc boru hattına cookieauth eklemek gerekir Tahmin.