An unsupported mechanism was requested unknown error

I want to use Kerberos and Apache 2 on linux with mod_auth_kerb. I added .htaccess to my project with following: #SSLRequireSSL AuthType Kerberos AuthName "Kerberos Login" KrbMethodNegotiate On

I want to use Kerberos and Apache 2 on linux with mod_auth_kerb.

I added .htaccess to my project with following:

#SSLRequireSSL
AuthType Kerberos
AuthName "Kerberos Login"
KrbMethodNegotiate On
KrbMethodK5Passwd Off
KrbAuthRealms DOMAIN.COM
Krb5KeyTab /etc/httpd/httpd.keytab
KrbLocalUserMapping On
require valid-user

When I tried to test my single sign on on IE or Firefox I get the following error in apache log:

[Thu Jan 19 21:03:27 2012] [error] [client 10.65.0.1] gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)

I don’t know what is it and what I should do to make it work.

My aim is to get REMOTE_USER to be filled by AD user name. But now I can’t do anything because of this error…

asked Jan 19, 2012 at 17:25

petRUShka's user avatar

In a simple setup, using mod_auth_gssapi and FreeIPA as the krb5 server and to generate keytabs, I found out that adding the following next to the AuthType command addressed the issue.

BrowserMatch Windows gssapi-no-negotiate

Based on the answer from andsens, it seems indeed this is happening on Windows clients that try to use NTLM. GssapiAllowedMech krb5 and GssapiBasicAuthMech krb5 don’t give a successful outcome to the negotiation, so the only solution seems to be to disable the negotiation. I cannot guarantee this is accurate, though, but it worked for me.

The corresponding documentation is here

answered Feb 18, 2018 at 18:39

user457106's user avatar

I have discovered another reason for this error:
Windows tries to authenticate with NTLM. Actually that is the root of the problem.

I don’t understand how recreating the keytab helped, the error would then be something along the lines of «Key table entry not found».
Windows tries to authenticate via NTLM when it cannot acquire a ticket from the KDC.
For me, the reason for that was that my server was not located within the same realm.
The domain was ad.domain.com, but my server was located at something.domain.com.
I am sure you can allow this somehow as well, but the easy fix is simply to change the hostname pointing to the server (and then creating a new keytab for that domain).

answered Jun 19, 2012 at 9:40

andsens's user avatar

andsensandsens

3614 silver badges10 bronze badges

There was problem with principals. I recreated /etc/httpd/httpd.keytab and added HTTP principial correctly and all works fine!

answered Jan 19, 2012 at 18:17

petRUShka's user avatar

petRUShkapetRUShka

2931 gold badge5 silver badges16 bronze badges

1

Here is a step that may help You to debug the error above.

Today I was setting up SSO on a Drupal page against MS AD. Something went wrong and I found the following message in site’s error_log:

gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)

Let’s modify a little bit apache’s config, and add this to appropriate place (global or vhost level):

 LogLevel debug

Restart apache and check the log again:

kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
Acquiring creds for HTTP/intranet.kesz.hu@KESZ.HU
Verifying client data using KRB5 GSS-API
Client didn't delegate us their credential
Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration.
GSS-API major_status:00010000, minor_status:00000000
gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)

So the real problem was: Warning: received token seems to be NTLM, which isn’t supported by the Kerberos module. That is much more informative than the unknown error we had before!

Dont forget to set back LogLevel after You finished because the log file fast becomes really large…

A user of ours has an issue where he cannot login using his Safari browser.

He receives the message that authentication failed, while the server logs:

gss_accept_sec_context() failed: [An unsupported mechanism was requested (Unknown error)]

This happens with Safari 8.0.3 on Mac OS X 10.10.2 and iOS 8.2 as well:

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/600.3.18 (KHTML, like Gecko) Version/8.0.3 Safari/600.3.18"
"Mozilla/5.0 (iPhone; CPU iPhone OS 8_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12D508 Safari/600.1.4"

Our config is:

                        AuthType GSSAPI

                        GssapiCredStore keytab:/etc/apache2/http.keytab
                        GssapiCredStore ccache:MEMORY:user_ccache

                        GssapiBasicAuth On

                        GssapiConnectionBound On
                        Header set Persistent-Auth "true"

                        GssapiUseSessions On
                        Session On
                        SessionCookieName gssapi_session path=/;httponly;secure;

The same issue happens with mod-auth-kerb-5.4 (5.4-2.2 on Debian 8 «Jessie»), so this is probably not a bug in mod-auth-gssapi, but a misconfiguration. To fix it, I need your support.

P.S: Other browsers, like Chrome and Firefox on the same operating system (Mac OS X) are unaffected. These browsers are also known to be not affected on Linux (various distributions). I have not tested with IE or on Windows so far.

The service name is a CNAME for the server hostname. That hostname then resolves to an A record, which has a proper PTR reverse record setup.

В прошлой заметке был рассмотрен пример простейшего ограничения доступа к веб-серверу Apache с применением незащищённой Basic-аутентификации и использованием учётных данных из файла. Разумеется такой режим аутентификации нельзя считать безопасным и поэтому в данной заметке мы рассмотрим пример настройки Kerberos-аутентификации и авторизации на веб-сервере Apache c помощью службы SSSD (System Security Services Daemon).

Ранее уже рассматривался пример подобной настройки веб-сервера Apache, однако в том случае для поддержки Kerberos-аутентификации в систему устанавливался пакет krb5-workstation, а для авторизации использовался функционал интеграции oVirt с Active Directory. В этой заметке мы пойдём по несколько иному пути, так как для аутентификации пользователей в домене AD будем использовать модуль Apache mod_auth_gssapi, а для авторизации модуль — mod_authnz_pam, который будет использоваться в связке с SSSD. То есть получать доступ к веб-серверу смогут все те доменные пользователи, что уже имеют доступ на подключение к самому серверу. Такая конфигурация может быть проста в настройке и полезна в тех случаях, когда некоторому кругу администраторов Linux-сервера нужно предоставить возможность прозрачного подключения (Single sign-on) к веб-сайту того или иного сервиса, работающего на этом сервере, как в ранее рассмотренном случае с веб-консолью QUADStor.

Подключаем к веб-серверу модуль mod_authnz_pam

Посмотрим информацию о модуле mod_authnz_pam, который доступен нам в репозиториях CentOS Linux 7.2:

# yum info mod_authnz_pam

...
Available Packages
Name        : mod_authnz_pam
Arch        : x86_64
Version     : 0.9.3
Release     : 5.el7_2
Size        : 14 k
Repo        : updates/7/x86_64
Summary     : PAM authorization checker and PAM Basic Authentication provider
URL         : http://www.adelton.com/apache/mod_authnz_pam/
License     : ASL 2.0
Description : mod_authnz_pam is a PAM authorization module, supplementing
            : authentication done by other modules, for example mod_auth_kerb; it
            : can also be used as full Basic Authentication provider which runs the
            : [login, password] authentication through the PAM stack.

Как видим из описания, этот модуль позволит нам использовать PAM-авторизацию и PAM-аутентификацию (только Basic). В рамках нашей задачи интересна возможность именно PAM авторизации, хотя и пример настройки Basic-аутентификации мы рассмотрим тоже.

Итак, установим в систему модуль:

# yum install mod_authnz_pam

Так как настройка производиться на CentOS 7.2 с включённым SELinux, то нам потребуется разрешить взаимодействие веб-сервера Apache с модулем:

# setsebool -P allow_httpd_mod_auth_pam 1

Откроем на редактирование файл с директивой загрузки модуля:

# nano /etc/httpd/conf.modules.d/55-authnz_pam.conf

и раскомментируем в нём единственную строку, чтобы разрешить автоматическую загрузку нужной библиотеки в процессе запуска веб-сервера:

LoadModule authnz_pam_module modules/mod_authnz_pam.so

Перезапустим службу веб-сервера и убедимся в том, что модуль загружен:

# systemctl restart httpd
# httpd -M | grep pam

authnz_pam_module (shared)
Создаём службу PAM

Создадим в каталоге /etc/pam.d/ файл описания собственной службы PAM, которая для процедур аутентификации и авторизации будет вызывать библиотеку SSSD (имя файла используем то, которое нам удобно):

# nano /etc/pam.d/httpd-quadstor

Наполним файл содержимым (первая строка определяет вызов библиотеки SSSD для аутентификации, вторая строка – для авторизации):

auth    required   pam_sss.so
account required   pam_sss.so
Apache c Basic-аутентификацией и PAM авторизацией

Отредактируем конфигурационный файл веб-сервера Apache (по умолчанию /etc/httpd/conf/httpd.conf) и отредактируем в нём секцию, где описан доступ к нужному нам пути. В нашем примере настраивается ограничение доступа к каталогу с исполняемыми файлами веб-консоли QUADStor Storage Virtualization и соответствующая секция конфигурационного файла веб-сервера примет следующий вид:

<Directory "/var/www/cgi-bin">
 AuthType Basic
 AuthName "QUADStor Private Area"
 AuthBasicProvider PAM
 AuthPAMService httpd-quadstor
 Require valid-user
</Directory>

Здесь задана Basic-аутентификация через провайдер PAM с именем ранее созданной нами PAM службы httpd-quadstor. После внесённых изменений перезапустим службу веб-сервера:

# systemctl restart httpd

Теперь попытаемся с клиентского компьютера получить доступ к веб-консоли QUADStor и увидим соответствующий запрос на ввод учётных данных. Здесь введём учётные данные доменного пользователя, который имеет право на вход на наш Linux-сервер согласно настроенных ранее правил в конфигурации SSSD. 

В момент отправки введённых учётных данных в логе безопасности на нашем Linux-сервере мы сможем отследить результат попытки аутентификации (в нашем примере он успешный):

# tail -f /var/log/secure
...
Oct 24 13:54:52 KOM-AD01-FS03 httpd: pam_sss(httpd-quadstor:auth): authentication success; logname= uid=48 euid=48 tty= ruser= rhost=10.9.1.100 user=petya

Итак, Basic-аутентификация в паре с PAM авторизацией работает, и теперь разрешённые доменные пользователи уже могут использовать привычные им учётные данные для получения доступа к веб-ресурсу. Однако, повторюсь, что с точки зрения информационной безопасности, использовать такой режим аутентификации неправильно, и поэтому мы перейдём к настройке Kerberos-аутентификации.

Apache c Kerberos-аутентификацией и PAM авторизацией

Для работы Kerberos аутентификации в домене AD можно создать отдельную сервисную учётную запись, для которой в дальнейшем зарегистрировать servicePrincipalName (SPN) веб-сервера и сгенерировать keytab-файл, содержащий данную SPN-запись. Повторяться не буду, так как эта процедура пошагово рассмотрена в одной из прошлых заметок (см. пункт «Создание в домене AD сервисной учётной записи» и «Создание keytab-файла для сервисной учётной записи»). Предполагая, что необходимый keytab-файл у нас уже есть, размещаем его в доступном для службы веб-сервера месте и ограничиваем к нему доступ:

# chown apache /etc/httpd/s-FS03-HTTP-Krb.keytab
# chmod 400 /etc/httpd/s-FS03-HTTP-Krb.keytab

Устанавливаем модули необходимые веб-серверу для поддержки Kerberos-аутентификации средствами GSSAPI:

# yum install mod_session mod_auth_gssapi

И меняем настроенную ранее на Basic-аутентификацию секцию конфигурационного файла веб-сервера /etc/httpd/conf/httpd.conf следующим образом:

<Directory "/var/www/cgi-bin">
    AuthType GSSAPI
    AuthName "QUADStor Private Area"
    #GssapiBasicAuth On
    GssapiCredStore keytab:/etc/httpd/s-FS03-HTTP-Krb.keytab
    GssapiUseSessions On
    Session On
    SessionCookieName quadstor_web_gssapi_session path=/private;httponly;secure;
    Require pam-account httpd-quadstor
</Directory>

Как видно здесь уже используется аутентификация GSSAPI c ранее приготовленным keytab-файлом и вызовом ранее созданной PAM службы httpd-quadstor для авторизации пользователей. Обратите внимание на то, что параметр GssapiBasicAuth закомментирован, так как его включение меняет поведение веб-сервера таким образом, что при попытке неудачной прозрачной Kerberos-аутентификации пользователю будет показано окно с запросом на ввод учётных данных. Из некоторых соображений безопасности можно оставить этот параметр в значении по умолчанию, чтобы пользователю не выводилось никаких запросов после неудачной аутентификации.

Опять же, после внесённых изменений перезапустим службу веб-сервера:

# systemctl restart httpd

Теперь попытаемся с клиентского компьютера получить доступ к веб-консоли QUADStor и процедура аутентификации и авторизации должна пройти для пользователя прозрачно без каких либо запросов на ввод учётных данных.

Защита соединений с веб-сервером с помощью SSL-сертификата

В случае если вы решите использовать PAM авторизацию с Basic-аутентификацией, то в целях обеспечения нормального уровня безопасности HTTP-соединений клиентов с веб-сервером, нужно будет включить в конфигурации веб-сервера поддержку SSL. И даже если вы решите использовать Kerberos-аутентификацию, которая имеет свои собственные механизмы защиты, всё равно более правильным будет дополнительное усиление защиты HTTP-соединений с помощью SSL.

Для этого нам потребуется сделать пару несложных вещей – установить модуль веб-сервера для поддержки SSL (mod_ssl) и сгенерировать SSL-сертификат веб-сервера, который в последствии в паре с закрытым ключом от этого сертификата нужно будет привязать к конфигурации веб-сервера.

Устанавливаем модуль веб-сервера:

# yum install mod_ssl

По поводу генерации закрытого ключа и сертификата веб-сервера я повторяться не буду, так как подобная процедура рассматривалась ранее, например в заметке Установка сертификата от Windows Server CA на веб-сервер Apache. Предполагая, что у нас уже есть на руках готовые файлы ключа и сертификата в формате PEM размещаем их на нашем Linux-сервере в каталогах /etc/pki/tls/private/ и /etc/pki/tls/certs/ соответственно.

Чтобы привязать файлы ключа и сертификата к конфигурации веб-сервера, отредактируем конфигурационный файл, который появился в системе после установки модуля mod_ssl

# nano /etc/httpd/conf.d/ssl.conf

В этом файле, как минимум, нам нужно изменить два параметра, указав соответствующие файлы сертификата и его ключа: 

...
SSLCertificateFile "/etc/pki/tls/certs/FS03-HTTPS.pem"
SSLCertificateKeyFile "/etc/pki/tls/private/FS03-HTTPS.key"
...

Дополнительно в основной конфигурационный файл веб-сервера /etc/httpd/conf/httpd.conf можно внести директиву обязательного редиректа всех клиентских соединений на HTTPS, например, добавив секцию описания виртуального хоста:

...
<VirtualHost *:80>
   Redirect permanent "/" "https://kom-ad01-fs03.ad.holding.com/"
</VirtualHost>
...

В качестве последнего штриха можно внести дополнительные параметры в секцию описывающую доступ к каталогу веб-сервера, включив обязательное использование SSL, например:

<Directory "/var/www/cgi-bin">
    SSLRequireSSL
    AuthType GSSAPI
    AuthName "QUADStor Private Area"
    #GssapiBasicAuth On
    GssapiSSLonly On
    GssapiCredStore keytab:/etc/httpd/s-FS03-HTTP-Krb.keytab
    GssapiUseSessions On
    Session On
    SessionCookieName quadstor_web_gssapi_session path=/private;httponly;secure;
    Require pam-account httpd-quadstor
</Directory>

После всех проделанных изменений перезапустим службу веб-сервера:

# systemctl restart httpd

Теперь наш веб-сайт Apache имеет не только возможность безопасной и удобной аутентификации и авторизации доменных пользователей AD, но и имеет защиту всех HTTP-соединений.

Дополнительные источники информации:

  • GitHub — GSSAPI Negotiate module for Apache
  • Jan Pazdziora  — Apache module mod_authnz_pam
  • FreeIPA — Web App Authentication

Issue

  • LDAP and Kerberos have been configured in RHV for Single Sign On according to the documentation.
  • Authentication fails with an error like this:
GSS ERROR In Negotiate Auth: gss_accept_sec_context() failed: [An unsupported mechanism was requested (Unknown error)]

Environment

  • Red Hat Virtualization (RHV) 4.4
  • Red Hat Virtualization Manager (RHV-M) 4.4
  • Microsoft Active Directory backend
  • Authentication provider using Kerberos and LDAP

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

 

Подключение осуществляется через веб-браузер, настройка — согласно статье.

После попытки авторизации выдается ошибка вида: «Unauthorized».

Диагностика

  • Проверить в лог-файле /var/log/apache2/error.log наличие сообщения вида:

    [auth_kerb:error] [pid 17583] [client 10.0.89.15:65282] gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)

    CODE

    где 10.0.89.15 — IP-адрес АРМ, с которого выполняется подключение. 

  • Схема инфраструктуры и источник попыток авторизации на front-end кластера (недоменные АРМ с выключенной авторизацией по логину и паролю). 

    Параметры режима авторизации содержатся в файлах:

    • /etc/apache2/sites-available/000-default.conf (ПК СВ «Брест» 2.6, no RAFT);
    • /etc/apache2/sites-available/001-default.conf (ПК СВ «Брест» 2.6, RAFT);
    • /etc/apache2/sites-available/default.opennebula.conf (ПК СВ «Брест» 2.9, no RAFT);
    • /etc/apache2/sites-available/float.opennebula.conf (ПК СВ «Брест» 2.9, RAFT).

Возможные причины


I have configured SSO for Redmine on Apache with Kerberos + GSSAPI.
It works OK for the first time. But I postponed this configuration and when I setup it again SSO auth fails with the following error in httpd error log:

[http:trace4] [pid 29360] http_request.c(316): [client 192.168.0.10:47380]   Authorization: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAKADk4AAAADw==
[rewrite:trace2] [pid 29360] mod_rewrite.c(470): [client 192.168.0.10:47380] 192.168.0.10 - - [redmine.mydomain.com/sid#558a80593c58][rid#558a806408f0/initial] init rewrite engine with requested uri /
[rewrite:trace1] [pid 29360] mod_rewrite.c(470): [client 192.168.0.10:47380] 192.168.0.10 - - [redmine.mydomain.com/sid#558a80593c58][rid#558a806408f0/initial] pass through /
[authz_core:debug] [pid 29360] mod_authz_core.c(809): [client 192.168.0.10:47380] AH01626: authorization result of Require valid-user : denied (no authenticated user yet)
[authz_core:debug] [pid 29360] mod_authz_core.c(809): [client 192.168.0.10:47380] AH01626: authorization result of <RequireAny>: denied (no authenticated user yet)
[auth_gssapi:debug] [pid 29360] mod_auth_gssapi.c(900): [client 192.168.0.10:47380] URI: /, no main, no prev
[auth_gssapi:error] [pid 29360] [client 192.168.0.10:47380] GSS ERROR In Negotiate Auth: gss_accept_sec_context() failed: [An unsupported mechanism was requested (Unknown error)]

Also I got another error:
[auth_gssapi:info] [pid 8012] [client 127.0.0.1:37910] NO AUTH DATA Client did not send any authentication headers

My krb5.conf

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = MYDOMAIN.COM
 default_keytab_name = /etc/krb5.keytab
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 24h
 forwardable = true
 default_tgs_enctypes = aes256-cts-hmac-sha1-96
 default_tkt_enctypes = aes256-cts-hmac-sha1-96

[realms]
 MYDOMAIN.COM = {
  kdc = mydc.mydomain.com
  admin_server = mydc.mydomain.com
  default_domain = mydomain.com
  kpasswd_server = mydc.mydomain.com
 }

[domain_realm]
 .mydomain.com = MYDOMAIN.COM
 mydomain.com = MYDOMAIN.COM

My keytab

# klist -ek /etc/krb5.keytab
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   4 HTTPS/redmine.mydomain.com@MYDOMAIN.COM (aes256-cts-hmac-sha1-96)

Keytab tests:

# kinit -V -kt /etc/krb5.keytab -p HTTPS/redmine.mydomain.com@MYDOMAIN.COM
Using default cache: /tmp/krb5cc_0
Using principal: HTTPS/redmine.mydomain.com@MYDOMAIN.COM
Using keytab: /etc/krb5.keytab
Authenticated to Kerberos v5
#
# klist -Af
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: HTTPS/redmine.mydomain.com@MYDOMAIN.COM

Valid starting       Expires              Service principal
02/15/2019 16:31:47  02/16/2019 02:31:47  krbtgt/MYDOMAIN.COM@MYDOMAIN.COM
        renew until 02/16/2019 16:31:47, Flags: FPRIA

My keytab was generated by the following commands:

ktpass -princ HTTPS/redmine.mydomain.com@MYDOMAIN.COM -mapuser serviceuser -pass my_password -ptype KRB5_NT_PRINCIPAL -crypto AES256-SHA1 -out redmine.keytab -mapOp set

SPN info

C:>setspn -L serviceuser
Registered ServicePrincipalNames for CN=serviceuser,OU=Pseudo Accounts,OU=Managed Objects,DC=mydomain,DC=com:
        HTTPS/redmine.mydomain.com

C:>setspn -Q HTTPS/redmine.mydomain.com
Checking domain DC=mydomain,DC=com
CN=serviceuser,OU=Pseudo Accounts,OU=Managed Objects,DC=mydomain,DC=com
        HTTPS/redmine.mydomain.com

Existing SPN found!

Looks like my keytab is OK.

My redmine.conf for Apache

<VirtualHost *:80>
    ServerAdmin admin@mydomain.com
    ServerName redmine.mydomain.com
    Redirect "/" "https://redmine.mydomain.com/"
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin admin@mydomain.com
    ServerName redmine.mydomain.com
    DocumentRoot /var/www/redmine/public/


    # SSL
    # Enable SSL with Perfect Forward Secrecy
    SSLEngine on
    SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1
    SSLCompression off
    SSLCertificateFile /etc/ssl/certs/mydomain.com.crt
    SSLCertificateKeyFile /etc/ssl/private/mydomain.com.key

    ## Passenger Configuration

    RailsBaseURI /
    PassengerAppRoot /var/www/redmine
    PassengerRuby /usr/local/rvm/gems/ruby-2.4.4/wrappers/ruby
    PassengerFriendlyErrorPages on
    RailsSpawnMethod smart
    RailsAppSpawnerIdleTime 3600
    PassengerMaxPreloaderIdleTime 0
    PassengerMaxRequests 5000

    PassengerUser apache
    PassengerGroup apache

    <Directory /var/www/redmine/public>
            Options +Indexes +FollowSymLinks -MultiViews
            AllowOverride All
            <IfVersion < 2.3 >
                    Order allow,deny
                    Allow from all
            </IfVersion>
            <IfVersion >= 2.3>
                    Require all granted
            </IfVersion>
    </Directory>

    # SSO start 

    <Location "/">
        RewriteEngine     On
        RewriteCond       %{IS_SUBREQ} ^false$
        RewriteCond       %{LA-U:REMOTE_USER} (.+)
        RewriteRule       . - [E=RU:%1]
        RequestHeader     add REMOTE_USER %{RU}e

        SSLRequireSSL
        AuthType GSSAPI
        AuthName "login:"
        GssapiSSLonly On
        GssapiAllowedMech krb5
        GssapiCredStore keytab:/etc/krb5.keytab
        GssapiLocalName On
        GssapiBasicAuth On

        Require valid-user
    </Location>

    # SSO end   

    #AddOutputFilter DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css

    #BrowserMatch ^Mozilla/4 gzip-only-text/html
    #BrowserMatch ^Mozilla/4.0[678] no-gzip
    #BrowserMatch bMSIE !no-gzip !gzip-only-text/html

    ErrorLog /var/log/httpd/redmine.error.log
    LogLevel trace8
    CustomLog /var/log/httpd/redmine.access.log combined
    ServerSignature Off

</VirtualHost>

Also I tryied without GssapiAllowedMech krb5 option, but I got same error.

In redmine app I modified app/controllers/application_controller.rb. Added the follwing strings to find_current_user function:

elsif (forwarded_user = request.env["REMOTE_USER"])
    # web server authentication
    user = (User.find_by_login(forwarded_user) rescue nil)

In result:

  def find_current_user
    user = nil
    unless api_request?
      if session[:user_id]
        # existing session
        user = (User.active.find(session[:user_id]) rescue nil)
      # Start custom settings
      elsif (forwarded_user = request.env["REMOTE_USER"])
        # web server authentication
        user = (User.find_by_login(forwarded_user) rescue nil)
      # End custom settings
      elsif autologin_user = try_to_autologin
        user = autologin_user
      elsif params[:format] == 'atom' && params[:key] && request.get? && accept_rss_auth?
        # RSS key authentication does not start a session
        user = User.find_by_rss_key(params[:key])
      end
    end

Browsers configuration.
For Google Chrome, Edge, Opera I have setup Local Intranet and Trusted sites zones in Internet Options to Automatic logon with current user name and password.
For FF:

network.negotiate-auth.delegation-uris = mydomain.com
network.negotiate-auth.trusted-uris = mydomain.com

Any ideas?

Понравилась статья? Поделить с друзьями:

Читайте также:

  • An unspecified error occurred during system restore 0x8000ffff
  • An unspecified error occurred after effects
  • An unspecified error occurred 766f6c756d652e63 3f1 при проверке диска
  • An unspecified error occurred 766f6c756d652e63 3f1 при загрузке
  • An unspecified error occurred 766f6c756d652e63 3f1 chkdsk

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии