2016-11-15 12 views
5

सत्यापित करने के लिए एक्सप्रेसवेयर के रूप में एक्सप्रेस-जेडटी का उपयोग करें, मैं जानना चाहता हूं कि express-jwt एनपीएम पैकेज का उपयोग मिडवेयर के रूप में Azure एडी द्वारा जारी जेडब्ल्यूटी टोकन को सत्यापित करने के लिए करना संभव है या नहीं।Azure एडी जारी टोकन

हमारे पास एक्सप्रेस/नोड में लिखा गया एक वेब एपीआई है और हमारे एंडपॉइंट्स की सुरक्षा के लिए और उपयोगकर्ता सिद्धांत को पॉप्युलेट करने के लिए मिडलवेयर पैटर्न लागू करना चाहते हैं। के रूप में यह एक ग्राहक गुप्त आवश्यकता है, लेकिन ई से (बहुत अस्पष्ट प्रवाह में की तरह)

server.use(jwt({ 
    audience: '{UUID}', 
    issuer: 'https://sts.windows.net/{UUID}', 
}).unless({path : ['/']})) 

काम नहीं करता टोकन एक उपयोगकर्ता बातचीत के माध्यम से प्राप्त किए गए हैं और वहाँ कोई ग्राहक रहस्य है:

की तरह लगता है।

+0

आप अपना खुद का मिडलवेयर बना सकते हैं और अपनी इच्छानुसार मान्य कर सकते हैं, आप जेडब्ल्यूटी को कैसे प्राप्त करते हैं? प्रमाणीकरण हेडर? – Hosar

+0

हाँ यह एक प्राधिकरण हैडर (बेयरर टोकन) आप हस्ताक्षर कैसे सत्यापित करेंगे? – Lutando

उत्तर

5

आप "azure-ad-jwt" का उपयोग कर सकते हैं। यह काफी सीधे आगे है और मिडलवेयर में कोई इंजेक्शन की आवश्यकता नहीं है। आप इसे अपने स्वयं के "मिडलवेयर" फ़ंक्शन में मध्यस्थ चरण के रूप में इंजेक्ट कर सकते हैं।

private verifyToken(req: any, res: any) { 
     var audience = "xxxxxxxxx"; 
     var tenantId = "xxxxxxxxx"; 

     var authorization = req.headers['authorization']; 
     return Rx.Observable.create((observer) => { 
      if (authorization) { 
       var bearer = authorization.split(" "); 
       var jwtToken = bearer[1]; 
       if (jwtToken) { 
        aad.verify(jwtToken, { audience: audience, tenantId: tenantId }, function (err, result) { 
         if (result) { 
          observer.next(true); 
         } else { 
          res.status(401).send('That is not a valid token!'); 
         } 
        }) 
       } else { 
        res.status(401).send('No token in header.'); 
       } 
      } else { 
       res.status(401).send('Missing authorization attribute in header.'); 
      } 
     }); 
    } 
संबंधित मुद्दे