2011-05-01 5 views
7

मैं एक कस्टम डोमेन पर एसएसएल सक्षम करने के लिए एक रिवर्स प्रॉक्सी का उपयोग कर रहा हूं। प्रॉक्सी सार्वजनिक पृष्ठों पर ठीक काम करता है, हालांकि जब उपयोगकर्ता login_required निर्देशिका तक पहुंचने का प्रयास करता है तो लॉगिन यूआरएल साइन-इन के बाद उन्हें मेरे ऐपस्पॉट डोमेन पर ले जाता है।Google ऐप इंजन: रिवर्स प्रॉक्सी + ओपनआईडी, उपयोगकर्ताओं को लॉगिन के बाद ऐपस्पॉट डोमेन पर रीडायरेक्ट किया जा रहा है

क्या उपयोगकर्ताओं को कस्टम डोमेन पर रखने का कोई तरीका है? समारोह अभी भी 'जारी रखें' पैरामीटर के रूप में appspot डोमेन के साथ एक LOGIN_URL देता है, जैसे -

class OpenIDLoginHandler(webapp.RequestHandler): 
    def get(self): 
     domain = self.request.get('domain') 
     continue_url = self.request.GET.get('continue') 

     if not continue_url: 
      continue_url = 'https://my_domain/login_required_directory/'  

     if domain: 
      self.redirect(users.create_login_url(dest_url=continue_url, 
       _auth_domain=None,federated_identity=domain)) 
     else:    
      login_url = users.create_login_url(dest_url=continue_url, 
       federated_identity='https://www.google.com/accounts/o8/id')   
      self.redirect(login_url) 

application = webapp.WSGIApplication(
        [          
         ('/_ah/login_required', OpenIDLoginHandler)], 
        debug=True)  

def main(): 
    run_wsgi_app(application) 

if __name__ == "__main__": 
    main() 

मैं users.create_login_url कॉल में गंतव्य यूआरएल अधिभावी की कोशिश की है:

यहाँ अपना लॉगिन हैंडलर है इस:

"https: // appspot_domain/_ah/login_redir ClaimID = https: & जारी रखने के //www.google.com/accounts/o8/id = https: // appspot_domain"

मैं बस की कोशिश की लौटा लॉगिन_यूआरएल और फिर से लिखना मेरे कस्टम डोमेन के साथ 'जारी रखें' पैरामीटर रखकर, लेकिन इसके परिणामस्वरूप 404 त्रुटि हुई।

किसी भी विचार?

अग्रिम धन्यवाद!

+2

आप ऐपस्पॉट डोमेन पर एक पृष्ठ पर जारी यूआरएल सेट कर सकते हैं जो अंतिम रीडायरेक्ट को प्रॉक्सी डोमेन पर वापस भेजता है। हालांकि, कुकीज़ के साथ आपको कोई समस्या हो सकती है। आपकी ऑथ कुकी हमेशा appspot.com पर सेट होने जा रही है; क्लाइंट कुकी को आपके प्रॉक्सी डोमेन पर वापस नहीं करेगा। –

+0

@ ड्रू, दुर्भाग्यवश आप ऑथ कुकी के बारे में सही हैं। प्रॉक्सी डोमेन का उपयोग करते समय उपयोगकर्ता सत्र पहचाना नहीं जाता है, इसलिए मुझे डर है कि लॉगिन के बाद एक रीडायरेक्ट एक अनंत रीडायरेक्ट लूप का कारण बन जाएगा। ऐसा लगता है कि मैं सीधे प्रॉक्सी सर्वर से लॉगिन रीडायरेक्ट को संभालने के द्वारा इस मुद्दे को प्राप्त कर सकता हूं लेकिन मुझे '/ _ah/login_redir' पर कोई दस्तावेज नहीं मिल रहा है जो मुझे इसकी कार्यक्षमता को डुप्लिकेट करने या पूरी तरह समझने में मदद करेगा। –

उत्तर

1

मुझे यकीन नहीं है कि यह आपके लिए एक विकल्प है, लेकिन ऐप इंजन की अगली रिलीज का दावा है कि कस्टम डोमेन (http://code.google.com/appengine/business/) पर एसएसएल के लिए समर्थन है। यदि आपका आवेदन थोड़ी देर के लिए उत्पादन में नहीं होगा, तो यह आधिकारिक तौर पर समर्थन जोड़ने तक प्रतीक्षा करना आसान होगा। वे ~ 3 महीने के रिलीज चक्र (http://code.google.com/appengine/docs/revision_history.html) पर दिखाई देते हैं

+1

यह मेरा पसंदीदा विकल्प है और मैं धैर्यपूर्वक रिलीज का इंतजार कर रहा हूं। आखिरकार, रिवर्स प्रॉक्सी के प्रबंधन की अतिरिक्त जटिलता से निपटना कौन चाहता है, विफलता का एक और संभावित बिंदु उल्लेख नहीं करना? –

0

आप इसे अपने आप को वाइल्डकार्ड हैंडलर के साथ app.yaml में संभाल सकते हैं जो सभी को रीडायरेक्ट करता है एसएसएल के लिए अनुरोध यदि आप इस तरह के सभी अनुरोधों को संभाल नहीं करना चाहते हैं, तो आप वाइल्डकार्ड को प्रतिबंधित करने के लिए रेगेक्स का उपयोग कर सकते हैं।

app.yaml:

application: yourthing 
version: 1 
runtime: python 
api_version: 1 

handlers: 

- url: .* 
    script: redirect_to_ssl.py 

यह भी किसी भी गैर https अनुरोध करता है कि जो यूआरएल टाइप उपयोगकर्ताओं से में आ सकते हैं साफ।

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