2017-02-14 6 views
5

के लिए ग्राहक-विशिष्ट API कुंजी को कॉन्फ़िगर कैसे करें मैं http ट्रिगर के साथ एक सी # एज़ूर फ़ंक्शन बनाना चाहता हूं। मैं इसे API Key से सुरक्षित करना चाहता हूं, प्रति ग्राहक एक अलग कुंजी प्रदान करता हूं, और फ़ंक्शन को ग्राहक-विशिष्ट डेटा प्रदान करना चाहिए ताकि उसे पहचानने की आवश्यकता हो।Azure Functions

क्या मैं ग्राहक की पहचान करने के लिए एज़ूर फ़ंक्शन एपीआई कुंजी का उपयोग कर सकता हूं, उदा। पास की गई कुंजी का नाम प्राप्त करें? या क्या एज़ूर फ़ंक्शन के भीतर जानने का कोई तरीका नहीं है जिसका उपयोग अनुरोध को प्रमाणीकृत करने के लिए किया गया था?

यदि GetApiKeyName() जैसी कोई विधि थी, तो मैं अपने डेटाबेस में ग्राहकों की सूची के खिलाफ कुंजी नाम देख सकता हूं और फ़ंक्शन को कॉल करने वाले व्यक्ति के आधार पर अलग-अलग डेटा लौटा सकता हूं। जैसे कल्पना करें कि मेरे पास बिक्री-ट्रैकिंग प्रणाली है और मेरा फ़ंक्शन /api/GetMonthlySales है। यदि ग्राहक 1 अपनी एपीआई कुंजी के साथ फ़ंक्शन को कॉल करता है तो उन्हें अपनी मासिक बिक्री मिलनी चाहिए और यदि ग्राहक 2 इसे कॉल करता है तो उन्हें एक अलग राशि मिल जाएगी।

यदि यह संभव नहीं है तो इसका मतलब है कि प्रत्येक फंक्शन कॉल को पास करने के लिए मुझे प्रत्येक ग्राहक को अतिरिक्त प्रमाणीकरण डेटा देना होगा, उदा। एक ग्राहक आईडी और एक गुप्त कुंजी। लेकिन यह Azure Functions API कुंजी का उपयोग करने के उद्देश्य को हरा देता है, है ना?

एक समान परिदृश्य होगा यदि मैं अपने कार्य को कॉल करते समय ग्राहकों को चार्ज करना चाहता हूं। मैं कैसे पहचानूं कि कौन सा ग्राहक मेरे फ़ंक्शन को कॉल कर रहा है?

+0

अब के लिए मैंने Azure प्रमाणीकरण * का उपयोग करने का निर्णय लिया है और * उसी एपीआई कुंजी को डीबी में डाल दिया है। तब मुझे पता है कि Azure केवल वैध कुंजी वाला कोई व्यक्ति फ़ंक्शन को कॉल कर रहा है, और मैं देखता हूं कि क्वेरीस्ट्रिंग 'कोड' पैरामीटर को पकड़कर और इसे डीबी में ढूंढकर कौन है। नए ग्राहकों को प्रावधान करने के लिए मुझे उन्हें Azure Function auth में जोड़ने की आवश्यकता है और फिर उन्हें मेरे डीबी में जोड़ें। उम्मीद है कि भविष्य में इसके लिए अंतर्निहित समर्थन होगा लेकिन यदि आपके पास कुछ ग्राहक हैं तो यह बहुत बोझिल नहीं है। – Rory

उत्तर

5

रोरी,

दुर्भाग्यवश दुर्भाग्य से आज समर्थित नहीं है। प्रमाणीकरण कुंजी के आधार पर होगा और आप व्यक्तिगत क्लाइंट कुंजी को निरस्त/नवीनीकृत कर सकते हैं, लेकिन वह जानकारी वर्तमान में कार्यों में सामने नहीं आती है।

प्रबंधन API का उपयोग करके कुंजी को मैप करने और क्लाइंट की पहचान करने के लिए अनुरोध कुंजी से मेल खाने जैसे कुछ कामकाज हैं, लेकिन वे बोझिल और अक्षम हैं।

मुझे इस here पर नज़र रखने में कोई समस्या हुई है और मैंने इसे फिर से ट्रायेज के लिए चिह्नित किया है यह देखने के लिए कि क्या हम इसे जल्द ही संबोधित कर सकते हैं या नहीं।

+0

धन्यवाद फैबियो, उपलब्ध होने पर यह बहुत उपयोगी होगा। मुझे एपीआई कुंजी प्रबंधन के लिए पोर्टल समर्थन पसंद है; बहुत सारे कोड लिखने के बिना ऑथ सेट करना आसान बनाता है। लेकिन निश्चित रूप से प्रमाणीकरण को पहचानने में सक्षम होना चाहिए कि कौन प्रमाणित है, अन्यथा उपयोग के मामले काफी सीमित हैं! – Rory