close

Вход

Забыли?

вход по аккаунту

?

3. Основная часть

код для вставкиСкачать
 Введение
По мере развития компании у руководства обязательно возникают вопросы: создание максимально гибкой и эффективной системы управления предприятием, офисными площадками, создание единой системы документооборота, оперативного сбора информации и отчетов со складов и производственных площадок, централизация информационно-финансовых потоков и т.д. Правильное решение этих вопросов позволяет успешно управлять компанией в целом, делает её гибкой и динамично развивающейся.
Мировой опыт крупных компаний и корпораций говорит о том, что таким решением является создание корпоративной сети передачи данных. Такое решение может быть актуальным не только для крупных фирм.
Наличие у небольших организаций территориально разнесенных площадок автоматически ставит вопрос о построении единой офисной сети. Даже, к примеру, наличие одного склада у организации, не включенного в единую корпоративную сеть, делает работу предприятия менее эффективной. А сведение в единую информационную сеть данных работы менеджеров с разных площадок делает работу более оперативной, позволяет равномерно распределить нагрузку между объединенными офисами.
Современные IT-технологии позволяют создавать корпоративные сети на основе высоконадежных и защищенных сетей передачи данных.
Что получит предприятие при создании корпоративной сети или объединении офисных площадок: * Единое информационное пространство;
* Оперативность получения информации и возможность формирования консолидированных отчетов уровня предприятия;
* Централизация финансовых и информационных потоков данных;
* Возможность оперативного сбора и обработки информации;
* Снижение затрат при использовании серверных решений. Переход от решений для рабочих групп на решения уровня предприятия;
* Возможность обработки мультимедиа потоков данных между офисными площадками;
* Снижение затрат на связь между подразделениями фирмы, организация единого номерного пространства;
* Возможность организации системы видеонаблюдения на основе IP сети предприятия.
В зависимости от поставленной задачи и цели, способы создания локальной сети предприятия (корпоративной сети) могут быть разными. Чаще всего именно комбинация различных технологических решений позволяет добиться оптимального решения. У каждого из применяемых способов есть свои преимущества и недостатки. К примеру, объединение офисных локальных сетей в единую корпоративную сеть организации может осуществляться:
* С использованием беспроводных сетей передачи данных. Применяется при построении корпоративной сети между рабочими площадками, расположенными в близко размещенных строениях;
* С использованием Internet в качестве транспортной среды передачи данных, с применением технологии построения VPN туннелей;
* С использованием арендованных каналов передачи данных. Возможно построение сети с применением технологии построения VPN туннелей или без.
Но для того чтобы сеть правильно функционировала необходимо ее логически правильно построить, т.е. перенести реальную структуру предприятия на логику компьютерной сети. Соблюсти иерархию компании позволяет служба Active Directory Domain Services под управлением ОС Windows Server, которая задает логику сети в соответствии с реальной организацией предприятия.
Глава 1. Теоретическая часть
1.1 Компьютерные сети
Компьютерная сеть (вычислительная сеть, сеть передачи данных) - система связи компьютеров или компьютерного оборудования (серверы, маршрутизаторы и другое оборудование). Для передачи информации могут быть использованы различные физические явления, как правило - различные виды электрических сигналов, световых сигналов или электромагнитного излучения.
По типу функционального взаимодействия:
* Клиент-сервер
* Смешанная сеть
* Одноранговая сеть
* Многоранговые сети
Так как в предприятиях власть выстраивается в виде иерархии филиалов, дочерних компаний, отделов и т.п. компьютерная сеть такого предприятия должна быть многоранговой. Это позволяет перенести реальную структуру в логику компьютерной сети, что дает более эффективное управление, чем, скажем, в одноранговых сетях, где каждый пользователь логически имеет те же привилегии, что и остальные. В реальной жизни это не соответствует действительности, т.к. у каждого различные права, обязанности, доступ к ресурсам и т.д.
Организация компьютерной сети может выполняться различными способами. Например, используя различные сетевые операционные системы:
* На основе Windows
* На основе UNIX
* На основе NetWare
* На основе Cisco
Также сети различают по функциональному назначению:
* Сети хранения данных
* Серверные фермы
* Сети управления процессом
* Сети SOHO, домовые сети
Компьютерная сеть компании должна наиболее полно отображать ее логическую структуру, это позволит не только эффективно работать внутри сети, но и упрощает ее администрирование. Например, при добавлении нового отдела в структуру компании в правильно организованной сети это сделать намного проще, чем в сети, которая не поддерживает реальную логическую структуру этой компании.
1.2 Введение в Active Directory
Компонент Active Directory Domain Services (AD DS) и связанные с ним службы формируют основу корпоративных сетей Microsoft Windows. Они хранят данные о подлинности пользователей, компьютеров и служб, а, следовательно, их можно использовать для проверки подлинности пользователя или компьютера. Другими словами службы Active Directory Domain Services (AD DS) обеспечивают идентификацию и доступ Identity and Access (IDA) для корпоративных сетей.
Решение IDA необходимо для поддержки безопасности корпоративных ресурсов, в том числе файлов, электронной почты, приложений и баз данных. Инфраструктура IDA должна выполнять следующие задачи:
* Хранение информации о пользователях, группах, компьютерах и других объектах идентификации;
* Проверка подлинности объекта идентификации;
* Управление доступом;
* Обеспечение данных аудита.
Active Directory ("Активные директории", AD) - LDAP-совместимая реализация службы каталогов корпорации Microsoft для операционных систем семейства Windows NT. Active Directory позволяет администраторам использовать групповые политики для обеспечения единообразия настройки пользовательской рабочей среды, развёртывать программное обеспечение на множестве компьютеров через групповые политики или посредством System Center Configuration Manager (ранее Microsoft Systems Management Server), устанавливать обновления операционной системы, прикладного и серверного программного обеспечения на всех компьютерах в сети, используя Службу обновления Windows Server. Active Directory хранит данные и настройки среды в централизованной базе данных. Сети Active Directory могут быть различного размера: от нескольких сотен до нескольких миллионов объектов.
Представление Active Directory состоялось в 1999 году, продукт был впервые выпущен с Windows 2000 Server, а затем был модифицирован и улучшен при выпуске Windows Server 2003. Впоследствии Active Directory был улучшен в Windows Server 2003 R2, Windows Server 2008 и Windows Server 2008 R2 и переименован в Active Directory Domain Services. Ранее служба каталогов называлась NT Directory Service (NTDS), это название до сих пор можно встретить в некоторых исполняемых файлах.
В отличие от версий Windows до Windows 2000, которые использовали в основном протокол NetBIOS для сетевого взаимодействия, служба Active Directory интегрирована с DNS и TCP/IP. Для аутентификации по умолчанию используется протокол Kerberos. Если клиент или приложение не поддерживает аутентификацию Kerberos, используется протокол NTLM.
1.3 Структура и компоненты Active Directory
Структура Active Directory включает пять технологий. Эти технологии полностью реализуют идентификацию и доступ IDA:
* Доменные службы Active Directory (Active Directory Domain Services) - Идентификация. Проверяются подлинность и авторизация в сети, а так же поддерживается управление объектами с помощью групповой политики;
* Службы облегченного доступа к каталогам (Active Directory Lightweight Directory Services) - Приложения. Поддерживает множество хранилищ данных в одной системе, чтобы каждое приложение можно было развернуть с собственным каталогом, схемой, назначенным облегченным протоколом доступа к каталогам LDAP (Lightweight Directory Access Protocol), портами SSL и журналом событий приложений;
* Службы сертификации Active Directory (Active Directory Certificate Services) - Доверие. Организации могут использовать службы сертификации AD CS в инфраструктуре открытых ключей PKI (Public Key Infrastructure), чтобы создать центр сертификации для выдачи цифровых сертификатов, которые привязывают объект идентификации пользователя, устройства либо службы к соответствующему частному лицу;
* Службы управления правами Active Directory (Active Directory Rights Management Services) - Целостность. Предоставляют технологию защиты информации, с помощью которой можно реализовать шаблоны устойчивых политик использования, задающих разрешенное и неавторизованное применение в сети, вне ее, а так же внутри и вне периметра брандмауэра;
* Службы федерации Active Directory (Active Directory Federation Services) - Партнерские отношения. С помощью служб AD FS организация может расширить инфраструктуру IDA на множестве платформ, включая среды Windows и другие, а также обеспечить для доверенных партнеров защиту прав идентификации и доступа вне периметра безопасности.
Структура AD DS хранит свои объекты идентификации в каталоге (хранилище данных) на контроллерах домена. Каталог состоит из одного файла Ntds.dit, который по умолчанию находится в папке %SystemRoot%Ntds.dit на контроллере домена. База данных состоит из нескольких разделов: схемы, конфигурации, глобального каталога. Контроллеры домена это серверы, играющие роль AD DS - в частности, запускающие службу Центр распространения ключей Kerberos, KDC (Kerberos Key Distribution Center).
Домен представляет собой административную единицу, внутри которой совместно используются определенные возможности и характеристики.
Лес это набор из одного либо нескольких доменов Active Directory. Первый установленный в лесу домен называется корневым. Лес содержит единственное описание сетевой конфигурации и один экземпляр каталога схемы. Это единственный замкнутый экземпляр каталога, т.е. данные не реплицируются за его приделы. Поэтому лес задает параметр безопасности.
DNS в лесу содержит деревья леса. Если домен является дочерним для другого домена, то эти два домена интерпретируются как дерево.
Возможности домена Active Directory зависят от его функционального уровня. Этот параметр дает возможность ввести дополнительные компоненты AD DS уровня домена, либо леса. Существует три функциональных уровня домена:
* Windows 2000
* Windows 2003
* Windows 2008
А так же два функциональных уровня леса:
* Microsoft Windows Server 2003
* Microsoft Windows Server 2008
База данных Active Directory является иерархической. Объекты в хранилище данных можно собирать в контейнеры. Одним из типов контейнеров является класс объектов container.
Сайт (или узел) Active Directory - это объект, представляющий часть предприятия с хорошей сетевой коммуникацией. Сайт создает периметр репликации и использования служб. Контроллеры домена внутри сайта реплицируют изменения в течение нескольких секунд.
Глава 2. Практическая часть
2.1 Работа с Active Directory
Работа с компонентом Active Directory Domain Services в сетевых операционных системах семейства Windows выполняется либо через Server Manager, либо программно с использованием специальных библиотек. Данные библиотеки находятся в хранятся в платформе .Net Framework и располагаются в следующих пространствах имен:
* System.DirectoryServices;
* System.DirectoryServices.ActiveDirectory.
Так как программа разрабатывается именно для ОС Windows, рационально использовать MS Visual Studio. Языком разработки является C#, т.к. его функционала достаточно для текущего проекта. Пространство имен System.DirectoryServices обеспечивает простой доступ к доменным службам Active Directory из управляемого кода. Это пространство имен содержит два класса компонентов: DirectoryEntry и DirectorySearcher, - в которых используется технология ADSI (Active Directory Services Interfaces - интерфейсы служб Active Directory). ADSI - это набор интерфейсов, предоставляемых Microsoft для работы с различными поставщиками сетевых служб. ADSI дает администратору возможность достаточно легко находить нужные ресурсы в сети независимо от ее размера, а также выполнять различные задачи управления ресурсами.
Классы в данном пространстве имен могут использоваться с любыми поставщиками доменных служб Active Directory. Текущими поставщиками являются IIS (Internet Information Services), LDAP (Lightweight Directory Access Protocol), NDS (Novell NetWare Directory Service) и WinNT.
ADSI представляет собой единый интерфейс программирования для доменных служб Microsoft Active Directory, через который обеспечивается взаимодействие приложений с различными папками в сети. С помощью ADSI можно создавать приложения, выполняющие такие стандартные процедуры, как резервное копирование баз данных, доступ к принтерам, администрирование учетных записей пользователей. Более подробная схема взаимодействия Active Directory с элементами компьютерной сети в приложении А.
Доменные службы Active Directory используют древовидную структуру. Каждый узел этой структуры содержит набор свойств. С помощью данного пространства имен можно перемещаться по дереву, выполнять в нем поиск и вносить изменения, а также просматривать и записывать свойства узла.
Класс DirectoryEntry инкапсулирует узел или объект иерархии доменных служб Active Directory. Этот класс используется для привязки к объектам, считывания свойств и обновления атрибутов. Вместе со вспомогательными классами DirectoryEntry обеспечивает поддержку средств управления жизненным циклом и методов перехода, включая создание, удаление, переименование, перемещение и перечисление дочерних узлов.
Класс DirectorySearcher используется для выполнения запросов по иерархии доменных служб Active Directory. LDAP - единственный системный поставщик среди интерфейсов ADSI (Active Directory Service Interfaces), поддерживающий функцию поиска.
Операция поиска в иерархии доменных служб Active Directory с помощью DirectorySearcher возвращает экземпляры класса SearchResult, которые содержатся в экземпляре класса SearchResultCollection.
2.2 Написание основного кода
Программа разрабатывается на основе технического задания, предоставленного заказчиком (приложение Б). На основе технического задания определяются цели и задачи разработки проекта. Иерархия целей и задач представлена в приложении В. Главной целью является разработка приложения "Active Directory Program". Можно выделить следующие подцели: реализация методов и создание интерфейса программы.
После определения целей и задач необходимо рассмотреть основной функционал программы. В соответствии с техническим заданием программа должна автоматизировать перенос структуры компании из входного файла на контроллер доменов. Функциональная диаграмма предоставлена в приложении Г.
На основе функциональной диаграммы можно представить будущую структуру программы, которая позволит логически разбить отдельные части программы, реализующие различный функционал. На основе технического задания в программе должны быть модули, реализующие чтения входного файла, временное хранилище структуры предприятия, перенос структуры на контроллер доменов, а также дополнительные модули. Модульная структура программы представлена в приложении Д.
Теперь, когда логическая структура программы представлена наглядно и все технические требования учтены можно приступить непосредственно к написанию кода.
Для чтения файла, созданного в MS Excel, подключим пространство имен для работы с файлами формата *.lsx, *.xlsx:
using Microsoft.Office.Interop.Excel;
Для чтения Excel-файла нам необходимо создать следующие экземпляры классов:
Application xlApp = null; // Приложение Excel
Workbook xlWorkBook = null; // Книга Excel
Worksheet xlWorkSheet = null; // Лист Excel
Данные классы позволяют запустить Excel и открыть файл, который является книгой, состоящих из листов. Входной файл является книгой, состоящей только из одного листа. Лист содержит 6 столбцов, которые соответствуют полям: "Структурное подразделение", "Должность/профессия", "Таб. №", "Ф.И.О.", "Кол-во ед.", "Ведомость".
Создадим структуру, которая позволит хранить строку из файла, как элемент с 6 полями для удобного обращения к ним.
public struct record
{
public string org_department; // Структурное подразделение
public string job; // Должность/профессия
public string tab_number; // Таб. №
public string name; // Ф.И.О.
public string amount; // Кол-во ед.
public string statement; // Ведомость
}
Теперь необходимо только считать строку из файла и правильно заполнить структуру record. Для этого будем использовать следующий метод:
public string GetValue(int Row, int Column)
{
object obj = xlWorkSheet.UsedRange.get_Range
(ParseCoor(Row, Column - 1), misValue).Value2;
if (obj == null) return ""; else return obj.ToString(); }
Данный метод позволяет считать данные из указанной строки и столбца. Если координаты указывает на пустой элемент, метод вернет пустую строку. Используя этот метод достаточно пройти по всему файлу, считывая каждую строку и занося каждый столбец в соответствующие поля структуры. В результате считывания файла получается список структур, которые имеют индексный доступ и доступ по полям.
Но хранить данные в простом списке не рационально, так как список не имеет иерархической структуры. Для этого следует использовать дерево. При считывании очередной строки следует ее добавлять в дерево в качестве очередного узла.
В качестве дерева будем использовать B-дерево, в котором у каждого узла может быть только один родитель, но хоть сколько сыновей. Такое дерево идеально подходит для хранения иерархии власти в компании.
Для реализации дерева необходимы следующие классы:
1) BNode - реализуют отдельный узел дерева. Хранит в себе ссылки на своих сыновей и указатель на своего родителя. Так как в текущей реализации логически узел является отделом предприятия, то используются дополнительные поля: название отдела, список работников отдела;
2) BTree - реализует дерево. Класс хранит в себе указатель на корень дерева и количество узлов;
3) BTreeIterator - реализует итератор для не рекурсивного прохождения дерева. Так как работать с каждым отделом приходится по отдельности, рекурсивные методы не рационально использовать из-за большого количества отделов и сложности вычислений.
После того как дерево содержит все данные из файла (отделы и сотрудники) и полностью совпадает с реальной иерархической структурой компании, можно переносить данные на контроллер доменов. Для этого используем классы из библиотек .Net Framework.
Основными методами будут являться добавление пользователя (сотрудника) CreateUserAccount и добавление подразделения (отдела) CreateOU. Код этих методов представлен в приложении Е.
2.3 Тестирование программы
Тестирование программы выполняется на виртуально машине с установленной операционной системой Windows Server 2008. В системе включен компонент Active Directory Domain Services, а также DNS, который необходим для работы с AD. Создает пустой домен, в который и будет происходить перенос структуры из файла. Также установлен MS Excel, который необходим для чтения файла. Программа тестировалась при работе с тремя различными файлами: пробный (10 записей), контрольный (200 записей), реальный (более 1000 записей). Реальный файл был выдан заказчиком и является конфиденциальной информацией компании ОАО "Ростелеком".
При работе со всеми файлами программа показывает хорошую устойчивость, т.е. при возникновении ошибок выводится информация и продолжается обработка данных. Также при переносе данных из структуры на контроллер доменов происходит вывод ошибок, но обработка не прекращается. Если в строке файла будет допущена ошибка, которая не позволяет правильно работать с ней строка будет пропущена, а информация об ошибочной строке будет выведена.
При добавлении уже существующих отделов не происходит пересоздание самого отдела и всех его сотрудников, т.к. это увеличивает время работы программы. Если существуют люди с полностью одинаковыми именами, они получат различные логины. Работа программы напрямую зависит от мощности компьютера. Процессор необходим для сложных вычислений, а оперативная память для хранения структуры компании. Время работы программы с переносом 1000 записей занимает на мощном компьютере (Core i7 4x3.5 GHz, DDR3 8 Gb) меньше 1 минуты, на устаревшем компьютере (Intel PD 915 2x2.8 GHz, DDR2 2 Gb) более 5 минут, учитывая, что тест проводился на виртуальной машине.
Заключение
Правильная организация корпоративной сети позволяет более эффективно работать с ней, администрировать ее, а также при необходимости вносить изменения. Программа "ActiveDirectoryProgram" позволяет легко переносить структуру компании из файла, который могут составлять обычные пользователи, на контроллер домена сети, что, несомненно, облегчает работу системным администраторам, избавляя их от необходимости вручную добавлять каждого нового сотрудника компании или только что открывшийся отдел, сохраняя при этом логику структуры компании.
Список использованных источников
1. Дэн Холме "Учебный курс Microsoft. Настройка Active Directory Windows Server 2008″;
2. Библиотека MSDN. Пространство имен - System.DirectoryServices. Ссылка http://msdn.microsoft.com/ru-ru/library/9t2667d1;
3. Библиотека MSDN. Пространство имен - System.DirectoryServices.ActiveDirectory. Ссылка http://msdn.microsoft.com/ru-ru/library/wwzcae1f.
7
Документ
Категория
Без категории
Просмотров
117
Размер файла
56 Кб
Теги
часть, основная
1/--страниц
Пожаловаться на содержимое документа