加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

身份验证 – Jenkins/Nginx – Double提示基本身份验证,为什

发布时间:2020-12-13 21:14:12 所属栏目:Nginx 来源:网络整理
导读:下面是Jenkins的nginx配置文件.其中大部分完全按照我在文档中读到的那样. 配置文件: upstream app_server { server 127.0.0.1:8080 fail_timeout=0;}server { listen 80; listen [::]:80 default ipv6only=on; server_name sub.mydomain.net;location ^~ /j

下面是Jenkins的nginx配置文件.其中大部分完全按照我在文档中读到的那样.

配置文件:

upstream app_server {
    server 127.0.0.1:8080 fail_timeout=0;
}

server {
    listen 80;
    listen [::]:80 default ipv6only=on;
    server_name sub.mydomain.net;

location ^~ /jenkins/ {

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (!-f $request_filename) {
        proxy_pass http://app_server;
        break;
    }

    auth_basic "[....] Please confirm identity...";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

}

当导航到http://sub.mydomain.net/jenkins时,我会得到提示我的基本身份验证服务器说:[….]请确认识别….

这是正确的,但是一旦我输入正确的凭据,我就会再次获得基本身份验证,但这一次:服务器说:Jenkins.

第二个隐藏的basic_auth来自哪里?!这对我没有任何意义.

在第一个提示符上按CANCEL然后我正确地收到401授权所需的错误.

在第二个基本身份验证(“服务器说:jenkins”)上点击取消,我得到:

HTTP ERROR 401

Problem accessing /jenkins/. Reason:

Invalid password/token for user: _____
Powered by Jetty://

有谁知道可能会发生什么?

最佳答案
通过使用basic_auth搜索用作任何其他应用程序的反向代理的Nginx,找到了我的问题的解决方案.

解决方案是这里找到的答案:
https://serverfault.com/questions/511846/basic-auth-for-a-tomcat-app-jira-with-nginx-as-reverse-proxy

我的nginx配置中缺少的行是:

 # Don't forward auth to Tomcat
 proxy_set_header   Authorization "";

默认情况下,看起来在基本身份验证之后Nginx会另外将身份验证标头转发给Jenkins,这就是导致我的问题. Jenkins收到转发的auth标头,然后认为它也需要自己授权?!

如果我们将反向代理设置为不转发任何授权标头,如上所示,则一切正常. Nginx将提示basic_auth,并且在成功验证后,我们在转发到我们的反向代理时明确清除(重置?)auth标头.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读