2012-10-27 13 views
5

Chcę dodać podstawowe uwierzytelnianie dla odwrotnego proxy serwera Apache działającego na serwerze Ubuntu 12.04.1.Problem z podstawowym uwierzytelnianiem Apache z odwrotnym proxy

Aplikacja internetowa to Jenkins, która działa na kontenerze Java EE.

dodałem poniżej konfiguracjach w httpd.conf,

ProxyPass   /jenkins/ http://localhost:8080/jenkins/¬ 
ProxyPassReverse /jenkins/ http://localhost:8080/jenkins/¬ 
ProxyRequests  Off¬ 
ProxyPreserveHost On¬ 
¬ 
<Proxy http://localhost:8080/jenkins*>¬ 
    Order deny,allow¬ 
    Deny from all¬ 
▸ AllowOverride AuthConfig¬ 
▸ AuthType Basic¬ 
    AuthName "jenkins"¬ 
▸ AuthBasicProvider file¬ 
    AuthUserFile /etc/apache2/passfile¬ 
▸ Require valid-user¬ 
▸ Satisfy any¬ 
</Proxy> 

Kiedy użyłem niewłaściwego hasła lub nie istnieje nazwę użytkownika do uwierzytelniania, można znaleźć poniżej komunikatów w error.log z apache,

[Sob 27 października 17:51:59 2012] [błąd] [klient 222.128.175.95] kane użytkownik: błąd uwierzytelnienia dla "/ /" Jenkins: Hasło Niezgodność [Sob 27 października 17:52:04 2012] [Błąd] [klient 222.128.175.95] Aladdin użytkownik nie znaleziono: /Jenkins/

Nie ma żadnych wiadomości będą rejestrowane przy użyciu odpowiedniego użytkownika i hasło w passfile. Mimo że wprowadzam właściwego użytkownika i hasło w przeglądarce, okno dialogowe uwierzytelniania ponownie wyświetli monit. również znajduje się poniżej wyjścia w access.log apache,

222.128.175.95 - Kane [27/październik/2012: 17: 39: 54 +0800] "GET/Jenkins/HTTP/1.1" 401 794 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537,4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537,4"

Czy ktoś wie jak zrobić działa? Dzięki.

Odpowiedz

4

Czy masz włączone uwierzytelnianie Jenkins, jak również? Zobacz ten link: https://wiki.jenkins-ci.org/display/JENKINS/Apache+frontend+for+security, aby uzyskać instrukcje dotyczące konfiguracji.

Zwróćcie uwagę na linię, która mówi, że nie można włączyć zabezpieczeń w Jenkins i Apache jednocześnie, ponieważ te dwa będą powodować konflikt, powodując nieskończony monit, który widzisz. Niestety musisz wybrać jedną lub drugą.

Zobacz także link do bardziej ogólnej dyskusji na temat konfiguracji Apache + Jenkins: https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache

+0

Dziękujemy za udostępnienie linku. Mój jenkins rzeczywiście używa OpenId również do uwierzytelniania. Ponieważ ograniczenie Jenkins CLI muszę wykonać pewną pracę, może ją przeczytać anonimowy użytkownik. Dlatego chcę używać podstawowego uwierzytelniania dla moich jenkinsów, które są za serwerem Apache. Wygląda na to, że jenkins ma konflikt między uwierzytelnieniem a podstawowym uwierzytelnianiem Apache. W każdym razie to daje mi wytłumaczenie. – Kane

+0

Wiem, że ten post ma 3 lata, ale znalazłem go, szukając rozwiązania. Jeśli chcesz, aby Jenkins nie pokazywał nieskończonych podstawowych monitów autoryzacji, po prostu dodaj 'RequestHeader unset Authorization' w twojej konfiguracji Apache. Zobacz pełne rozwiązanie tutaj: http://jenkins-ci.361315.n4.nabble.com/SOLVED-Apache-SSL-Proxy-Jenkins-tp4700182p4700212.html – Alex

1

Spróbuj config

ProxyPass   /jenkins/ http://localhost:8080/jenkins/ 
ProxyPassReverse /jenkins/ http://localhost:8080/jenkins/ 
ProxyRequests  Off 
ProxyPreserveHost On 

<Proxy http://localhost:8080/jenkins*> 
    AllowOverride None 
    Order allow,deny 
    allow from all 
    AuthName   "jenkins" 
    AuthBasicProvider file 
    AuthType   basic 
    AuthUserFile  /etc/apache2/passfile 
    <Limit GET POST> 
     require valid-user  
    </Limit> 
    Satisfy all 
</Proxy> 
+0

Nie ma potrzeby przeprowadzania bardziej w przeglądarce uwierzytelniania. Myślę, że jest to spowodowane przez 'Zezwalaj na zamówienia, odmawiaj zezwalaj od wszystkich', co pozwala na dostęp. – Kane

+0

odmówić wszystkim: blokuje cały dostęp, w tym uwierzytelnianie, możesz zobaczyć ten link http://httpd.apache.org/docs/2.0/mod/mod_access.html – developer

+0

Możesz ustawić zakres adresów IP zamiast "wszystkich", aby być w stanie dokonać uwierzytelnienia, przykład: Zezwalaj od 10.1.0.0/16 – developer

Powiązane problemy