Điểm:0

Sự cố lạ khi chuyển tiếp tiêu đề xác thực từ apache sang nginx - Không tìm thấy tiêu đề trống (se_custid/ein) trong yêu cầu tiếp tục

lá cờ ng

Khi thiết lập được mô tả bên dưới, Có vẻ như apache không thể chuyển tiếp các tiêu đề bắt buộc tới nginx hoặc nginx trong khi chuyển tiếp yêu cầu ban đầu không chuyển tiếp URL đầy đủ mà chỉ là đường dẫn tương đối.

Ý tưởng ở đây là đảm bảo yêu cầu đối với ứng dụng được lưu trữ trên nginx được xác thực bởi Azure ADFS. để điều này hoạt động, apache đang đóng vai trò proxy cho mọi yêu cầu xác thực. Apache đang sử dụng mod_auth_openidc và chuyển tiếp yêu cầu chưa được xác thực tới Azure ADFS Xem bên dưới:

Nginx -> Apache:6000-> Azure ADFS -> Apache:6000 -> Nginx

Mặc dù người dùng được Azure ADFS xác thực chính xác, được chuyển hướng trở lại Nginx:80 nhưng trình duyệt (do ứng dụng) hiển thị lỗi lạ "Không tìm thấy tiêu đề trống (se_custid/ein) trong yêu cầu tiếp tục"

Hai lỗi nữa trong nhật ký apache là:

[auth_openidc:error] [pid 26485] [máy khách SERVERIP:35888] oidc_clean_expired_state_cookies: trạng thái đã hết hạn

Không có lỗi cụ thể đăng nhập nginx.

Vì vậy, câu hỏi ở đây là làm thế nào để chuyển tiếp các tiêu đề chính xác từ apache sang nginx để người dùng sau khi xác thực có thể sử dụng ứng dụng một cách chính xác hoặc cấu hình bên dưới có đủ hoặc cần nhiều cài đặt hơn không?

phần cấu hình apache

<Location /ourapp>
   AuthType openid-connect
   Require valid-user
</Location>

LoadModule auth_openidc_module modules/mod_auth_openidc.so
OIDCProviderMetadataURL https://login.microsoftonline.com/XXXX_XXX-xxx-XXXXXX/v2.0/.well-known/openid-configuration
OIDCClientID XXXXXXXXXXXXXXX
OIDCClientSecret XXXXXXXXXX
OIDCRedirectURI https://forever-authcheck.tire1network.com:6000/ourapp 
OIDCCryptoPassphrase XXXXXXXXXXXX
OIDCScope "openid email profile"
#OIDCRemoteUserClaim email
OIDCProviderAuthorizationEndpoint https://login.microsoftonline.com/XXXX_XXX-xxx-XXXXXX/oauth2/v2.0/authorize
OIDCProviderTokenEndpoint https://login.microsoftonline.com/XXXX_XXX-xxx-XXXXXX/oauth2/v2.0/token
#OIDCPKCEMethod S256

OIDCPassIDTokenAs claims
OIDCCookiePath /
OIDCCookieDomain forever-authcheck.tire1network.com
OIDCCookie APP-OIDC-SESSION
OIDCCookieHTTPOnly On
OIDCSessionInactivityTimeout 600
OIDCSessionMaxDuration 36006

<VirtualHost *:6000>

    ProxyPreserveHost On
    ErrorLog  /var/log/httpd/voidcerror.log
    LogLevel debug
    ServerName forever-authcheck.tire1network.com

    Header always set Access-Control-Allow-Origin "*"
    Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
    Header always set Access-Control-Max-Age "1000"
    Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
    
    ProxyPreserveHost On
    Header set ein %{OIDC_CLAIM_EIN}e
    ProxyPass /ourapp/ forever-authcheck.tire1network.com/in/
    ProxyPassReverse /ourapp/ forever-authcheck.tire1network.com/in/
    ProxyPreserveHost On
    ServerName  forever-authcheck.tire1network.com
    
    SSLEngine on
    SSLCertificateFile "/etc/pki/outcert/Certificate.pem"
    SSLCertificateKeyFile "/etc/pki/outcert/CertificateKey.pem"
    SSLCertificateChainFile "/etc/pki/outcert/CertificateChain.p12"
</VirtualHost>



phần cấu hình nginx

nginx:80


vị trí /ourapp/ {
  proxy_ssl_server_name bật;
  proxy_pass https://forever-authcheck.tire1network.com:6000;
  hành trình proxy_set_header "trực tiếp";
  proxy_set_header Máy chủ lưu trữ $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $remote_addr;
  proxy_set_header X-Forwarded-Host $remote_addr;
  proxy_redirect mặc định;
  

  proxy_ssl_certificate /etc/pki/outcert/Certificate.pem;
  proxy_ssl_certificate_key /etc/pki/outcert/CertificateKey.pem;
  tắt proxy_ssl_verify;
}









Điểm:0
lá cờ ng

Được rồi, đã hiểu một chút về sự hiểu biết, đã triển khai một thiết lập tạm thời khác để hiểu thêm nhật ký đào.

Đây là hiểu biết hiện tại Yêu cầu người dùng -> Nginx:443/ourapp -> Apache:6000-> Azure ADFS -> Azure Trả lại URL cho trình duyệt -> Trình duyệt Yêu cầu URL được trả về

Bằng cách xem kỹ nhật ký, rõ ràng điều gì đang xảy ra, Hơn nữa cái này đã giúp nó hiểu nó hơn

Sau khi tinh chỉnh ngnix để gửi đúng tiêu đề với cổng và đúng Máy chủ,

proxy_set_header X-Forwarded-Port "443";

proxy_set_header X-Forwarded-Host "forever-authcheck.tire1network.com";

dẫn đến cài đặt cookie phù hợp cho original_url, bởi apache và mod_auth_openidc.

Bây giờ chuyển hướng hoạt động chính xác, Khiếu nại đang đến NGINX và Ứng dụng của chúng tôi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.