Sincronización SQL Express por web en réplica de mezcla

11/04/2008 - 09:59 por Juan Diego Bueno | Informe spam
Hola gente:

Estoy probando la réplica de mezcla para ver si la implemento en un
proyecto. En principio funciona a la perfección si la hago a nivel de
intranet, pero mi idea es su utilización por web.

Estoy probando con un SQL Server Enterprise Ed. 2005 como publicador
(una trial de 180 días para pruebas) y un SQL Server 2005 express como
subscriptor (en el proyecto habrá varios similares).

El tema es que no logro que sincronice. Os explico como está la
configuración web del publicador:

- Tengo un directorio virtual para la sincronización
- Tengo un certificado (aunque ha sido autofirmado, para pruebas)
- Utilizo la autenticación básica, dando como dominio predeterminado el
nombre del equipo en el que está el SQL Server enterprise y territorio,
el nombre del certificado.
- Como usuario con permisos de acceso al directorio, tengo uno propio
del equipo donde está el Enterprise (a partir de ahora, EPub)
- Como recurso compartido, un directorio de EPub que ya asigné al
configurar la réplica

Bien, si entro por el navegador desde el equipo suscriptor (a partir de
ahora ESusc) a https://EPub/dirsync/replisapi.dll, inicialmente se
queja por el certificado, lo acepto y aparece una pantalla que parece
denotar que funciona (muestra el mensaje SQL Server WebSync ISAPI).

El problema lo tengo al intentar sincronizar desde el sucriptor. Si lo
intento con la utilidad de sincronización de W2000 me muestra el error:
A security error occured y casca.

Si lo hago con replmerg con esta sintaxis:

"C:\Archivos de programa\Microsoft SQL Server\90\COMeplmerg.exe"
-Publisher EPub -PublisherDB BDPUB -Publication nombrepub -Subscriber
ESusc\SQLEXPRESS -Distributor EPub -SubscriberDB BDSUSC
-SubscriberSecurityMode 1 -InternetURL
https://EPub/NombreSync/replisapi.dll -InternetLogin
EPub\usuariodominio -InternetPassword contraseñausuariodominio
-PublisherSecurityMode 1 -Output -SubscriberSecurityMode 1
-SubscriptionType 1 -DistributorSecurityMode 1

Todo parece ir bien hasta que muestra lo siguiente:

El Agente de mezcla no se pudo conectar a la direcciŸn U
RL 'https://EPub/NombreSync/replisapi.dll' durante la sincronizaciŸn We
b. Compruebe que la configuraciŸn de direcciŸn URL, credenciales de
inicio de sesiŸn en Internet y servidor proxy es correcta y que se
puede tener acceso al servidor Web.

El caso es que todo parece estar bien y no entiendo por qué no conecta
(máxime cuando si lo hace mediante el explorador).

Indicar que el equipo suscriptor está en un dominio, mientras que el
publicador no, y que normalmente el suscriptor navega a través de
proxy, aunque en la configuración de IE se excluyen las direcciones
locales, y aunque no esté en dominio, el equipo publicador si está en
red con el suscriptor. La publicación/suscripción convencional por
intranet si funciona.

Gracias de antemano.

Saludos

http://www.moondance.es

Preguntas similare

Leer las respuestas

#6 Anonimo
14/04/2008 - 20:48 | Informe spam
Me alegro mucho Juan !!

Es más recomendable utilizar la autenticación de Windows que de SQL Server
(estoy hablando de SQL Server, no de IIS, claro), principalmente por
seguridad.

Por defecto, la réplica de mezcla utiliza a nivel de IIS (y no de SQL
para evitar malos entendidos ;-) la autenticación básica. Nos encontramos
con un problema, y es que el usuario debía introducir el usuario y password
para replicar (salvo que utilizásemos un usuario genérico y lo guardemos en
la aplicación de alguna forma, pero si en un futuro se necesita cambiar la
password del mismo es un marrón). Para resolver esta situación, y mantener
el mayor nivel de seguridad utilizamos la Autenticación Integrada y la
Delegación de Kerberos, con el fin de que si los usuarios están en LAN (y
tienen visibilidad con Directorio Activo, DNS, etc.) puedan sincronizar con
su usuario contextual evitando pedir credenciales (elegante a la par que
sencillo ;-), y si están en Internet, poder publicar el puerto 443 a través
de los ISA Server, y replicar utilizando la autenticación básica (y sólo en
esos casos, se pide al usuario credenciales, claro que, es fácil argumentar
que es por seguridad al estar en Internet mientras que al estar en
LAN pedir el usuario es un rollo desde el punto de vista de la usabilidad
!).

Para la configuración de IIS, montamos dos servidores con el balanceo de
carga (NLB). Cara al DNS, utilizamos la estrategia Split-DNS, es decir,
duplicamos la misma zona en los DNSs locales y en los DNS de Internet, y en
cada caso, ponemos las direcciones que queremos (ej: la URL de la réplica en
el DNS de Internet apunta a la IP del ISA Server, mientras que en los DNS de
la LAN apuntan a una red 10.X.X.X conforme al direccionamiento interno).

Con todo esto, la configuración de la autenticación integrada y la
delegación de kerberos, tiene un poquitín de currillo de i+d. Escribí hace
poco un Artículo en mi Web a propósito de ésto:

http://www.guillesql.es/Articulos/A..._IIS6.aspx

Y de momento poco más. Quedo a tus órdenes, satisfecho de haber podido
ayudarte ;-)

Saludos,
GuilleSQL
http://www.guillesql.es



"Juan Diego Bueno" wrote in message
news:
Hablando de sincronización... casi lo escribimos a la vez.

Efectivamente, era lo que decías :)

Saludos

Juan Diego Bueno www.moondance.es
<GuilleSQL> escribió en el mensaje
news:
Hola Juan,

Por lo que cuentas, tengo claro que el error viene por el certificado. Es
decir, habriendo el menú opciones de Internet Explorer 7 (Tools ->
Internet Options) en la pestaña Contents, click en el botón Certificates.
En la ventana Certificates, colócate en la pestaña Trusted Root
Certification Authorities. En ésta pestaña, puedes ver la lista de
Entidates Certificadoras Raíz de Confianza.

Creo, que el error que te ocurre, es que no has conseguido importar el
certificado de la CA Root que utilizas en el Internet Explorer. En las
pruebas que realicé en su momento, me encontré que en algunas versiones
de Sistema Operativo / Navegador (no recuerdo el detalle de cuales), al
darle al botón de importar, se importaban bien, pero en otros casos se
importaba el certificado como Entidad Intermedia y NO como entidad
raíz... y en ese caso, fallaba !!

Si puedes, comprueba que tienes dado de alta tu CA Root en ésta lista,
sea una CA Root tuya propia (yo tengo la mía en mi laboratorio de
pruebas, que se llama VCA01, es una Windows Server 2003 standalone, y me
aparece en ésta lista), o sea un certificado autofirmado (creo que en ese
caso también aparece en dicha lista si se importa correctamente).

Un detalle: Si no recuerdo mal (así de cabeza), al hacerlo con el
Internet Explorer, estás importando el Certificado en la base de datos de
certificado del usuario (luego, en la misma máquina con otro usuario, el
certificado recién importado, ni lo hueles) mientras que por
políticas de Directorio Activo (las GPO de toda la vida), puedes importar
el certificado en la base de datos de certificados de la máquina (y así
lo importas una vez para todos los usuarios, mejor, no?).

Ya me cuentas, que me tienes intrigaoooooo !!

Saludos,
GuilleSQL
http://www.guillesql.es


"Juan Diego Bueno" wrote in message
news:
Hola Guille:

Ante todo, agradecerte tu tiempo al contestar y dar toda esta gama de
posibilidades :)

GuilleSQL ha utilizado su teclado para escribir :
Hola Juan,

Lo primero, te recomendaría que accedieses a la URL utilizada por el
filtro isapi de la réplica. Ej:

https://EPub/NombreSync/replisapi.dll'

Comprueba el mensaje que pueda darte Internet Explorer. Algunas de las
utilidades que generan certificados autofirmados, los generan con un
tiempo de vida de 7 días, es decir, después de 7 días el certificado
caduca y la réplica (perdón la Sincronización Web ;-) dejaría de
funcionar. Esta es una posible razón. También es posible que el usuario
que utilices para Sincronizar con el Agente de Mezcla, no tenga
permisos. Puedes abrir un Internet Explorer con dicho usuario, y
comprobar si tiene permisos de acceso o no a dicha DLL. Si no los
tiene, creo que tan sólo era necesario cambiar los permisos NTFS de
replisapi.dll... sino recuerdo mal... (sólo lo he tenido que hacer
alguna vez durante pruebas, y hace tiempo).



He probado esto y sigue en las mismas. Al entrar por el IE, como dije en
el post inicial, me avisa sobre el certificado, si le digo que lo quiero
usar aunque no sea de confianza, me pide usuario y contraseña (que son
del dominio propio del equipo donde está el servidor, es decir
NOMBREEQUIPO\usuario) y muestra el mensaje SQL Server WebSync ISAPI
(nada más). En el IE7, muestra arriba un mensaje de tipo "Error de
certificado". Dicho certificado lo he creado hace pocos días, menos de
7, así que por eso no debería haber problema. Además, supuestamente
caduca en un año.

También tienes que tener en cuenta que el equipo cliente (subscriptor)
debe confiar en la entidad emisora del certificado que has utilizado.
Si utilizas un certificado autofirmado, en el equipo cliente deberás
importar el certificado. Esto se hace al acceder con Internet Explorer
a la URL de la réplica (por ejemplo), y si te da la opción de ver el
certificado (y si no le das al icono del candado del Internet
Explorer), pues al ver el certificado le das al botón de instalar
certificado, y fuera (siento no ser más claro, pero ni tengo aquí el
entorno, ni tengo aquí documentación, y además, depende de que versión
de Internet Explorer). En el caso de una aplicación empresarial (y no
de un piloto), podrías utilizar una CA Root o una Issue CA con Windows
Server 2003, ya sea independiente o integrada en directorio activo, y
utilizar Políticas (GPO) para hacer llegar el certificado a los equipos
clientes (dependiendo de la edición de Windows - 2000 ó 2003 - te será
necesaria la GPO para todos los dominios de tu organización o sólo para
los dominios distintos al dominio al que pertenece la CA).



Esto ya lo he hecho, y sigue en las mismas. Me lo importa correctamente,
pero cuando reinicio el navegador, vuelve a decirme lo mismo de siempre.

Doy por hecho que el certificado ha sido generado correctamente, es
decir, si deseamos acceder a una URL de https://www.replica.local, el
certificado se ha generado para dicho nombre, y no para el nombre de
máquina, u otro alias.



Esto... en la medida de lo poco que sé, creo que también está bien.
Puedo entrar igualmente en https://nombredeequipo. El certificado se
creó a partir de una solicitud desde el IIS. Después creé una autoridad
certificadora fantasma y lo que hace es darme un aviso sobre que "No se
puede encontrar el emisor del certificado".

También me encontré un día con un problema que poco sentido tenía.
Fallaba la Sincronización Web para algunas Publicaciones (este entorno
son 100 Publicaciones, y 1000 potenciales Subscriptores con SQL
Express, utilizando particiones de datos, etc.). Resultó que la
aplicación que utilizaba la réplica, al crear las Subscripciones, ponía
la URL con mayúsculas y minúsculas (ej: www.Replica.Local). Lo
cambiamos a minúsculas, y funcionó a la primera (eso sí, hasta que me
di cuenta que en los equipos que funcionaba era por ese detalle
ortográfico...). Desde entonces recomiendo crear las Publicaciones
especificando la URL en minúsculas, el sitio web con la URL en
minúsculas, el certificado digital con la URL en minúsculas, y las
Subscripciones con la URL en minúsculas.



Lo he probado, sigue igual

En el IIS, dentro del directorio dónde se encuentra el filtro isapi
utilizado para la réplica (replisapi.dll) existe un pequeño LOG de
dicha dll, que puede ser útil que lo consultes, para diagnósticos, etc.
A mi me ha servido en alguna ocasión, pero de muy tarde en tarde.



No veo nada clarificador

También puedes intentar ver información de diagnóstico en el ERRORLOG
de SQL Server, y en el visor de suscesos de las máquinas IIS, SQL
Server y de los equipos clientes. Aunque ten por seguro que tu problema
está entre el IIS y el equipo Subscriptor (lo que ocurre, es que el
error que muestras lo he vistos para muchos casos distintos es
bastante genérico).



Tampoco veo nada destacable

Por si te resulta cómodo y no lo conocieses, yo para realizar las
pruebas utilizo mucho la herramienta Sincronizar (Inicio ->
Programas -> Accesorios), ya que se integra con SQL Server, y te
permite utilizarlo como interfaz gráfico para invocar al agente de
mezcla, en vez de llamarlo a mano con todos sus parámetros, etc. Lo uso
un montón para diagnóstico en equipos con SQL Express (lástima que no
incluya el SQL Agent ésta edición de SQL Server lástima ;-)



Sí, la he utilizado y lo sigo haciendo, lo que pasa es que me pierdo un
poco con todas las autenticaciones que tiene. Aún así, tampoco
sincroniza desde aquí (da un error de inicio de sesión).

De momento poco más. Intenta ver algo más, y nos cuentas.




Bueno, estas primeras pruebas las he hecho con el servidor sql y el IIS
en un portátil (ambos en el mismo). Voy a probar con un servidor web en
otro equipo, volver a crear el certificado y a ver que pasa.

En teoría no debería preocuparme en exceso por esto, es decir, doy por
hecho que mis compañeros van a configurar como es debido IIS, con su
certificado válido, y que hecho así, no voy a tener problemas para
acceder desde fuera. Además, algunas suscripciones se van a hacer desde
fuera por https, pero otras van a estar en intranet y no va a haber
problema (esta ya la he probado y va bien).

Repito, muchas gracias por todo.

Saludos

http://www.moondance.tk










Respuesta Responder a este mensaje
#7 Juan Diego Bueno
15/04/2008 - 08:52 | Informe spam
Hola Guille:

GuilleSQL ha emitido la siguiente idea :
Me alegro mucho Juan !!

Es más recomendable utilizar la autenticación de Windows que de SQL Server
(estoy hablando de SQL Server, no de IIS, claro), principalmente por
seguridad.



No la he usado para estas pruebas porque me daba problemas. Trabajo,
como te he comentado, con un portátil para pruebas, que puedo
incorporar a dominio. El tema es que me daba problemas al añadir como
usuario para la réplica un usuario del dominio al que incorporo el
portátil, con lo cual sólo me valía un usuario propio del dominio con
el mismo nombre del equipo portátil. Además, también daba la opción de
suplantar la cuenta, etc... Conclusión, como no me funcionaba de esa
forma, opté momentáneamente por la autenticación SQL Server

Por defecto, la réplica de mezcla utiliza a nivel de IIS (y no de SQL
para evitar malos entendidos ;-) la autenticación básica. Nos encontramos con
un problema, y es que el usuario debía introducir el usuario y password para
replicar (salvo que utilizásemos un usuario genérico y lo guardemos en la
aplicación de alguna forma, pero si en un futuro se necesita cambiar la
password del mismo es un marrón). Para resolver esta situación, y mantener el
mayor nivel de seguridad utilizamos la Autenticación Integrada y la
Delegación de Kerberos, con el fin de que si los usuarios están en LAN (y
tienen visibilidad con Directorio Activo, DNS, etc.) puedan sincronizar con
su usuario contextual evitando pedir credenciales (elegante a la par que
sencillo ;-), y si están en Internet, poder publicar el puerto 443 a través
de los ISA Server, y replicar utilizando la autenticación básica (y sólo en
esos casos, se pide al usuario credenciales, claro que, es fácil argumentar
que es por seguridad al estar en Internet mientras que al estar en
LAN pedir el usuario es un rollo desde el punto de vista de la usabilidad !).

Para la configuración de IIS, montamos dos servidores con el balanceo de
carga (NLB). Cara al DNS, utilizamos la estrategia Split-DNS, es decir,
duplicamos la misma zona en los DNSs locales y en los DNS de Internet, y en
cada caso, ponemos las direcciones que queremos (ej: la URL de la réplica en
el DNS de Internet apunta a la IP del ISA Server, mientras que en los DNS de
la LAN apuntan a una red 10.X.X.X conforme al direccionamiento interno).

Con todo esto, la configuración de la autenticación integrada y la delegación
de kerberos, tiene un poquitín de currillo de i+d. Escribí hace poco un
Artículo en mi Web a propósito de ésto:

http://www.guillesql.es/Articulos/A..._IIS6.aspx



Uff, todo esto me supera un poco. Como esto es más bien trabajo del
administrador del servidor web, le puedo remitir tus sugerencias. En
principio, hasta donde yo sé, existe una rama de directorio activo en
nuestra empresa para este tipo de cosas. Una duda que tengo, que quizás
sea muy básica: Habrá nodos en la intranet, pero algún nodo va a entrar
por internet ¿Va a funcionar mandándole las credenciales de usuario al
hacer la réplica desde cualquier equipo conectado a internet? Sobre
esto no puedo en principio hacer pruebas ya que el servidor IIS de
producción aún no está montado ni expuesto.

Y de momento poco más. Quedo a tus órdenes, satisfecho de haber podido
ayudarte ;-)



Muchas gracias por todo :)

Saludos

http://www.moondance.es
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida