{"id":3703,"date":"2018-07-04T17:01:00","date_gmt":"2018-07-04T20:01:00","guid":{"rendered":"http:\/\/www.radians.com.ar\/blog\/?p=3703"},"modified":"2018-09-24T19:20:31","modified_gmt":"2018-09-24T22:20:31","slug":"toberecovered-01","status":"publish","type":"post","link":"https:\/\/www.radians.com.ar\/blog\/?p=3703","title":{"rendered":"Azure Active Directory, revisemos su arquitectura {Teoria}"},"content":{"rendered":"\n<p>Azure Active Directory (Azure AD) le permite administrar de forma segura el acceso a los servicios y recursos de Azure para sus usuarios. Con Azure AD tenemos incluido un conjunto completo de capacidades de administraci\u00f3n de identidades. <\/p>\n<p>Con Azure AD, puede crear y administrar usuarios y grupos y habilitar permisos para permitir y denegar el acceso a los recursos empresariales. <\/p>\n<h4>Arquitectura Azure AD<\/h4>\n<p>La arquitectura distribuida geogr\u00e1ficamente de Azure AD combina un amplio monitoreo, un redireccionamiento automatizado, un failover y capacidades de recuperaci\u00f3n que nos permiten ofrecer disponibilidad y rendimiento a nivel de empresa a nuestros clientes.<\/p>\n<p>Los siguientes elementos de arquitectura se tratan en este art\u00edculo:<\/p>\n<ul>\n<li>Dise\u00f1o de arquitectura de servicios<\/li>\n<li>Escalabilidad<\/li>\n<li>Disponibilidad continua<\/li>\n<li>Data centers<\/li>\n<\/ul>\n<h4>Dise\u00f1o de arquitectura de servicios<\/h4>\n<p align=\"justify\">La forma m\u00e1s com\u00fan de construir un sistema escalable, altamente disponible y rico en datos es a trav\u00e9s de bloques de construcci\u00f3n independientes o unidades de escala para el nivel de datos Azure AD, las unidades de escala se llaman <em>particiones<\/em> .<\/p>\n<p align=\"justify\">El nivel de datos tiene varios servicios front-end que proporcionan capacidad de lectura-escritura. El diagrama siguiente muestra c\u00f3mo los componentes de una partici\u00f3n de un solo directorio se distribuyen a trav\u00e9s de centros de datos distrubuidos geogr\u00e1ficamente.<\/p>\n<p align=\"justify\"><a href=\"http:\/\/www.radians.com.ar\/Articulos\/Images2017\/e204ce7959bb_BCC8\/active-directory-architecture.png\"><img loading=\"lazy\" decoding=\"async\" title=\"active-directory-architecture\" style=\"margin: 5px auto; float: none; display: block; background-image: none;\" border=\"0\" alt=\"active-directory-architecture\" src=\"http:\/\/www.radians.com.ar\/Articulos\/Images2017\/e204ce7959bb_BCC8\/active-directory-architecture_thumb.png\" width=\"304\" height=\"253\" \/><\/a><\/p>\n<p>Los componentes de la arquitectura Azure AD incluyen una r\u00e9plica primaria y r\u00e9plicas secundarias.<\/p>\n<h4>R\u00e9plica primaria<\/h4>\n<p align=\"justify\">La <em>r\u00e9plica primaria<\/em> recibe todas las escrituras para la partici\u00f3n a la que pertenece. Cualquier operaci\u00f3n de escritura se replica inmediatamente a una r\u00e9plica secundaria en un centro de datos diferente antes de devolver el \u00e9xito a la persona que llama, garantizando as\u00ed la durabilidad geo-redundante de las escrituras.<\/p>\n<p><strong>Replicas secundarias<\/strong><\/p>\n<p align=\"justify\">Todas las <em>lecturas de<\/em> directorio se <em>reparan<\/em> desde <em>r\u00e9plicas secundarias<\/em> , que se <em>encuentran<\/em> en centros de datos que est\u00e1n f\u00edsicamente ubicados en diferentes geograf\u00edas. Hay muchas r\u00e9plicas secundarias, ya que los datos se replican asincr\u00f3nicamente. Las lecturas de directorios, como las solicitudes de autenticaci\u00f3n, son atendidas desde centros de datos cercanos a nuestros clientes. Las r\u00e9plicas secundarias son responsables de la escalabilidad de lectura.<\/p>\n<h4>Escalabilidad<\/h4>\n<p align=\"justify\">Escalabilidad es la capacidad de un servicio para expandirse para satisfacer las crecientes demandas de rendimiento. Escalabilidad de escritura se logra mediante la partici\u00f3n de los datos. La escalabilidad de lectura se logra replicando datos de una partici\u00f3n a m\u00faltiples r\u00e9plicas secundarias distribuidas en todo el mundo.<\/p>\n<p align=\"justify\">Las solicitudes de aplicaciones de directorio generalmente se encaminan al centro de datos al que est\u00e1n f\u00edsicamente m\u00e1s cercanas. Las escrituras son redireccionadas de forma transparente a la r\u00e9plica primaria para proporcionar coherencia de lectura y escritura. Las r\u00e9plicas secundarias ampl\u00edan significativamente la escala de las particiones, ya que los directorios suelen estar publicando lecturas la mayor parte del tiempo.<\/p>\n<p align=\"justify\">Las aplicaciones de directorio se conectan a los datacenters m\u00e1s cercanos. Esto mejora el rendimiento y, por lo tanto, la ampliaci\u00f3n es posible. Dado que una partici\u00f3n de directorio puede tener muchas r\u00e9plicas secundarias, las r\u00e9plicas secundarias se pueden situar m\u00e1s cerca de los clientes del directorio. S\u00f3lo los componentes de servicio de directorio interno que son de escritura intensiva orientan la r\u00e9plica primaria activa directamente.<\/p>\n<p align=\"justify\">\n<p align=\"justify\">\n<p align=\"justify\">\n<p align=\"justify\">\n<h4>Disponibilidad continua<\/h4>\n<p align=\"justify\">Disponibilidad (o tiempo de actividad) define la capacidad de un sistema para realizar ininterrumpido. La clave para la alta disponibilidad de Azure AD es que nuestros servicios pueden cambiar r\u00e1pidamente el tr\u00e1fico a trav\u00e9s de m\u00faltiples centros de datos distribuidos geogr\u00e1ficamente. Cada centro de datos es independiente, lo que permite los modos de fallo de correlaci\u00f3n.<\/p>\n<p align=\"justify\">El dise\u00f1o de la partici\u00f3n Azure AD se simplifica en comparaci\u00f3n con el dise\u00f1o AD de la empresa, que es cr\u00edtico para ampliar el sistema. Hemos adoptado un dise\u00f1o de un solo maestro que incluye un proceso de conmutaci\u00f3n por error de r\u00e9plica primario cuidadosamente orquestado y determinista.<\/p>\n<p><strong>Tolerancia a fallos<\/strong><\/p>\n<p align=\"justify\">Un sistema est\u00e1 m\u00e1s disponible si es tolerante a fallas de hardware, red y software. Para cada partici\u00f3n en el directorio, existe una r\u00e9plica maestra altamente disponible: La r\u00e9plica primaria.&#160; S\u00f3lo se realizan escrituras en la partici\u00f3n en esta r\u00e9plica. Esta r\u00e9plica se est\u00e1 supervisando continuamente y de cerca y las escrituras pueden ser cambiadas inmediatamente a otra r\u00e9plica (que se convierte en la nueva primaria) si se detecta un fallo. Durante la conmutaci\u00f3n por error, podr\u00eda haber una p\u00e9rdida de la disponibilidad de escritura normalmente de 1-2 minutos. La disponibilidad de lectura no se ve afectada durante este tiempo.<\/p>\n<p align=\"justify\">Las operaciones de lectura (que superan en n\u00famero a las escrituras por muchos \u00f3rdenes de magnitud) s\u00f3lo van a r\u00e9plicas secundarias. Dado que las r\u00e9plicas secundarias son idempotentes, la p\u00e9rdida de una r\u00e9plica en una partici\u00f3n dada se puede compensar f\u00e1cilmente dirigiendo las lecturas a otra r\u00e9plica, normalmente en el mismo centro de datos.<\/p>\n<h4>Durabilidad de los datos<\/h4>\n<p align=\"justify\">Una escritura est\u00e1 comprometida de forma duradera con al menos dos centros de datos antes de que se reconozca. Esto ocurre al confirmar primero la escritura en el primario y luego replicar inmediatamente la escritura en al menos otro centro de datos. Esto garantiza que una posible p\u00e9rdida catastr\u00f3fica del centro de datos que aloje el primario no resulte en p\u00e9rdida de datos.<\/p>\n<p align=\"justify\">Azure AD mantiene un objetivo de cero <a href=\"https:\/\/translate.googleusercontent.com\/translate_c?depth=1&amp;hl=en&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=es&amp;u=https:\/\/en.wikipedia.org\/wiki\/Recovery_time_objective&amp;usg=ALkJrhgNxWI0_LFnbN6uKmodYjaEi5dqcw\">Recovery Time Objective (RTO)<\/a> para la emisi\u00f3n de token y lecturas de directorios y en el orden de minutos (~ 5 minutos) RTO para escrituras de directorios. Tambi\u00e9n mantiene el objetivo de cero&#160; <a href=\"https:\/\/translate.googleusercontent.com\/translate_c?depth=1&amp;hl=en&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com&amp;sl=en&amp;sp=nmt4&amp;tl=es&amp;u=https:\/\/en.wikipedia.org\/wiki\/Recovery_point_objective&amp;usg=ALkJrhgRvIi3LyUVGTN7IbD8HNgEouH6hA\">Recovery Point Objective (RPO)<\/a> y no perderemos datos sobre failovers.<\/p>\n<h4>Centros de datos<\/h4>\n<p align=\"justify\">Las r\u00e9plicas de Azure AD se almacenan en centros de datos ubicados en todo el mundo. Azure AD opera a trav\u00e9s de centros de datos con las siguientes caracter\u00edsticas:<\/p>\n<ul>\n<li>\n<div align=\"justify\">Autenticaci\u00f3n, Gr\u00e1fico y otros servicios de AD residen detr\u00e1s del servicio de puerta de enlace. La puerta de enlace gestiona el equilibrio de carga de estos servicios. Har\u00e1 failover autom\u00e1ticamente si se detectan servidores no saludables usando sondas de salud transaccionales. Sobre la base de estos sondeos de salud, la pasarela din\u00e1micamente el tr\u00e1fico de rutas a centros de datos saludables.<\/div>\n<\/li>\n<li>\n<div align=\"justify\">Para <em>lecturas<\/em> , el directorio tiene r\u00e9plicas secundarias y servicios front-end correspondientes en una configuraci\u00f3n activo-activo que funciona en m\u00faltiples centros de datos. En caso de un fallo de un centro de datos entero, el tr\u00e1fico se encaminar\u00e1 autom\u00e1ticamente a un centro de datos diferente.<\/div>\n<\/li>\n<li>\n<div align=\"justify\">Para las escrituras, el directorio pasar\u00e1 por la r\u00e9plica primaria (maestra) de conmutaci\u00f3n por error a trav\u00e9s de los centros de datos a trav\u00e9s de los procedimientos planificados (los nuevos primarios se sincronizar\u00e1n con primarios antiguos) o de emergencia. La durabilidad de los datos se logra replicando cualquier commit a al menos dos centros de datos.<\/div>\n<\/li>\n<\/ul>\n<h4>Consistencia de los datos<\/h4>\n<p align=\"justify\">El modelo de directorio es de consistencia eventual. Un problema t\u00edpico con sistemas de replicaci\u00f3n asincr\u00f3nicos distribuidos es que los datos devueltos de una r\u00e9plica &quot;particular&quot; pueden no estar actualizados.<\/p>\n<p align=\"justify\">Azure AD proporciona coherencia de lectura y escritura para las aplicaciones que apuntan a una r\u00e9plica secundaria, enrutando sus escrituras a la r\u00e9plica primaria y transfiriendo de forma s\u00edncrona las escrituras a la r\u00e9plica secundaria. Las escrituras de aplicaciones que utilizan la Graph API de Azure AD se abstraen de mantener la afinidad con una r\u00e9plica de directorio para la coherencia de lectura y escritura. El servicio Azure AD Graph mantiene una sesi\u00f3n l\u00f3gica, que tiene afinidad con una r\u00e9plica secundaria utilizada para lecturas; La afinidad se captura en un &quot;token de r\u00e9plica&quot; que el servicio de gr\u00e1fico almacena en cach\u00e9 utilizando una cach\u00e9 distribuida. Este token se utiliza entonces para operaciones posteriores en la misma sesi\u00f3n l\u00f3gica.<\/p>\n<h4 align=\"justify\">Protecci\u00f3n de copia de seguridad<\/h4>\n<p align=\"justify\">El directorio implementa borrados suaves, en lugar de eliminaciones duras, para usuarios y inquilinos para una f\u00e1cil recuperaci\u00f3n en caso de borrados accidentales por parte de un cliente. Si el administrador de su inquilino borra accidentalmente a los usuarios, puede deshacer y restaurar f\u00e1cilmente los usuarios eliminados.<\/p>\n<p align=\"justify\">Azure AD implementa copias de seguridad diarias de todos los datos y, por lo tanto, puede restaurar los datos de forma autoritaria en caso de cualquier supresi\u00f3n o corrupci\u00f3n l\u00f3gica. Nuestro nivel de datos emplea c\u00f3digos de correcci\u00f3n de errores, de modo que puede comprobar errores y corregir autom\u00e1ticamente determinados tipos de errores de disco.<\/p>\n<h4>M\u00e9tricas y monitores<\/h4>\n<p align=\"justify\">La ejecuci\u00f3n de un servicio de alta disponibilidad requiere m\u00e9tricas de nivel mundial y capacidades de monitoreo. Azure AD analiza e informa continuamente las m\u00e9tricas clave de salud de servicio y los criterios de \u00e9xito para cada uno de sus servicios. Desarrollamos y sintonizamos continuamente m\u00e9tricas, monitoreo y alertas para cada escenario, dentro de cada servicio Azure AD y en todos los servicios.<\/p>\n<p align=\"justify\">Si cualquier servicio Azure AD no funciona como se espera, inmediatamente tomamos medidas para restaurar la funcionalidad lo m\u00e1s r\u00e1pido posible. La pista m\u00e9trica m\u00e1s importante de Azure AD es la rapidez con que podemos detectar y mitigar un problema de cliente o sitio en vivo. Invertimos mucho en el monitoreo y las alertas para minimizar el tiempo de detecci\u00f3n (objetivo TTD: &lt;5 minutos) y la preparaci\u00f3n operativa para minimizar el tiempo para mitigar (objetivo TTM: &lt;30 minutos).<\/p>\n<h4>Operaciones seguras<\/h4>\n<p align=\"justify\">Empleamos controles operativos tales como autenticaci\u00f3n de m\u00faltiples factores (MFA) para cualquier operaci\u00f3n, as\u00ed como auditor\u00eda de todas las operaciones. Adem\u00e1s, utilizamos un sistema de elevaci\u00f3n just-in-time para conceder el acceso temporal necesario para cualquier tarea operativa bajo demanda en forma continua. <\/p>\n<p align=\"justify\">Para mas informaci\u00f3n les dejo un video sobre el tema que es super interesante. Saludos. Roberto Di Lello<\/p>\n<p> <iframe loading=\"lazy\" height=\"300\" allowfullscreen=\"allowfullscreen\" src=\"https:\/\/channel9.msdn.com\/Series\/Windows-Azure-Active-Directory\/Windows-Azure-Active-Directory-Cartoon\/player\" frameborder=\"0\" width=\"540\"><\/iframe>   <\/p>\n<p>Fuentes: <a title=\"https:\/\/azure.microsoft.com\/en-us\/resources\/videos\/what-is-active-directory\/?v=17.23h\" href=\"https:\/\/azure.microsoft.com\/en-us\/resources\/videos\/what-is-active-directory\/?v=17.23h\">What is Windows Azure Active Directory?<\/a> &amp; <a title=\"https:\/\/docs.microsoft.com\/en-us\/azure\/active-directory\/\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/active-directory\/\">Microsoft Azure Site<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Azure Active Directory (Azure AD) le permite administrar de forma segura el acceso a los&#8230;<\/p>\n","protected":false},"author":1,"featured_media":4291,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[303],"tags":[],"class_list":["post-3703","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure"],"_links":{"self":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3703"}],"version-history":[{"count":4,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3703\/revisions"}],"predecessor-version":[{"id":3789,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3703\/revisions\/3789"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/media\/4291"}],"wp:attachment":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}