Soru kimliği doğrulanmış kullanıcıyı apache altına al


Mod_auth_sspi ve mod_headers ile Apache 2.2'yi Windows'ta kullanma. Mevcut kimliği doğrulanmış kullanıcıyı X-Remote-User başlığında proxy hedefine iletmeye çalışıyorum.

Bunun basit olmasını bekliyorum, ama şimdi bir saatliğine Apache'yi boğuştum ve gizli sosları dokümantasyonda veya google'da bulamıyorum.

Benim yapılandırmam şu şekildedir. Active Directory ile kullanıcının kimliğini doğru bir şekilde doğrular ve sonra isteği sunucunun arkasında oturmasını sağlar. Ancak, X-Remote-User başlığı eklenmez. REMOTE_USER ortam değişkeni mevcut değil gibi görünüyor. AUTH_USER de değil.

Kimliği doğrulanmış kullanıcı adının bir yerde kullanılabildiğini biliyorum, ancak nasıl alabilirim?

ProxyRequests off
ProxyPass /clsoap/ http://127.0.0.1:12001/clsoap/

<Location /clsoap/>
    ProxyPassReverse /clsoap/

    AuthName "ADTest"
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    SSPIDomain primary.example.com
    SSPIUsernameCase lower
    SSPIOfferBasic Off
    Require valid-user

    RequestHeader set X-Remote-User "%{REMOTE_USER}e" env=REMOTE_USER
    RequestHeader set X-Auth-User "%{AUTH_USER}e" env=AUTH_USER
</Location>

5
2017-11-30 08:35


Menşei




Cevaplar:


Yuppi. Başka bir google oturumu daha sonra farklı rastgele anahtar kelimeler deniyor ve bunu buldum:

http://www.ruby-forum.com/topic/83067

http://old.nabble.com/Forcing-a-proxied-host-to-generate-REMOTE_USER-to2911573.html#a2914465

Bu şimdi çalışır:

ProxyRequests off
ProxyPass /clsoap/ http://127.0.0.1:12001/clsoap/

<Location /clsoap/>
    ProxyPassReverse /clsoap/

    AuthName "ADTest"
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    SSPIDomain primary.example.com
    SSPIUsernameCase lower
    SSPIOfferBasic Off
    Require valid-user

    RewriteEngine On
    RewriteCond %{LA-U:REMOTE_USER} (.+)
    RewriteRule . - [E=RU:%1]
    RequestHeader set X-Remote-User "%{RU}e" env=RU
</Location>

6
2017-11-30 09:01



Benim için bu yeniden yazma kuralı, açıklanan yuvalama problemleriyle karşılaştı. fossplanet.com/f16/.... RewriteRule. - [E = RU:% 1, NS] düzeltildi. - lkraav
Bu yeniden yazım kuralını kullanarak @brofield, SamAccountName alacaksınız. Ama nasıl UserPrincipalName almak için? Teşekkürler! - Eldar


Bunun eski bir yazı olduğunu biliyorum, ancak kullanıcılar bunu hala vurduktan sonra, ssl ortamında "% {VAR}" ve ssl olmayan ortamın% {VAR} değişkenlerinin bulunduğu bir dünya farkı olduğunu ekleyeceğimi düşündüm. e

Pubcookie'nin uzak kullanıcıyı yalnızca aşağıdakiler aracılığıyla iletebileceğim güvenli bir ortam değişkeni olarak belirlediğini gördüm:

    RequestHeader set X-REMOTE-USER %{REMOTE_USER}s

Not: e içinde değil biter!

Şimdi bu, diğer sunuculara istek ilettiğinizde veya http kullanıyorsa, kullanıcı adı bilgilerini bilgisayar korsanlarına sızdıran potansiyel bir güvenlik deliği olabilir. Ben sadece localhost'a şahsen iletiyorum, bu benim için bir sorun değil.


2
2017-09-02 21:05



Denediğim çok fazla seçenek için tek çözüm benim için çok teşekkürler! AIX LPAR'da, HTTPS isteklerini Tomcat'e ileten ters proxy olarak (AD'ye Kerberos ile birlikte) httpd var. - mikiqex