Archivo

Posts Tagged ‘esquema’

Como alterar el esquema y no morir en el intento – Parte 2 Creando clases y Atributos

Como vimos en la primera parte el esquema es la parte mas importante de nuestro directorio, ya que de él dependen los atributos que tendrán los objetos de active directory, e incluso muchos permisos que tienen dichos objetos.
Ya en la primera parte obtuvimos nuestro prefijo OID personal y único, que nos permite crear multiples clases y atributos de estas clases, pero primero que nada ¿Como encuentro estas clases?. Pensemos que necesitamos crear el atributo "RUT" para la clase USER (se entiende?) de manera que podamos agregar este recurso tan importante a nuestro directorio.

Para comenzar debemos ver lo invisible… el esquema mismo. Para cuidarnos de nosotros mismos (Alguien ha escuchado la frase "No deseamos lo que no vemos"?) se ha ocultado la consola de administración del Esquema de manera que no "juguemos" con él. ¿como lo hacemos aparecer? simplemente debemos ir a nuestro controlador de dominio luego a Inicio – Ejecutar – escribir REGSVR32.exe schmmgmt.dll y dar clic en Enter. Se nos indicará que la DLL se ha registrado con éxito:

image Ejecutando el registro de la DLL

image DLL Registrada correctamente

Ya que tenemos nuestra consola disponible, procedemos a abrirla. Para eso vamos a Inicio – Ejecutar – Escribimos MMC y damos clic en Enter.
image

Finalmente mantenemos apretada la tecla CTRL y la tecla M juntas, y agregamos de la lista de consolas una llamada "Active Directory Schema"

image

Ya con nuestra consola podemos mirar las clases (objetos de Active Directory) y los Atributos (Propiedades de las Clases)

image

Como parte de nuestro proyecto, dijimos que el atributo RUT debe ser creado para la clase USER. Entonces como primer paso debemos crear un nuevo atributo.

Vamos a la carpeta Atributes en el esquema, le damos clic derecho y elegimos la opción "Create Atribute…"

image

Para los que no entendieron del todo lo que escribí en el primer post, se envía una última advertencia sobre los riesgos de crear nuevos registros en el esquema de AD:

image

Tomando en cuenta lo anterior, damos clic en "Continue…" y podemos ver las opciones de nuestro nuevo atributo. En nuestro caso, mi empresa ficticia "Troncoso.com", iba a elegir contoso.com pero esta muy repetida. Espero que Bill Gates no compre mi empresa como la CompuGlobalHyperMegaNet de Homero en el episodio 5F11 de la temporada 9 (Fanático yo?… que vá).
Debo pensar entonces como represento el nombre de mi empresa y el nombre de mi Atributo para que sea entendible. Aparte necesito colocar un OID y tomar ciertas desciciones sobre como deseo que se vea y maneje mi Atributo a traves de todo el directorio.

En esta imagen podemos ver y entender que es lo que tenemos que completar y de que forma.

image

Identification

Common Name: Nombre descriptivo de nuestro atributo. Se recomienda encarecidamente que contenga como prefijo el nombre de la empresa que lo esta generando, y a continuación el tipo de atributo que estamos creando.
LDAP Display Name: La presentación del nombre en el directorio. Si no se completa, se tomará el Common Name como el Display Name.
Unique X500 Object ID: Acá debe ir nuestro prefijo OID que obtuvimos anteriormente más un numero único que debemos almacenar internamente en nuestra empresa.
Description: No hay mucho que decir, acá debemos agregar una descripción del atributo. Por favor haganlo!!!, la mente es frágil.

Syntax and Range

Syntaxis: El tipo de datos que estamos almacenando. Puede ser numeral, un String, un dato alfanumérico sensible a la mayúsculas, etc.
Minium: El mínimo de caracteres que tiene que tener nuestro atributo cuando se pueble.
Maximum: El máximo de caracteres que tiene que tener nuestro atributo.

Multi-Valued: Si el dato puede tener mas de una línea.

Para mi registro he decidido lo siguiente:

image clic para agrandar

Como pueden ver mi prefijo OID era en este caso:

1.2.840.113556.1.8000.2554.40164.62837.53161.19717.48255.5815845.548082

Por lo que he decidido que las clases que vaya a crear empezarán con 1.X y los atributos con 2.X. Como es un atributo el OID para mi primer atributo será:

1.2.840.113556.1.8000.2554.40164.62837.53161.19717.48255.5815845.548082.2.1

Felicidades!!!!!, ya tenemos nuestro primer atributo creado. Pero debemos continuar, ya que necesitamos personalizarlo un poco más. Para eso lo buscamos en la lista de atributos y la damos doble clic. Aquí podemos ver que hay nuevas opciones disponibles:

image Clic para agrandar

Como este post está un poco largo, la explicación la voy a dejar para el anexo de esta serie. Solo pinche en la caja "Allow this attribute to be shown in advanced view" ya que necesitaremos que esté visible nuestro atributo, y asi poder modificarlo desde el Active Directory Users and Computers Snap-in.

Para terminar, vamos a la carpeta "Clases", buscamos la clase USER y damos doble clic sobre la misma. Nuevamente dejaré la explicación más completa para el anexo, y solo iré al tab "Atributes" y damos clic en el botón "Add" para agregar nuestro nuevo atributo y asociarlo así a la clase USER.

image clic para agrandar

Aceptamos Todo y ya tenemos nuestro atributo asociado a nuestra clase USER.

El proceso para crear una Clase es prácticamente el mismo.

Espero que les sirva, y esperen mi siguiente post, en donde veremos dos maneras de ver y modificar este atributo.

Saludos

Categorías:Active Directory Etiquetas: , ,

Como alterar el esquema y no morir en el intento – Parte 1 Entendiendo los peligros

Recientemente en mi trabajo tuvimos que realizar para un demo, una serie de modificaciones al Esquema de Windows y me pareció bien explicar como se hace, que significa y por que en TODA la documentación de Microsoft te dicen "NO LO HAGAS".

Que es el Esquema de Windows?

Cuando creamos un usuario en Active Directory, se nos preguntan ciertos datos tales como su Nombre, Apellido, Nombre Común, clave, etc. Estos datos son "Atributos" del usuario, y el usuario es una clase llamada "User" que se obtiene consultando el Esquema…
Entonces ¿Ya tenemos una idea de que es el Esquema? No????, bueno, El esquema es una serie de Clases (que podemos llamar objetos de Active Directory) que contienen atributos, los cuales son la información que se puede agregar y que esta asociada a esa Clase.

Por que se pide no alterar el esquema?

Como ya comente, el esquema contiene TODA la información que se genera en Active Directory, y por lo tanto si una nueva aplicación (Como Exchange server) realiza modificaciones a Active Directory tiene que saber exactamente que cosa YA EXISTE y a la vez, MICROSOFT debe saber que cambios esta realizando esta aplicación sobre el Esquema. Sino la próxima aplicación certificada que quiera agregar un registro y tenga el mismo OID que algún atributo añadido anteriormente NO va poder funcionar.
Se entiende?, si nosotros queremos agregar un atributo que tiene un OID existente, no lo vamos a poder crear, y si creamos uno que tiene el mismo OID que alguna aplicación que queramos instalar en el futuro, dicha aplicación no podrá ser instalada.

Resumen:
SI LEES ESTE DOCUMENTO, USA EL SCRIPT DESCRITO MAS ABAJO PARA GENERAR TU OID Y USALO COMO ULTIMA OPCION, YA QUE EL ALTERADO DEL ESQUEMA ES UN PROCESO IRREVERSIBLE. POR IRREVERSIBLE ENTIENDASE QUE SI EL NUMERO DE OID QUE USASTE PARA JUGAR ES EL MISMO QUE UNA APLICACION QUE NECESITAS INSTALAR EN TU DOMINIO, VAS A TENER QUE CREAR UN NUEVO DOMINIO DE ACTIVE DIRECTORY SIN TU OID PERSONALIZADO PARA PODER INSTALAR DICHA APLICACION. A NADIE LE GUSTA TENER QUE EMPEZAR SU DOMINIO DE NUEVO DESDE CERO (SOBRE TODO SI TIENES 5 MIL USUARIOS TRABAJANDO EN VARIAS OFICINAS)

Que es un OID?

Un OID (u Object Identifier) es un registro único en el Esquema, que permite mantener un orden de TODAS las aplicaciones que necesitan modificar el Esquema, no importando si son propietarias de Microsoft o pertenecen a terceros. Tanto el Esquema como los OID no son "ideas frescas de Microsoft" sino que cumplen con estándares internacionales, la mayoría de los servicios de Directorio LDAP se basan en esta misma premisa. Por lo tanto lo que aplica acá, cumple de la misma forma para los demás directorios.

Como obtengo un OID?

Si tu empresa necesita alterar el esquema como parte de un desarrollo de software tiene dos posibilidades. O pide y registra internacionalmente un grupo de OIDs para tu aplicación, o usa una lista de OIDs que Microsoft ha dejado a libre uso, usando un script que genera un numero único en base tu propio GUID. Otra parte importante es el prefijo de presentación de dicha aplicación, este prefijo debe registrarse siguiendo un protocolo de certificación explicado aquí:
http://www.microsoft.com/windowsserver2003/partners/isvs/appspec.mspx
Si uno crea un atributo, dos partes esenciales son requerimientos durante la creación del mismo:

El Common Name: Nombre descriptivo único del atributo
El OID: Numero del atributo en formato X.500

El prefijo del Common Name debe ser descriptivo de la empresa o la aplicación a la que pertenece este atributo, de esta manera permite su fácil ubicación. Este prefijo también es parte de los requerimientos para certificar una aplicación que requiera alterar el esquema.

Como Genero un OID?

Existe un script de Microsoft (sin soporte) que nos permite generar un OID automáticamente. No es muy complejo de usar, por lo tanto descarguen el archivo .VBS que les dejo mas abajo, denle doble clic, ejecutenlo y copien su nuevo OID 🙂
Necesitan conectividad de RED para que el script funcione.

Al ejecutar el Script pueden ver su nuevo OID generado, asi que copienlo con total cuidado en un Notepad

image Clic para agrandar

La solucion que yo prefiero es usar una consola y ejecutar CSCRIPT

Para hacerlo de esta forma:

1. Copien el archivo descargado a su PC
2. Abran una CMD (Inicio – Ejecutar – Escriban CMD y den clic en aceptar)
3. Dentro de la CMD busquen la carpeta en donde descargaron el archivo
4. Ejecuten "CScript OID_Gen.vbs" (sin las comillas)
5. El retorno será lo mismo que tienen en la ventana de mas arriba, pero con la ventaja que ahora pueden copiar y pegar directamente desde la consola.

image Clic para agrandar

En el siguiente post explicaré que es lo que tenemos que hacer para crear un nuevo Atributo o una nueva Clase en el esquema y ademas como usar su OID recien generado (que en realidad es el prefijo de los OIDs que ocuparan a futuro). Y finalmente en el tercer post explicare como presentar el nuevo atributo en la consola de administración de Active Directory.

Espero que les haya gustado 😀

Categorías:Active Directory Etiquetas: ,