Nginx - आगे HTTP AUTH - उपयोगकर्ता?


13

मुझे नग्नेक्स और जेनकिन्स (हडसन) से कुछ परेशानी है। मैं HTTP बेसिक ऑथेंटिकेशन के साथ जेनकिंस उदाहरण के लिए Nginx को रिवर्स प्रॉक्सी के रूप में उपयोग करने की कोशिश कर रहा हूं।

यह अब तक काम करता है, लेकिन मुझे नहीं पता है कि हेडर को प्रमाणीकरण उपयोगकर्ता नाम के साथ कैसे पारित किया जाए?

location / {
  auth_basic "Restricted";
  auth_basic_user_file /usr/share/nginx/.htpasswd;
  sendfile off;

  proxy_pass         http://192.168.178.102:8080;
  proxy_redirect     default;
  proxy_set_header   Host             $http_host;
  proxy_set_header   X-Real-IP        $remote_addr;
  proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
  proxy_set_header   X-Forwarded-User $http_authorization; 
  proxy_max_temp_file_size 0;

  #this is the maximum upload size
  client_max_body_size       10m;
  client_body_buffer_size    128k;

  proxy_connect_timeout      90;
  proxy_send_timeout         90;
  proxy_read_timeout         90;             
  proxy_buffer_size          4k;
  proxy_buffers              4 32k;
  proxy_busy_buffers_size    64k;
  proxy_temp_file_write_size 64k;

}


1
ध्यान दें कि आप "X-Forwared-User" में एक अतिरिक्त 'd' चाहते हैं।
पॉल

जवाबों:


16

इस निर्देश को अपने स्थान ब्लॉक में जोड़ने का प्रयास करें

proxy_set_header Authorization $http_authorization;
proxy_pass_header  Authorization;

यह शीर्ष लेख पास हो रहा है: उपयोगकर्ता नाम: बेसिक YXJuZTpraWxsZXI, http नाम का सही नाम नहीं (
opHASnoNAME

6
यह base64 एन्कोडेड स्ट्रिंग होना चाहिए en.wikipedia.org/wiki/Basic_access_authentication#cite_note-8 इसे डिकोड करने का प्रयास करें
आंद्रेई मिखाल्त्सोव

प्राधिकरण हेडर को बेस 64 एनकोडेड हेडर होना चाहिए, हां। लेकिन सवाल यह नहीं है। प्रश्न शीर्ष लेख में उपयोगकर्ता नाम पारित करने के बारे में है, न कि पूर्ण प्राधिकरण हेडर।
ओली

1
YXJuZTpraWxsZXIडिकोड arne:killer- अच्छा उदाहरण @opHASnoNAME :-)
एंडा फैरेल

pass_header और set_header ...? यह दो बार अधिक या कम एक ही प्रभाव नहीं है? दोनों को काम करना चाहिए, है ना?
phip1611

6

जेनकींस के साथ काम करने के लिए इसे प्राप्त करने के लिए रिवर्स प्रॉक्सी ऑथर प्लगइन:

proxy_set_header Authorization "";
proxy_set_header X-Forwarded-User $remote_user;

यदि आप Authorizationहेडर को रीसेट नहीं करते हैं , तो निगनेक्स डिफ़ॉल्ट रूप से अग्रेषित करेगा, और रिवर्स प्रॉक्सी ऑर्टिफिकेशन प्लगइन को सक्षम करते समय, जेनकिंस (जेट्टी) उपयोगकर्ता को फिर से प्रमाणित करने की कोशिश करेगा, और उस पर विफल हो जाएगा।

nginx संस्करण 1.12.1, जेनकींस 2.113।


धन्यवाद! यही वह है जिसकी तलाश में मैं हूं। बहुत सराहना की।
इरुतान ४०
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.