2016-07-26 37 views
8

एपीआई गेटवे से, मैंने पाइथन में लैम्ब्डा फ़ंक्शन का उपयोग करके अपने एपीआई के लिए custom authorizer बनाया। एपीआई गेटवे एक हेडर का उपयोग कर इनकमिंग ऑथ टोकन पर हाथ रखता है जिसे मैं कॉन्फ़िगर करता हूं (method.request.header.Authorization)। हालांकि मुझे अपने लैम्ब्डा फ़ंक्शन के अंदर मूल http अनुरोध के अन्य शीर्षकों की भी आवश्यकता है। मैं उन्हें कैसे एक्सेस करूं? मैंने अपने लैम्ब्डा फ़ंक्शन में event ऑब्जेक्ट इनपुट पर शीर्षलेख नहीं देखा।कस्टम प्राधिकरण में http शीर्षलेखों का उपयोग कैसे करें AWS lambda function

ध्यान दें कि यह How to access HTTP headers for request to AWS API Gateway using Lambda? का डुप्लिकेट नहीं है। सवाल कस्टम प्राधिकरण लैम्ब्डा समारोह के बारे में है। मुझे आने वाले http शीर्षलेख को प्राधिकरण lambda फ़ंक्शन में पास करने के लिए कोई कॉन्फ़िगरेशन विकल्प नहीं दिख रहा है।

AWS Documentation के अनुसार, एपीआई गेटवे नीचे इनपुट के साथ कस्टम प्राधिकरण को कॉल करता है। नीचे दिए गए आधार पर, मुझे लगता है कि मेरा पूछना संभव नहीं है। लेकिन यह जांचना चाहते हैं कि कोई कामकाज है या नहीं।

 

{ 
    "type":"TOKEN", 
    "authorizationToken":"", 
    "methodArn":"arn:aws:execute-api:<regionId>:<accountId>:<apiId>/<stage>/<method>/<resourcePath>" 
} 
+0

पर आपत्ति संभव नहीं। आपको एक से अधिक शीर्षलेख की आवश्यकता क्यों है? वर्कअराउंड: अपने एकीकरण के लैम्ब्डा फ़ंक्शन में प्रमाणीकरण/प्राधिकरण को स्वयं संभाल लें। – hellomichibye

उत्तर

1

दुर्भाग्य से इस समय यह संभव नहीं है लेकिन हम इसके लिए कस्टम प्राधिकरणों के कुछ अन्य सुधारों के साथ समर्थन जोड़ने की योजना बना रहे हैं। इस समय उपलब्ध कराने के लिए मेरे पास ईटीए नहीं है।

+0

वर्तमान में कुछ प्रकार के अनुरोध प्रमाणीकरण को संभालने का सबसे अच्छा तरीका है (जैसे एक हस्ताक्षर सत्यापित करना जिसके लिए अनुरोध हेडर, क्वेरी स्ट्रिंग और पेलोड से डेटा की आवश्यकता होगी, एडब्ल्यूएस वी 4 के समान) तो वास्तव में प्राप्त करने के भीतर हमारे स्वयं के सत्यापन को लागू करने के लिए लैम्ब्डा (या लैंपडास का सेट एपीआई गेटवे एंडपॉइंट्स में मैप किया गया है)? – Numbat

+2

मुझे इस सुविधा को अमेज़ॅन एपीआई गेटवे में जोड़ने की ज़रूरत है क्योंकि मेरे उपयोग के मामले में मुझे एक्स-एपीआई-कुंजी प्राप्त करने और टोकन प्राधिकरण के साथ सत्यापित करने के लिए http शीर्षलेख तक पहुंचने की आवश्यकता है। जैसे ही आप इन सुविधाओं को जोड़ते हैं, हमें बताएं। –

+2

एक साल से इस पर कोई अपडेट पारित हो गया है? –

0

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

समाधान के लिए, हम शीर्षक में और अधिक डेटा (जो इष्टतम नहीं है) शामिल करने के लिए समाधान के बारे में बात की है

अन्यथा वहाँ हमेशा लैम्ब्डा समारोह अपने आप में विशिष्ट प्राधिकरण करने की संभावना है, लेकिन उस मामले में , हम वास्तव में कस्टम एपीआई गेटवे प्राधिकरण के लिए कोई उपयोग नहीं है।

2

यह अब के बजाय एक Authoriser प्रकार के 'अनुरोध' का उपयोग कर टोकन

पूर्ण विवरण के द्वारा ही संभव है यहां हैं: http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html

मूल रूप से, सभी हेडर एक अनुरोध प्राधिकरण

के लिए घटना वस्तु में पारित कर रहे हैं

यानी हेडर घटना


    "headers": { 
     "X-wibble": "111", 
     "X-wobble": "222", 
     "x-amzn-ssl-client-hello": "*Deleted*", 
     "Via": "1.1 .cloudfront.net (CloudFront)", 
     "CloudFront-Is-Desktop-Viewer": "true", 
     "CloudFront-Is-SmartTV-Viewer": "false", 
     "CloudFront-Forwarded-Proto": "https", 
     "X-Forwarded-For": "*Deleted*", 
     "CloudFront-Viewer-Country": "GB", 
     "Accept": "*/*", 
     "User-Agent": "curl/7.55.1", 
     "X-Amzn-Trace-Id": "Root=*Deleted*", 
     "Host": "*Deleted*.execute-api.eu-west-1.amazonaws.com", 
     "X-Forwarded-Proto": "https", 
     "X-Amz-Cf-Id": "*Deleted*", 
     "CloudFront-Is-Tablet-Viewer": "false", 
     "X-Forwarded-Port": "443", 
     "CloudFront-Is-Mobile-Viewer": "false" 
    } 

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