Назад | Перейти на главную страницу

Учетные данные нельзя делегировать - Alfresco Share

Я наткнулся на кирпичную стену, настраивая Alfresco 4.0.d на Redhat 6.

Я использую аутентификацию Kerberos, похоже, она работает нормально, а система единого входа работает в самом основном приложении на открытом воздухе. Я выполнил действия по настройке, чтобы приложение общего доступа заработало, но как бы я ни старался, я продолжаю получать эту ошибку в catalina.out каждый раз, когда браузер обращается к http://server:8080/share вместе с полем для пароля «Безопасность Windows».

WARN  [site.servlet.KerberosSessionSetupPrivilegedAction] credentials can not be delegated!

Вот что я сделал до сих пор:

Используя пользователей и компьютеры AD, выбрали alfrescohttp учетной записи и выбрано 'доверять этому пользователю для делегирования любой службе (только Kerberos).

share-config-custom.xml

Скопировано /opt/alfresco-4.0.d/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml.sample к share-config-custom.xml и отредактировал так:

   <config evaluator="string-compare" condition="Kerberos" replace="true">
      <kerberos>
         <password>*****</password>
         <realm>MYDOMAIN.CO.UK</realm>
         <endpoint-spn>HTTP/server.mydomain.co.uk@MYDOMAIN.CO.UK</endpoint-spn>
         <config-entry>ShareHTTP</config-entry>
      </kerberos>
   </config>


   <config evaluator="string-compare" condition="Remote">
      <remote>
         <keystore>
             <path>alfresco/web-extension/alfresco-system.p12</path>
             <type>pkcs12</type>
             <password>alfresco-system</password>
         </keystore>

         <connector>
            <id>alfrescoCookie</id>
            <name>Alfresco Connector</name>
            <description>Connects to an Alfresco instance using cookie-based authentication</description>
            <class>org.springframework.extensions.webscripts.connector.AlfrescoConnector</class>
         </connector>

         <endpoint>
            <id>alfresco</id>
            <name>Alfresco - user access</name>
            <description>Access to Alfresco Repository WebScripts that require user authentication</description>
            <connector-id>alfrescoCookie</connector-id>
            <endpoint-url>http://localhost:8080/alfresco/wcs</endpoint-url>
            <identity>user</identity>
            <external-auth>true</external-auth>
         </endpoint>
      </remote>
   </config>

krb5.conf

Настройте /etc/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.CO.UK
default_tkt_enctypes = rc4-hmac
default_tgs_enctypes = rc4-hmac
forwardable = true
proxiable = true

[realms]
MYDOMAIN.CO.UK = {
  kdc = mydc.mydomain.co.uk
  admin_server = mydc.mydomain.co.uk
}

[domain_realm]
.mydc.mydomain.co.uk = MYDOMAIN.CO.UK
mydc.mydomain.co.uk = MYDOMAIN.CO.UK

java.login.config

/opt/alfresco-4.0.d/java/jre/lib/security/java.login.config настроен так:

Alfresco {
   com.sun.security.auth.module.Krb5LoginModule sufficient;
};

AlfrescoCIFS {
   com.sun.security.auth.module.Krb5LoginModule required
   storeKey=true
   useKeyTab=true
   keyTab="/etc/alfrescocifs.keytab"
   principal="cifs/server.mydomain.co.uk";
};

AlfrescoHTTP {
   com.sun.security.auth.module.Krb5LoginModule required
   storeKey=true
   useKeyTab=true
   keyTab="/etc/alfrescohttp.keytab"
   principal="HTTP/server.mydomain.co.uk";
};

com.sun.net.ssl.client {
   com.sun.security.auth.module.Krb5LoginModule sufficient;
};

other {
   com.sun.security.auth.module.Krb5LoginModule sufficient;
};

ShareHTTP {
com.sun.security.auth.module.Krb5LoginModule required
storeKey=true
useKeyTab=true
keyTab="/etc/alfrescohttp.keytab"
principal="HTTP/server.mydomain.co.uk";
};

alfresco-global.conf

И, наконец, следующие настройки в alfresco-global.conf

authentication.chain=kerberos1:kerberos,alfrescoNtlm1:alfrescoNtlm

kerberos.authentication.real=MYDOMAIN.CO.UK
kerberos.authentication.user.configEntryName=Alfresco
kerberos.authentication.cifs.configEntryName=AlfrescoCIFS
kerberos.authentication.http.configEntryName=AlfrescoHTTP
kerberos.authentication.cifs.password=******
kerberos.authentication.http.password=*****
kerberos.authentication.defaultAdministratorUserNames=administrator

ntlm.authentication.sso.enabled=true

Как я уже сказал, я ударил этим кирпичную стену и был бы очень признателен за любую помощь, которую вы можете мне оказать! Этот вопрос также размещен на форуме Alfresco, но мне было интересно, сталкивался ли кто-нибудь здесь, на serverfault, с аналогичными проблемами реализации?

Удаление следующих строк из krb5.conf решило проблему.

forwardable = true
proxiable = true