cancel
Showing results for 
Search instead for 
Did you mean: 

Kerberos SSO + Active Directory

emelbye
Champ on-the-rise
Champ on-the-rise
Hola comunidad,

Quiero acceder a Share automaticamente por Kerberos SSO con los usuarios de mi dominio pero no le encuentro la vuelta. Puedo acceder a Alfresco sin problemas, pero no a share. Al final pueden ver los logs.

Servidores: Todos pegados al dominio MIDOMINIO.NET
* w2008alfresco - (Alfresco) Windows Server 2008 R2
* AD01 - (Active Directory) Windows Server 2008 R2
* clientexp - (Maquina cliente) - Windows XP SP3 / Internet Explorer 6 / Firefox 28
* cliente01 (Maquina cliente) - Windows 7 / Internet Explorer 11 / Firefox 28


1) En active directory AD01 cree el usuario 'alfrescohttp'
          - No requere autenticacion Kerberos previa
          - La contraseña No caduca

2) En active directory  AD01 ejecute

ktpass -princ HTTP/w2008alfresco.midominio.net@MIDOMINIO.NET -pass MIPASSWORD -mapuser midominio\alfrescohttp -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -out c:\temp\alfrescohttp.keytab -kvno 0‍


3) Copiar keytab a maquina alfresco (w2008alfresco)

4) Crear servicios en AD01
 setspn -a HTTP/W2008ALFRESCO alfrescohttpsetspn -a HTTP/W2008ALFRESCO.midominio.net alfrescohttp‍‍‍‍


5) Configurar C:\Windows\krb5.ini (De servidor w2008alfresco)
[libdefaults]default_realm = MIDOMINIO.NETdefault_tkt_enctypes = rc4-hmacdefault_tgs_enctypes = rc4-hmac[realms]MIDOMINIO.NET = {   kdc = ad01.midominio.net   admin_server = ad01.midominio.net}[domain_realm]ad01.midominio.net = MIDOMINIO.NET.ad01.midominio.net = MIDOMINIO.NET‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍


6) Crear java.login.config en C:/Alfresco/java/jre/lib/security (maquina w2008alfresco)

Alfresco {   com.sun.security.auth.module.Krb5LoginModule sufficient;};AlfrescoHTTP{   com.sun.security.auth.module.Krb5LoginModule required   storeKey=true   useKeyTab=true   keyTab="C:/Alfresco/keytab/alfrescohttp.keytab"   principal="HTTP/W2008ALFRESCO.midominio.net";};ShareHTTP{   com.sun.security.auth.module.Krb5LoginModule required   storeKey=true   useKeyTab=true   keyTab="C:/Alfresco/keytab/alfrescohttp.keytab"   principal="HTTP/W2008ALFRESCO.midominio.net";};com.sun.net.ssl.client {   com.sun.security.auth.module.Krb5LoginModule sufficient;};other {   com.sun.security.auth.module.Krb5LoginModule sufficient;};‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍


7) Apuntar clase de login en C:/Alfresco/java/jre/lib/security/java.security (Maquina w2008alfresco)
login.config.url.1=file:C:/Alfresco/java/jre/lib/security/java.login.config‍‍‍


Agregue los sitios http://w2008alfresco y http://w2008alfresco.midominio.net en internet explorer en la intranet de las maquinas cliente. Ademas en las opciones marque "Iniciar Sesion automatico con nombre de usuario y contraseña".

😎 Renombre el archivo share-config-custom.xml.sample a share-config-custom.xml

9) Descomente las dos sessiones Remote

10) Reemplace KerberosDisables por Kerberos con los siguientes datos

<config evaluator="string-compare" condition="Kerberos" replace="true">      <kerberos>         <password>MIPASSWORD</password>         <realm>MIDOMINIO.NET</realm>         <endpoint-spn>HTTP/w2008ALFRESCO.midominio.net@MIDOMINIO.NET</endpoint-spn>         <config-entry>ShareHTTP</config-entry>      </kerberos>   </config>‍‍‍‍‍‍‍‍‍‍


11) En active directory, en el usuario alfrescohttop en la pestaña de delegacion marque "Trust this user for delegation to any service (Kerberos only)"

12) En firefox modifique las configuraciones
network.negotiate-auth.delegation-urisnetwork.negotiate-auth.trusted-urisnetwork.negotiate-auth.using-native-gsslib‍‍‍


13) alfresco.properties
authentication.chain=kerberos1:kerberos,alfrescoNtlm1:alfrescoNtlmkerberos.authentication.realm=MIDOMINIO.NETkerberos.authentication.sso.enabled=truekerberos.authentication.authenticateCIFS=falsekerberos.authentication.user.configEntryName=Alfrescokerberos.authentication.http.configEntryName=AlfrescoHTTPkerberos.authentication.http.password=MIPASSWORDkerberos.authentication.defaultAdministratorUserNames=adminkerberos.authentication.stripUsernameSuffix=true‍‍‍‍‍‍‍‍‍‍‍‍‍


logs. Cuando quiero acceder

 Search Subject for Kerberos V5 ACCEPT cred (HTTP/W2008ALFRESCO.midominio.net@MIDOMINIO.NET, sun.security.jgss.krb5.Krb5AcceptCredential)Found KeyTabFound KerberosKey for HTTP/W2008ALFRESCO.midominio.net@MIDOMINIO.NETEntered Krb5Context.acceptSecContext with state=STATE_NEWAdded key: 23version: 0Ordering keys wrt default_tkt_enctypes listdefault etypes for default_tkt_enctypes: 23.>>> EType: sun.security.krb5.internal.crypto.ArcFourHmacETypeUsing builtin default etypes for permitted_enctypesdefault etypes for permitted_enctypes: 17 16 23 1 3.>>> EType: sun.security.krb5.internal.crypto.ArcFourHmacETypeSystem time adjustedobject 0: 1398444344146/146721replay cache found.>>> KrbApReq: authenticate succeed.Krb5Context setting peerSeqNumber to: 1290115219>>> EType: sun.security.krb5.internal.crypto.ArcFourHmacETypeKrb5Context setting mySeqNumber to: 750672582014-04-25 13:45:44,053  WARN  [site.servlet.KerberosSessionSetupPrivilegedAction] [http-apr-8080-exec-9] credentials can not be delegated!‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

1 REPLY 1

jonvargas
Confirmed Champ
Confirmed Champ
Hola,

Entiendo que requieras una customización de Alfresco Share para que Single Sign On funcione correctamente.

Revisaste esto?

http://docs.alfresco.com/4.2/tasks/auth-kerberos-shareSSO.html

Saludos.