Alfresco, webdav y Ldap

WebDAV

(Web-based Distributed Authoring and Versioning) is a web-base that allows users to edit files or manage their own files to the computer with Remote WebDAV.

Why WebDAV Web Folders?

  • Access files anywhere. And easy access permissions.
  • Web access to files, web browser now.
  • Users can not edit files within the same time.
  • Security configuration because it can use SSL Encryption to work through.
  • Support access to files from Windows, Linux, Mac OS X, bla bla bla y + bla

Eso me pregunto yo, por qué WebDav folders!!!

Cuando eres un consultor te toca meterte en pozos de otros «sapos».

Esta vez me tocó descifrar un elaborado sistema montado en un Centos con un apache 1 (hace tiempo que no veía uno, el último en un pentesting 😛 hace unos meses)

Pues me encontré unos usuarios Windows, autenticándose contra un LDAP, cosa que me gustó gratamente, ya que siempre lo vi en laboratorio y nunca en un entorno real de producción. La verdad que como todo servidor Linux, es muy robusto. Y  puede desaparecer la humanidad que ese servidor seguirá funcionando mientras tenga corriente eléctrica.

 

El tema fue encontrarme con menos de 10 carpetas como unidad de red al que se conectan los usuarios al logearse una vez en el Windows 7.

La verdad que el vbscript está currado, y es digno de ser puesto en este blog

Hay una serie de unos 20 scripts que se encargan de sincronizar automáticamente los usuarios creados con Ldap al Alfresco. En una integración total en conjunto a un Drupal. Quien lo hizo, la verdad que ha dedicado mucho tiempo y esfuerzo hacerlo. Y funciona bastante bien.

El tema es que cuando eres sapo de otro pozo y no tienes ni idea de lo que hay detrás montado, aún teniendo los password de Alfresco, el servidor, la intranet, el drupal, la base de datos, y todo lo demás, cuesta un poco entender la lógico, fin y conocimientos de quién ha montado este endiablado sistema. Se que para muchos frikis de Linux, es una forma de asegurarse que ningún usuario común de Windows con conocimiento básicos de Linux se meta en su pozo.

Así que me tocó a mi meterme en este pozo y entender cómo está montado un sistema con Vpn, cifrados raros, gestión deocumental con alfresco que publica y comparte sus directorios con Webdav y la participación de PGINA y otras herramientas muy guapas como herramientas que mapean webdav y las ponen automáticamente en equipo.

Lo primero que aparece al logearse tras el LDAP es lo siguiente.

 

Una ventana del IExplorer para poder acceder a la red.

Automáticamente rellene el usuario con el nombre de usuario, y la verdad que no entiendo porque no se ingenió para que pusiera automáticamente la contraseña. El caso es que hay que ponerla.

He visto soluciones más simples para mapear unidades de WebDav en Windows, sin necesidad de dar tantas vueltas. Y que el usuario no tenga que escribir su contraseña. Claro que desde el punto de vista de «Seguridad» así es mucho más seguro.

Bien vamos a ir al script que es lo que interesa.

 

& «<div style=»»text-align: center; font: 12px Segoe UI, Arial; margin-top: 10px»»>» _
& «<div style=»»padding: 5px;»»>» _
& «<label style=»»display: inline-block; width: 12ex; text-align: right;»»>Usuario:</label>» _
& «<input style=»»display: inline-block; width: 150px; margin-left: 10px;»» type=»»text»» size=»»30″» id=»»Username»» value=»»» & username & «»»>» _
& «</div>» _
& «<div style=»»padding: 5px;»»>» _
& «<label style=»»display: inline-block; width: 12ex; text-align: right;»»>Contraseña:</label>» _
& «<input style=»»display: inline-block; width: 150px; margin-left: 10px;»» type=»»password»» size=»»20″» id=»»Password»»>» _
& «</div>» _
& «<input type=»»hidden»» id=»»OK»» name=»»OK»» value=»»0″»>» _
& «<div style=»»margin-top: 15px»»>» _
& «<input style=»»font: 12px Segoe UI, Arial;»» type=»»submit»» value=»»Conectar»» onclick=»»VBScript:OK.Value=1″»>» _
& «</div>» _
& «</div>»

‘ Hide the scrollbars
objIE.Document.Body.Style.overflow = «auto»
‘ Make the window visible
objIE.Visible = True
‘ Set focus on password input field
objIE.Document.All.Password.Focus

‘ Wait till the OK button has been clicked
On Error Resume Next
Do While objIE.Document.All.OK.Value = 0
WScript.Sleep 100
‘ Error handling code by Denis St-Pierre
If Err Then ‘user clicked red X (or alt-F4) to close IE window
IELogin = Array( «», «» )
objIE.Quit
Set objIE = Nothing
Exit Function
End if
Loop
On Error Goto 0

‘ Read the password from the dialog window
Dim login(2)
login(0) = objIE.Document.All.Username.Value
login(1) = objIE.Document.All.Password.Value
GetLogin = login

‘ Close and release the object
objIE.Quit
Set objIE = Nothing
End Function

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>fin del code>>>

Pues ahí está el código.
La verdad que está bastante bien currado.
Como estaba bien currando pensé que la sincronización del LDAP con el Alfresco sería igual.
Pero que va.
Los usuarios se crean en LDAP, y son añadidos a Alfresco, pero no se han unido bien, por lo que luego de estar dos horas probando, entendí que lo mejor sería crearlos en el propio Alfresco. Así que terminé por aprender Alfresco, lo suficiente para entender su funcionamiento, la opción de volver a versiones anteriores. Lo hace interesante. Pero para mi gusto, algo desactualizado en los tiempos que vivimos. En donde podemos tener lo mismo en la nube. Sin necesidad de tener complejas infraestructuras con VPN.
Así que si te encuentras con LDAP con un Alfresco que comparte archivos en red con un WebDav. Piensa que tardarás menos en montar todo desde cero en la nube, que intentar entender y mantener esa infraestructura.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *