Александр Левыкин подготовил пошаговую инструкцию по настройке аутентификации Active Directory для Navision Attain (3.60).
Александр Левыкин, dumf@mazzy.ru
Аутентификация Active Directory
Требования
Настройка
Рекомендации
Более подробную информации о системе безопасности Navision Attain можно получить из документов:
- «Архитектура Navision», глава № 5 «Обеспечение безопасности в системе Navision», файл RURU_Navision 360_Arc.pdf на продукт CD.
- «Установка и администрирование: Microsoft SQL Server Option», глава № 4 «Система безопасности», файл ruruisql.pdf на продукт CD.
1. Требования
Navision Attain работает с двумя типами аутентификации.
- Аутентификация БД
- Аутентификация Windows
Navision Attain поддерживает две СУБД.
- Navision Server
- MS SQL Server 2000
Речь пойдет только об аутентификации Windows для системы состоящей из:
- Клиента Navision Attain для MS SQL Server 2000 (файл finsql.exe ).
- MS SQL Server 2000 (все версии).
- Клиентской операционной системы Windows 2000 / Windows XP.
- Серверной операционной системой Windows Server 2000 / Windows Server 2003.
В системе должен быть настроен AD , клиентские и серверные машины должны в него входить.
2. Настройка
Готовим MS SQL Server 2000
Необходимо добавить extended stored procedure в базу MASTER на вашем MS SQL Server 2000, который будет использоваться как СУБД для вашей базы данный Navision Attain . Процедура называется xp_ndo_enumusersids, она обеспечивает возможность Windows аутентификации для Navision Attain.
Инструкция и сама процедура находятся в директории SQL_ESP на продукт диске.
Для того что бы добавить extended stored procedure надо выполнить следующие действия:
- Необходимо извлечь файл xp_ndo.dll из само-распоковывающегося архива xp_ndp.exe и скопировать файл в директорию BINN вашего MS SQL Server 2000, обычно эта директория находится C:\Program Files\Microsoft SQL Server\MSSQL\Binn.
- Далее, заходим в Enterprise Manager вашего MS SQL Server 2000 с правами достаточными для создания extended stored procedure . Открываем базу данных MASTER и добавляем extended stored procedure с именем xp_ndo_enumusersids и файлом библиотеки xp_ndo.dll хранящейся в директории BINN.

Хранимые процедуры в базе данных master
- Так же, необходимо убедится что у созданной вами xp_ndo_enumusersids есть необходимые права права на MS SQL Server 2000. Для этого проверьте есть ли у вашей процедуры права на выполнение для роли public. Откройте свойства (properties), нажмите кнопку Permissions. Убедитесь что все как на картинке.

Права на хранимую процедуру в Enterprise Manager
Теперь все готово для заведения Windows logon в Navision Attain.
Прописываем пользователей в Navision Attain
Теперь необходимо открыть базу данных. Тут возможны варианты. Но для простоты приведу один. Создаете нового пользователя или используете уже существующего в MS SQL Server 2000, даете права public на базу данных вашего Navision Attain. Запускаете finsql.exe.
Если у вас использовались Database Logins то, необходимо зайти под пользователем имеющим роль SUPER или ролью с доступом достаточным для создания новых пользователей.
Заходим в меню Open Database ( File->Database->Open ).

Параметры базы данных в Navision
Вводите Server Name вашего сервера MS SQL 2000.
Указываете Database Name вашей базы данных Navision Attain.
Выбираете метод аутентификации:
- Database Server Authentication (выбираем этот метод)
- Windows Authentication (не требует ввода логина, используется тот под которым вы регистрировались в сети)
Указываем User ID, вводим логин вашего пользователя.
Указываем Password.
Давим кнопку Ok . Если все нормально, то теперь вы получили доступ к базе данных и можно начинать вводить пользователей.
Возможные проблемы
- Не найден сервер базы данных.
Проверьте правильность написания имени и доступность сервера. - Комбинация User ID и password не верна.
Проверьте, правильно ли вы ввели логин и пароль. - Login failed
Проверьте, есть ли у этого пользователя права public на базу данных. - База данных «имя вашей базы данных» не существует на сервере «имя сервера».
Проверьте, правильно вы написали название базы данных.
Убедитесь в наличии базы данных на вашем MS SQL Server 2000, к которому вы подключаетесь.
И так вы открыли базу данных вашего Navision Attain.
Настройки безопасности, к которым относятся аккаунты пользователей, находятся в Меню Tools->Security

Настройки безопасности в Navision
В этом меню имеется database Logins и Windows Logins, нас интересует Windows Logins. Открываем, смотрим.

Navision Windows Logins
В открытом окне, выбираем пустую строку и давим LookUp. Появляется Окно Windows Users & Groups , в это окно Attain вытянет список пользователей и групп заведенных в Active Directory. Выбираете аккаунт пользователя, давите кнопку Ok. Выбранный аккаунт, перенесется в окно Windows logins.
Осталось последнее, дать права на Navision Attain. Давим кнопку Roles, открывается, форма Roles.

Роли в Navision
В этой форме перечислены все роли выданные этому аккаунту. В поле Role ID кнопкой LookUp открывается список ролей заведенных в системе.
После заведения нового пользователя Navision Attain автоматически проведет синхронизацию с MS SQL Server 2000 и создаст на нем пользователя с правами public на вашу базу данных Attain.
Пункт меню Tools -> Security -> Synchronize, предназначен для проведения синхронизации. Синхронизация проверяет список Windows Login, заведенных в Attain со списком Windows User заведенных на MS SQL Server 2000 и имеющим доступ к базе Attain.
Если в списке пользователей Attain есть пользователь, а на MS SQL нет, то пользователь автоматически создастся.
Если же на MS SQL пользователь заведен, а в Attain его нет, вам будет предложено получить пользователя в Attain. НЕ ДЕЛАЙТЕ ЭТОГО!!! Пользователь будет удален с MS SQL Server.
Теперь осталось только выйти из Attain и можно использовать Windows login. Для этого:
зарегистрируйтесь в Active Directory, под логином пользователя заведенного в Attain.
- зарегистрируйтесь в Active Directory, под логином пользователя заведенного в Attain.
- запустите finsql.exe
- Выберете меню Open Database ( File->Database->Open ).
Укажите необходимые:
- Server Name вашего сервера MS SQL 2000,
- Database Name вашей базы данных Navision Attain,
- Выберите метод аутентификации Windows Authentication.
Нажмите кнопку Ok. И вы войдете в Navision Attain под логином вашего пользователя Active Directory с правами в Attain, определенными в ROLES.
3. Рекомендации.
Все бы хорошо, но есть несколько нехороших моментов.
Navision Attain версии 3.7 и всех более ранних не работает с группами пользователей в Active Directory. То есть если вы попытаетесь вывести в список Windows Login группу из AD, вам будет позволено это сделать, но участники группы, не прописанные в Attain, войти, не смогут.
Следующая бяка. Если у вас есть трасты между доменами в AD, вы так же не сможете использовать пользователей соседнего домена.
Далее, если в свойствах вашего MS SQL 2000, в закладке Processor стоит галочка "Use Windows NT Fibers", то аутентификация Windows работать не будет. Будет, повторятся ошибка «Комбинация User ID и password не верна». Это ошибка MS SQL Server 2000 она будет исправлена в 4-м сервис паке. http://support.microsoft.com/default.aspx?scid=kb;en-us;830382
Александр Левыкин, dumf@mazzy.ru