2017-12-20 86 views
6

का उपयोग कर जेडब्ल्यूटी रिमोट प्रमाणीकरण में त्रुटि वर्तमान में मेरे पास दो अलग-अलग परियोजनाएं हैं, एक मेनएपीआई, जो मेरे वेब क्लाइंट के लिए कार्यों का पर्दाफाश करेगी, और दूसरा, औथैपी, जो सभी ऑथ अनुरोधों को संभालती है, सभी का उपयोग करके बनाया गया है नेटकोर 2.नेटकॉयर 2

अगर मैं सीधे औथैपी को कॉल करता हूं, तो यह वांछित अनुरोधों को संभाल लेगा।

जब मैं मेनएपीआई अनुरोधों को औथैपी द्वारा प्रमाणीकृत करने का प्रयास करता हूं, तो ऐसा करने में विफल रहता है, हालांकि मैं औथैपी में आने वाले अनुरोधों को देख सकता हूं।

public class BackChannelHttpHandler : HttpMessageHandler 
    { 
     protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) 
     { 

      HttpClient client = new HttpClient(new HttpClientHandler(), disposeHandler: false);   
      client.DefaultRequestHeaders.Add("Accept", "application/json"); 
      var res = await client.GetAsync(request.RequestUri); 
      return res; 
     } 
    } 

और नियंत्रक मैं अधिकृत टिप्पणी के रूप में बोल रहा हूँ इस प्रकार है::

services.AddAuthentication(option => 
       option.DefaultAuthenticateScheme = "Bearer") 
       .AddJwtBearer(options => 
       { 
        options.MetadataAddress = "http://localhost:5019/auth/api/info"; 
        options.Authority = "http://localhost:5019"; 
        options.Audience = AUDIENCE; 
        options.RequireHttpsMetadata = false; 
        options.SaveToken = true; 

        options.BackchannelHttpHandler = new BackChannelHttpHandler(); 

        options.IncludeErrorDetails = true; 

       }); 

यहाँ BackChannelHttpHandler वर्ग है:

यहाँ MainAPI Startup.cs में अपनी सेवाओं प्रमाणीकरण विन्यास है

[Authorize(AuthenticationSchemes = "Bearer")] 

औथैपी के लिए, मेरे पास स्टार्टू में कॉन्फ़िगर किया गया है p.cs:

services.AddCors(options => 
    { 
     options.AddPolicy("CorsConfig", 
         builder => builder 
          .AllowAnyOrigin() 
          .AllowAnyHeader() 
          .AllowAnyMethod() 
          .AllowCredentials() 
          .Build()); 
}); 

AuthAPI नियंत्रक में मैं भी [EnableCors("CorsConfig")] एनोटेशन की है।

मैं औथैपी नियंत्रक को कॉल प्राप्त कर सकता हूं, और यह HTTP-200 लौटाता है, लेकिन मेरे मेनएपीआई में प्राधिकरण प्रक्रिया में कुछ कहलाता है कि इसे अनधिकृत करता है और मेनैपी नियंत्रक को मेरी कॉल कभी निष्पादित नहीं होती है।

मेरी खोज है, मैं मेनएपीआई प्रमाणीकरण प्रक्रिया में क्या गलत कर रहा हूं, जो खुद को टोकन द्वारा प्रमाणित करता है, और अनुरोध को अमान्य करता है।

+0

क्या आप मेनैपी सर्वर से औथैपी को कॉल करते हैं? कॉल कैसा दिखता है? –

उत्तर

0

इस पैरामीटर विकल्पों के लिए ध्यान दें। ऑडियंस; इसमें अंत-बिंदु उपलब्ध होना चाहिए।

या आप अधिक उत्पादकता के लिए अनुप्रयोगों के बीच एक कुंजी साझा कर सकते हैं। प्रत्येक एंड-पॉइंट टोकन से पेलोड पढ़ सकता है, लेकिन केवल ऑथ-सर्वर टोकन उत्पन्न कर सकता है।

+0

जहाँ तक मुझे पता है, दर्शक किसी भी स्ट्रिंग हो सकता है। मैं सीओआरएस कॉल सहित सफलता के साथ "उपयोगकर्ता" का उपयोग करता हूं। –

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