এনগিনেক্স - ফরোয়ার্ড এইচটিটিপি অথথ - ব্যবহারকারী?


13

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
নোট করুন আপনি সম্ভবত "এক্স-ফরওয়ার্ড-ইউজার" -এ একটি অতিরিক্ত 'ডি' চান।
পল

উত্তর:


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 এটা ডিকোডিং চেষ্টা
আন্দ্রেই Mikhaltsov

অনুমোদনের শিরোনাম অবশ্যই বেস 64 এনকোডড শিরোনাম, হ্যাঁ। তবে প্রশ্নটি কী তা নয়। প্রশ্নটি পুরো শিরোনামের শিরোনাম নয়, শিরোনামগুলিতে লেখক ব্যবহারকারীর নাম পাস করার বিষয়ে।
ওলি

1
YXJuZTpraWxsZXIথেকে decodes arne:killerচমৎকার উদাহরণ @opHASnoNAME :-) -
Enda Farrell

পাস_হেডার এবং সেট_হেডার ...? এটি কি দু'বার বেশি বা কম একই প্রভাব ফেলবে না? দুজনেরই কাজ করা উচিত, তাই না?
phip1611

6

জেনকিন্স বিপরীতে প্রক্সি প্রমাণীকরণ প্লাগইন দিয়ে কাজ করতে এটি পেতে:

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

যদি আপনি Authorizationশিরোনামটি পুনরায় সেট না করেন , এনজিনেক্স সেটিকে ডিফল্টরূপে ফরোয়ার্ড করবে এবং বিপরীত প্রক্সি প্রমাণ প্লাগইন সক্ষম করার সময়, জেনকিনস (জেটি) ব্যবহারকারীকে পুনরায় প্রমাণীকরণের চেষ্টা করবে এবং এতে ব্যর্থ হবে।

nginx সংস্করণ 1.12.1, জেনকিন্স 2.113।


ধন্যবাদ! আমি ঠিক এটিই খুঁজছিলাম। অনেক প্রশংসিত.
এরুতান 409
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.