2016-05-09 2 views
1

Я использую Varnish 4 в тестовой среде и хочу защитить доступ к контенту с помощью Basic Authentication.Varnish 4 Basic Authentication постоянно запрашивает имя пользователя и пароль

Что я хочу, так это то, что первый запрос вызывает приглашение для Basic Auth, а затем он больше не спрашивает, как пользователь ввел свое имя пользователя и пароль. Я установил правило с Varnish, чтобы проверить правильность Authroization и попросить пользователя предоставить его, если они этого не сделали.

Мои конечные пользователи жалуются на то, что они неоднократно оспариваются в отношении основных сведений об аутентификации в своем браузере, иногда вводя их 20 раз до того, как будет показана первая страница.

При использовании браузера Chrome это, похоже, не происходит, если у меня нет открытой панели инструментов разработчика, и у вас нет запросов на кеширование с открытой панелью инструментов разработчика. В разных версиях IE это происходит постоянно.

В моей VCL, основное правило аутентификации выглядит в разделе суб vcl_recv:

if (!req.http.Authorization ~ "Basic xxxxxxxxxxxxxxxxxx==" 
    # Don't require auth if IP on the authpass list. 
    && !client.ip ~ authpass 
    # Don't require auth if this is the live website. 
    && !req.http.Host == "www.mylivesite.com") { 
    return(synth(401, "Authentication required")); 
} 
unset req.http.Authorization; 

ответ

0

Я думаю, что вам не хватает этого в вашем vcl_synth:

sub vcl_synth { 
    if (resp.status == 401) { 
    set resp.status = 401; 
    set resp.http.WWW-Authenticate = "Basic"; 
    return(deliver); 
} 

Проверить detailed ответ на установление Обычная проверка подлинности в лаке.

Смежные вопросы