2015-05-01 8 views
9

के लिए काम नहीं कर रहा है मैंने पहचान सर्वर v3 का उपयोग किया है, अब मैं चाहता हूं कि एक वेबसाइट पहचान मेजबान और वेब एपीआई होस्ट दोनों हो।UseIdentityServerBearerToken प्रमाणीकरण पहचान Server3

प्राधिकरण विकल्प का उपयोग टोकन को सत्यापित करने के लिए नहीं किया जाता है। मैंने टोकन एंडपॉइंट सत्यापित किया है और टोकन सत्यापन एंडपॉइंट अपेक्षित के रूप में काम कर रहा है (मैं पोस्टमैन का उपयोग करके टोकन प्राप्त और मान्य कर सकता हूं)। मैंने अपने नियंत्रक विधि को सजाने के लिए [अधिकृत] विशेषता का उपयोग किया। पहचान सर्वर पर पूर्ण लॉगिंग सक्षम है, 'बेयरर मायटोकेन' जैसे मान के साथ हेडर नाम 'प्राधिकरण' के साथ एपीआई अनुरोध करते समय कुछ भी लॉग नहीं किया गया है।

यह विजुअल स्टूडियो 2015 सीटीपी 6 का उपयोग कर एएसपी.NET 5 पर एक vNext वेबसाइट है।

 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" }, 
     }); 

और मेरे project.json

मेरे निर्भरता:

"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" 

मैं मुझे लगता है कि उपलब्ध कराई गई नमूनों में से कुछ एक कुकी आधारित विकल्प की वजह से काम करता है। मैं कुकीज़ का उपयोग नहीं करना चाहता।

+1

मुझे लगता है कि प्रमाणीकरण के लिए ओविन मिडलवेयर/कोर ओविन मिडलवेयर के साथ संघर्ष करता है, किसी भी संकेत को डीबग करने के लिए कैसे संकेत मिलता है? – Jacee

+2

कोई खबर? क्या यह अब काम करता है? मैं वही करना चाहता हूं। – dknaack

उत्तर

3

उपयोग है IDentityServerBearerToken प्रमाणीकरण आपके एकमात्र ऑथ प्रकार? क्या आपके पास एमवीसी के लिए परिभाषित कोई फ़िल्टर है?

मैं ऐप्स को अलग कटाना पाइपलाइनों में विभाजित करने का प्रयास करूंगा, इसलिए वे बिल्कुल भी संघर्ष नहीं करते हैं।

छद्म:

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 
}); 

आप हैं अनुमान आप क्या हासिल करना चाहते हैं पर निर्भर करता है, साथ ही है कि MVC पाइपलाइन को cookieauth जोड़ने की जरूरत है।

संबंधित मुद्दे