Tras el anterior artículo, en el que tratábamos el tema de la migración de usuarios de Directorio Activo en SharePoint (SIDHistory, STSADM migrateuser, y otros detalles), ahora toca que veamos la migración de grupos de Directorio Activo en SharePoint, tal y como prometimos, principalmente, comprobar el comportamiento del SIDHistory con los Grupos de Directorio Activo, y el comando STSADM migrategroup.
Muy importante. Antes de leer el presente artículo, sino leíste el anterior, comentarte que es muy recomendable su lectura antes de leer lo aquí escrito.
Dicho esto, empezamos.
¿Funcionará SIDHistory en SharePoint con la migración de grupos de Directorio Activo? Probando un grupo Local de Dominio
El primer tema es comprobar si funciona SIDHistory con los grupos de Directorio Activo en SharePoint. Recordemos, que por lo que vimos en el anterior artículo, al menos con los usuarios parecía que no funcionaba el SIDHistory, así que, no hay mucha esperanza, pero de cualquier modo, sólo tenemos una forma de saberlo. En este caso, probaremos un Grupo Local de Dominio con un usuario miembro.
Para ello, hemos creado un SubSite rompiendo la herencia de permisos, y hemos concedido acceso al grupo GUILLESQL\grpMig de tipo Domain Local, cuyo único miembro es el usuario GUILLESQL\testMig. Así mismo, en Directorio Activo hemos migrado ambos objetos (usuario y grupo) manteniendo el SIDHistory, por lo cual tenemos un grupo YOLINET\grpMig y un usuario YOLINET\testMig (que es el único miembro de YOLINET\grpMig). También ejecutamos el comando STSADM migrateuser para migrar sólo el usuario. Por lo tanto, en estos momentos, el usuario YOLINET\testMig no tiene permisos en el Site, tan sólo lo tiene el usuario GUILLESQL\testMig a través de su pertenencia al grupo GUILLESQL\grpMig. Sin embargo, al intentar acceder con el usuario YOLINET\testMig al SubSite de prueba, conseguimos acceder con éxito. Toma golpe de efecto.
Alucinante. No me lo esperaba. Además, si intento acceder con el usuario original GUILLESQL\testMig, también puedo acceder correctamente. Así que, parece que SharePoint no hace caso del SIDHistory de los usuarios, pero sí utiliza el SIDHistoy de los grupos de Directorio Activo (OJO, que sólo lo parece ;-).
Para saciar mi curiosidad, he realizado las siguientes pruebas y obtenido estos resultados:
- Si en el grupo original GUILLESQL\grpMig quitamos el miembro GUILLESQL\testMig, entonces al intentar acceder con YOLINET\testMig, obtenemos un error Access Denied.
- Si en el grupo final YOLINET\grpMig quitamos el miembro YOLINET\testMig, entonces al intentar acceder con YOLINET\testMig conseguimos acceder satisfactoriamente.
- Sin embargo, si eliminamos el grupo YOLINET\grpMig, al intentar acceder con YOLINET\testMig, también conseguimos acceder satisfactoriamente.
Visto lo visto, parece que lo que está ocurriendo con SharePoint, es que se está cogiendo el SIDHistory del usuario para comprobar su pertenencia a grupos en el dominio origen, y en función de esto acceder o denegar el acceso a SharePoint. Es decir, no está cogiendo el SIDHistory del grupo, que es lo primero que se me pasó por la cabeza.
¿Funcionará SIDHistory en SharePoint con la migración de grupos de Directorio Activo? Probando un grupo Global de Dominio
Una vez probado un Grupo Local de Dominio, ahora probaremos un Grupo Global de Dominio con un usuario miembro, que hemos migrado al nuevo dominio manteniendo el SIDHistory, realizando unas pruebas similares a las anteriores. En este caso, estas son las pruebas y resultados obtenidos:
- Si en el grupo original GUILLESQL\grpMigGlobal quitamos el miembro GUILLESQL\testMig, entonces al intentar acceder con YOLINET\testMig conseguimos acceder satisfactoriamente (OJO, esto no ocurría cuando era un grupo local).
- Si en el grupo final YOLINET\grpMigGlobal quitamos el miembro YOLINET\testMig, entonces al intentar acceder con YOLINET\testMig obtenemos un error Access Denied (OJO, de nuevo, esto no ocurría cuando era un grupo local).
En esta ocasión, parece que SharePoint está cogiendo el SIDHistory del grupo que ha sido migrado para conseguir acceder al Site.
En cualquier caso, hay muchos más casos que podríamos comprobar, desde los Grupos Universales, hasta el comportamiento con anidamiento de diferentes tipos de grupos. Pruebas que no vamos a hacer, al menos de momento, ya que con lo visto hasta ahora, ya podemos empezar a hacernos una idea del escenario al que nos estamos enfrentado.
Probando STSADM migrategroup con Grupos Locales y Globales
Ahora llega el momento de migrar los Grupos de Directorio Activo en nuestro SharePoint, del mismo modo que hicimos en el anterior artículo con los usuarios. Para empezar, vamos a tomar una foto del contenido de la tabla UserInfo de una Colección de Sitios en la que tiene permisos el grupo que vamos a migrar, para tener una primera referencia, por simple curiosidad. En nuestro caso de ejemplo, lo vamos a hacer con un grupo local, pero con los grupos globales es la misma historia.
Para migrar los grupos de Directorio Activo en SharePoint deberemos utilizar el comando STSADM migrategroup en lugar del STSADM migrateuser. No tiene mucho más. A continuación se muestra la ejecución del STSADM migrategroup con un grupo local. Con un grupo global, es igual.
Parece que ha finalizado OK. Genial. Si consultamos de nuevo la tabla UserInfo, vemos que se ha actualizado satisfactoriamente. Mola. Un poco de aire limpio viene bien.
A modo de prueba, antes de realizar la Migración de los grupos, creé unas Tareas en un Site, y las asigné a estos grupos, para ver cómo se comporta SharePoint en este caso. La actualización correcta de los campos de tipo People and Groups es un factor crítico para el éxito de esta migración. Sin embargo nos encontramos una sorpresa: Los grupos se han migrado satisfactoriamente con el comando STSADM migrategroup, sin embargo, el texto o descripción del grupo sigue siendo el original, lo cual mosquea y mucho.
De hecho, si consultamos la tabla UserInfo incluyendo los campos tp_Login y tp_Title, lo veremos claramente.
Para corregir este pequeño inconveniente, me preparé una Tool que llamé renameGroup (disponible para descarga gratuita), y que ejecuté con éxito.
Y por suerte, funcionó, dejando actualizada correctamente la descripción del grupo migrado en SharePoint.
Hecho todo esto, habremos conseguido migrar nuestros Grupos de Directorio Activo en SharePoint, no sólo los permisos, sino también el contenido de los campos People and Groups.
Depedida y Cierre
Como hemos podido ver en el anterior artículo sobre la migración de usuarios, y en el presente sobre la migración de grupos, parece que el objetivo de la migración es alcanzable en ambos casos. Con sus cosas, pero realizable.
También es cierto, que aún quedan muchos más detalles que ver y probar. Intentaré publicar otro artículo con algunos de estos detalles.
Antes de despedirme, quería aprovechar para compartir con todos vosotros un conjunto de enlaces que he ido recopilando en los últimos días, relacionados con este bonito tema de las migraciones de Directorio Activo en SharePoint. Algunos de los enlaces son muy buenos, y me ha costado algo de tiempo encontrarlos, así que aquí van, todos junticos:
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.