Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Info | ||
---|---|---|
| ||
Файлы для indeed AM Server расположены: indeed AM\Indeed Access Manager Server\<Номер версии>\
|
Установка
Info | ||
---|---|---|
| ||
После установки сервера Indeed AM будет предложено выполнить настройку с помощью мастера конфигурации для этого не отключайте параметр "Запустить мастер настройки Indeed EA". |
- Выполнить установку Indeed AM Server через запуск инсталлятора IndeedAM.Server-x64.ru-ru.msi.
Scroll Pagebreak Добавить привязку https в настройках Default Web Site в IIS Manager.
Info title Информация Indeed AM Server является Web приложением, которое работает на базе IIS, в процессе установки для него по умолчанию включается обязательно требование SSL в настройках, что в свою очередь требует включенной привязки https.
Если вы не намерены использовать протокол https, необходимо отключить требование SSL в настройках IIS для easerver и в конфигурационном файле сервера (C:\inetpub\wwwroot\easerver\Web.config) изменить значение параметра "requireHttps" на "false".
Code Block language xml title Пример <appSettings> <add key="requireHttps" value="false" /> </appSettings>
- Запустите IIS Manager и раскройте пункт Сайты (Sites).
- Выберите сайт Default Web Site и нажмите Привязки (Bindings) в разделе Действия (Actions).
- Нажмите Добавить (Add):
- Тип (Type) - https.
- Порт (Port) - 443.
- Выберите SSL-сертификат (SSL Certificate).
Сохраните привязку.
Настройка с помощью мастера конфигурации
Note | ||
---|---|---|
| ||
Мастер конфигурации по умолчанию запускается автоматически после установки Indeed AM Server, если запуск не был отключен пользователем. Для запуска мастера вручную откройте файл: C:\Program Files\Indeed EA\Wizard\EA.Server.Wizard.exe |
Info | ||
---|---|---|
| ||
В мастер включена автоматическая проверка введенных данных, в случае успешного ввода - поля будут подсвечены зеленым цветом, и вы сможете перейти к следующему шагу, если данные введены некорректно, то поля будут подсвечены красным, и вы не сможете перейти к следующему шагу пока не укажете корректные данные. |
- На шаге "Перед началом работы" нажмите “Далее”.
- На шаге "Восстановление настроек" нажмите “Далее”.
- На шаге "Каталог пользователей" укажите следующие параметры:
- Имя домена (FQDN) - Укажите полное имя домена, например: domain.local.
- Сервисная учетная запись - Укажите сервисную учетную запись, обладающую правами доступа к пользовательскому каталогу. Нажмите кнопку "Изменить" и укажите требуемые данные учетной записи.
- LDAP путь к каталогу - Укажите путь к каталогу с пользователями. Нажмите кнопку "Выбрать" и выберете требуемый контейнер или домен целиком.
- На шаге "Хранилище данных" выберете тип хранилища Active Directory.
- Имя домена (FQDN) - Укажите полное имя домена, например: domain.local.
- Сервисная учетная запись - Укажите сервисную учетную запись, обладающую полными правами на контейнер, который будет использоваться в качестве хранилища данных Indeed. Нажмите кнопку "Изменить" и укажите требуемые данные учетной записи.
- LDAP путь к каталогу - Укажите путь к каталогу с пользователями. Нажмите кнопку "Выбрать" и выберете требуемый контейнер или домен целиком.
Шаг "Ключ шифрования". Выберете алгоритм шифрования, нажмите "Сгенерировать" и нажмите "Далее".
Note title Информация Настоятельно рекомендуется выполнить резервную копию ключа шифрования и сохранить в защищенном месте.
На шаге "Журнальный сервер" укажите следующие данные:
Info title Информация Чтобы при тестировании соединения не возникало ошибок, требуется полностью настроенный лог-сервер, с настроенной базой данных или установленным компонентом EventLog. Если журнальный сервер не готов к работе, вы можете пропустить этот шаг.
- Адрес журнального сервера - URL для подключения к серверу в формате http(s)://полное_dns_имя_сервера/ils/ , например: http://logserver.demo.local/ils/
- Сертификат - Выберете сертификат для настройки двухстороннего TLS соединения.
- Журналируемое поле объекта каталога - Укажите формат в котором будет осуществляться логирование имени пользователя.
Журналируемое поле компьютера - Укажите формат в котором будет осуществляться логирование поля "Компьютер".
Info title Информация Для логирования в формате DNS потребуется дополнительная настройка
- Шаг "Сессионный секрет". Сгенерируйте секрет для подписи токена, для этого нажмите "Сгенерировать". После генерации нажмите "Далее".
Шаг "Шифрование файла". Вы можете выполнить шифрование настроек конфигурационного файла.
Note title Информация В целях повышения безопасности рекомендуется выполнить шифрование конфигурационного файла.
Шаг "Подтверждение". Убедитесь в корректности указанных данных и нажмите "Применить".
Note title Информация Рекомендуется сделать резервную копию конфигурационного файла, по умолчанию параметр "Сохранить резервную копию параметров конфигурации" активен.
- Шаг "Результаты". Осуществляется проверка настроек и тестирование подключения к Indeed AM Server.
Настройка администратора системы
Note | ||
---|---|---|
| ||
Пользователь, который указывается в качестве администратора системы должен находится в пользовательском каталоге. |
На шаге "Администратор системы" задайте учетную запись администратора Indeed. Указанной учетной записи будут выданы первичные права администратора системы.
Info title Информация Для настройки администратора требуется установленный Indeed AM Windows Password, так как при выдаче первичных прав указанному пользователю, осуществляется аутентификация на сервере Indeed AM
- На шаге "Результаты" отображается статус настройки конфигурационного файла и статус настройки администратора системы.
Ручная настройка системы
Редактирование конфигурационного файла
Info | ||
---|---|---|
| ||
Для сохранения изменений в конфигурационном файле приложения, требуется запустить редактор с правами администратора. Ошибки, возникшие при развертывании сервера AM ( Например ошибка в конфигурационном файле ), будут логироваться исходя из настроек LogServer. Для генерации ключей шифрования рекомендуется использовать утилиту AM.KeyGen.exe, выбрав необходимый алгоритм из предложенного списка. |
Note | ||
---|---|---|
| ||
Если в пароле для сервисных пользователей используются следующие символы: &, ", <, пробел , то пароль следуют указывать так: Символ “амперсанд” (&) - При указании пароля для пользователя символ требуется заменить на: & Пример: password="Q1q2E3e4&" Символ “двойные кавычки” (") - При указании пароля для пользователя символ требуется заменить на: " Пример: password="Q1q2E3e4"" Символ “меньше” (<) - При указании пароля для пользователя символ требуется заменить на: < Пример: password="Q1q2E3e4<" |
- Откройте конфигурационный файл сервера Web.config (C:\inetpub\wwwroot\easerver\Web.config).
Добавить секретный ключ для подписи токена для параметра "secretKey" тега "logonSettings". Параметр "secretKey" используется для создания токена пользователя в формате "jwt".
Code Block language xml title Пример <logonSettings secretKey="67d7e6caec61d61239dc0b05f86063ed899931b581fa1ed8140d7843b320fe02"/>
Задать каталог пользователя системы, для этого необходимо отредактировать параметры в теге adUserCatalogProvider:
- id - произвольный уникальный идентификатор каталога.
- serverName - имя домена Active Directory, в котором находится каталог.
- containerPath - путь к контейнеру в виде Distinguished Name или весь домен, если для хранения пользователей используется весь домен.
- userName- имя сервисной учетной записи для подключения к каталогу пользователей.
- password - пароль сервисной учетной записи каталога пользователей в AD.
Code Block language xml title Пример <adUserCatalogProviders> <adUserCatalogProvider id="UserId" serverName="indeed-id.local" containerPath="DC=indeed-id,DC=local" userName="IndeedCatalogUser" password="Q1q2E3e4"/> </adUserCatalogProviders>
3.1. Настройка нескольких пользовательских каталогов.
Указать корневой идентификатор провайдера работы с каталогом, необходимо отредактировать атрибут rootUserCatalogProviderId в теге userCatalogProviderSettings.
Infonote title Информация Если настройка При использовании нескольких пользовательских каталогов осуществляется в уже используемой системе Indeed (После выдачи первичных прав для администратора системы), и изменяется расположение администратора системы или префикс заданный в параметре "accessControlAdminSettings" , то потребуется удалить выданные ранее права и выполнить повторный запуск утилиты первичной конфигурации.
Для удаления прав необходимо удалить все вложенные объекты из контейнера CN=AccessGroupMember, расположенного в контейнере системы Indeed.
в параметре rootUserCatalogProviderId указывается общий идентификатор каталогов, заданный в параметре id тега orUserCatalogProvider.
- rootUserCatalogProviderId - задать значение, которое уже было задано в тэге adUserCatalogProvider в атрибуте id.
Code Block language xml title Пример <userCatalogProviderSettings rootUserCatalogProviderId="UserId">
- Задать хранилище данных системы. Для хранилища данных в Active Directory редактируем параметр rootDbContextId в теге dbContextSettings и параметры в тэге adDbContext.
- rootDbContextId - задать произвольно уникальное значение идентификатора хранилища.
- id - задать значение, которое уже было задано в тэге rootDbContextId.
- path - LDAP путь к контейнеру с данными в Active Directory. Рекомендуется указывать в формате "serverless binding"(Без жесткой привязки к серверу).
- userName - имя сервисной учетной записи для подключения к хранилищу.
- password - пароль сервисной учетной записи каталога пользователей в AD.
Code Block language Info title Информация Если контейнеры находятся в разных доменах/лесах, то требуется создать пользователя для чтения данных с контейнера в своем домене/лесе.
a. Добавьте внутри тега adUserCatalogProviders строки для подключения к контейнерам.
Code Block language xml title Пример <userCatalogProviderSettings<dbContextSettings rootUserCatalogProviderIdrootDbContextId="userIDRepository"> <userCatalogProviders> <sqlUserCatalogProviders></sqlUserCatalogProviders> <adUserCatalogProviders> <adUserCatalogProvider <adDbContexts> <adDbContext id="Ad1IDRepository" serverNamepath="demoLDAP://indeed-id.local" containerPath="/OU=Indeed_Users AM 7,DC=demoindeed-id,DC=local" userName="demo\ind-userIndeedDataUser" password="Q1q2E3e4" /> <adUserCatalogProvider id="Ad2" serverName="demo.local" containerPath="OU=inDomainUsers,DC=demo,DC=local" userName="demo\ind-user" password="Q1q2E3e4" /> <adUserCatalogProvider id="Ad3" serverName="inforest.demo.local" containerPath="OU=UsersInForest,DC=inforest,DC=demo,DC=local" userName="inforest\cataloguser1" password="Q1q2E3e4" /> <adUserCatalogProvider id="Ad4" serverName="newforest.local" containerPath="OU=Usersoutforest,DC=newforest,DC=local" userName="newforest\cataloguser2" password="Q1q2E3e4" /> </adUserCatalogProviders> </userCatalogProviders>
b. Добавьте внутри тега orUserCatalogProviders тег orUserCatalogProvider с параметром id.
Note title Информация Значение параметра id должно соответствовать значению заданному в параметре rootUserCatalogProviderId
c. Добавьте внутри тега orUserCatalogProvider тег userCatalogProviders. Внутри тега userCatalogProviders добавьте теги userCatalogProvider с параметром id, в котором указывается идентификатор пользовательского контейнера и ignoreExceptions со значением true, данный параметр игнорирует ошибку подключения к каталогу, если данный каталог не доступен.
Code Block language xml title Пример <orUserCatalogProviders> <orUserCatalogProvider id="user"> <userCatalogProviders> <userCatalogProvider id="Ad1" ignoreExceptions="true" /> <userCatalogProvider id="Ad2" ignoreExceptions="true" /> <userCatalogProvider id="Ad3" ignoreExceptions="true" /> <userCatalogProvider id="Ad4" ignoreExceptions="true" /> </userCatalogProviders> </orUserCatalogProvider> </orUserCatalogProviders>
Указать корневой идентификатор провайдера работы с каталогом, необходимо отредактировать атрибут rootUserCatalogProviderId в теге userCatalogProviderSettings.
rootUserCatalogProviderId - задать значение, которое уже было задано в тэге adUserCatalogProvider в атрибутеidInfo title Информация При использовании нескольких пользовательских каталогов в параметре rootUserCatalogProviderId указывается общий идентификатор каталогов, заданный в параметре id тега orUserCatalogProvider.
</adDbContexts> </dbContextSettings>
Задать ключ шифрования данных системы. Редактируем параметры в теге encryptionSettings.
cryptoAlgName - указать использованный алгоритм шифрования.
cryptoKey - значения ключа, сгенерированного утилитой.
certificateThumbprint - Thumbprint сертификата, которым зашифрован ключ (чтобы не учитывать - нужно удалить атрибут).
Code Block language xml title Пример <encryptionSettings cryptoAlgName="Aes" cryptoKey="90ce7dbc3ff94a7867abc6672c23cce2c3717d38af42f04293130cb68a34ecc2"/>
Задать администратора системы. Редактируем параметр userId тега accessControlAdminSettings.
- userId - идентификатор пользователя в формате: “<Идентификатор каталога><нижнее подчеркивание><GUID Администратора Системы>”.
Note title Примечание Пользователь должен находится внутри каталога пользователей.
При использовании нескольких пользовательских контейнеров для <Идентификатор каталога> указывается id контейнера в котором находится администратор системы.
Code Block language xml title Пример <accessControlAdminSettings userId="UserId_84e9ccd9-73a2-43c7-abc6-604a16902037"/>
Info title Информация Получить GUID можно с помощью команды PowerShell. Предварительно необходимо установить компонент Remote Server Administration Tools:
Code Block language powershell title Пример Get-ADUser YouUserName -Properties * | Select ObjectGUID
Задаем url для подключения к лог серверу. Редактируем тег logServer.
URL - url для подключения к log серверу в формате http(s)://полное_dns_имя_сервера/ils/api.
Note title Примечание Если используется несколько серверов, указываем адрес балансировщика нагрузки.
- CertificateThumbprint- если закрытый ключ в реестре, а сертификат в хранилище компьютера.
- CertificateFilePath- если ключевая пара в pfx.
- CertificateFilePassword- пароль от pfx.
Code Block | ||||
---|---|---|---|---|
| ||||
<logServer Url="http://log.indeed-id.local/ils/api/" CertificateThumbprint="" CertificateFilePath="" CertificateFilePassword=""/> |
Настройка первичной конфигурации
Note | ||
---|---|---|
| ||
Пользователь, который указывается в качестве администратора системы должен находится в пользовательском каталоге. |
- Открыть для редактирования файл EA.Server.AccessControlInitialConfig.exe.config.
Редактировать атрибут key - параметр value необходимо поставить в значение true, если для авторизации мы хотим использовать Windows Token.
Если сервер находится не в домене, есть вариант использовать один из следующих провайдеров: windows password, emailOTP, smsOTP. Для этого value должно быть в положении false.Code Block language xml <appSettings> <add key="eaServerUrl" value="http://192.168.1.2/easerver/"/> <add key="isWindowsAuth" value="true"/> </appSettings>
- Запустить на доменной машине утилиту EA.Server.AccessControlInitialConfig.exe под пользователем, которого необходимо сделать администратором системы и который прописан в качестве администратора в тэге accessControlAdminSettings.
Image Added
Настройка нескольких пользовательских каталогов
Note | ||
---|---|---|
| ||
Если настройка нескольких каталогов осуществляется в уже используемой системе Indeed (После выдачи первичных прав для администратора системы), и изменяется расположение администратора системы или префикс заданный в параметре "accessControlAdminSettings" , то потребуется удалить выданные ранее права и выполнить повторный запуск утилиты первичной конфигурации. Для удаления прав необходимо удалить все данный из таблицы DbAccessGroupMembers, расположенной в базе данных системы Indeed. |
Info | ||
---|---|---|
| ||
Если контейнеры находятся в разных доменах/лесах, то требуется создать пользователя для чтения данных с контейнера в своем домене/лесе. |
- Добавьте внутри тега adUserCatalogProviders строки для подключения к контейнерам.
Code Block | ||||
---|---|---|---|---|
| ||||
<userCatalogProviderSettings rootUserCatalogProviderId=" |
- rootDbContextId - задать произвольно уникальное значение идентификатора хранилища.
- id - задать значение, которое уже было задано в тэге rootDbContextId.
- path - LDAP путь к контейнеру с данными в Active Directory. Рекомендуется указывать в формате "serverless binding"(Без жесткой привязки к серверу).
- userName - имя сервисной учетной записи для подключения к хранилищу.
- password - пароль сервисной учетной записи каталога пользователей в AD.
language | xml |
---|---|
title | Пример |
user"> <userCatalogProviders> <sqlUserCatalogProviders></sqlUserCatalogProviders> <adUserCatalogProviders> <adUserCatalogProvider id="Ad1" serverName="demo.local" containerPath="OU=Indeed_Users,DC=demo,DC=local" userName="demo\ind-user" password="Q1q2E3e4" /> <adUserCatalogProvider id="Ad2" serverName="demo.local" containerPath="OU=inDomainUsers,DC=demo,DC=local" userName="demo\ind-user" password="Q1q2E3e4" /> <adUserCatalogProvider id="Ad3" serverName="inforest.demo.local" containerPath="OU=UsersInForest,DC=inforest,DC=demo,DC=local" userName="inforest\cataloguser1" password="Q1q2E3e4" /> |
Задать ключ шифрования данных системы. Редактируем параметры в теге encryptionSettings.
cryptoAlgName - указать использованный алгоритм шифрования.
cryptoKey - значения ключа, сгенерированного утилитой.
certificateThumbprint - Thumbprint сертификата, которым зашифрован ключ (чтобы не учитывать - нужно удалить атрибут).
Code Block | ||||
---|---|---|---|---|
| ||||
<encryptionSettings cryptoAlgName="Aes" cryptoKey="90ce7dbc3ff94a7867abc6672c23cce2c3717d38af42f04293130cb68a34ecc2"/> |
<adUserCatalogProvider id="Ad4" serverName="newforest.local" containerPath="OU=Usersoutforest,DC=newforest,DC=local" userName="newforest\cataloguser2" password="Q1q2E3e4" />
</adUserCatalogProviders>
</userCatalogProviders> |
2. Добавьте внутри тега orUserCatalogProviders тег orUserCatalogProvider с параметром id.
Note | ||
---|---|---|
| ||
Значение параметра id должно соответствовать значению заданному в параметре rootUserCatalogProviderId |
3. Добавьте внутри тега orUserCatalogProvider тег userCatalogProviders. Внутри тега userCatalogProviders добавьте теги userCatalogProvider с параметром id, в котором указывается идентификатор пользовательского контейнера и ignoreExceptions со значением true, данный параметр игнорирует ошибку подключения к каталогу, если данный каталог не доступен.
Note | ||
---|---|---|
| ||
Данные теги могут отсутствовать в конфигурационном файле, если ранее было выполнено шифрование конфигурационного файла с не заданными параметрами. Если теги отсутствуют, то добавьте их вручну, полная структура файла представлена ниже. |
Code Block | ||||
---|---|---|---|---|
| ||||
<orUserCatalogProviders>
<orUserCatalogProvider id="user">
<userCatalogProviders>
<userCatalogProvider id="Ad1" ignoreExceptions="true" />
<userCatalogProvider id="Ad2" ignoreExceptions="true" />
<userCatalogProvider id="Ad3" ignoreExceptions="true" />
<userCatalogProvider id="Ad4" ignoreExceptions="true" />
</userCatalogProviders>
</orUserCatalogProvider>
</orUserCatalogProviders> |
Пример структуры файла
Code Block | ||
---|---|---|
|
Задать администратора системы. Редактируем параметр userId тега accessControlAdminSettings.
- userId - идентификатор пользователя в формате: “<Идентификатор каталога><нижнее подчеркивание><GUID Администратора Системы>”.
Note | ||
---|---|---|
| ||
Пользователь должен находится внутри каталога пользователей. При использовании нескольких пользовательских контейнеров для <Идентификатор каталога> указывается id контейнера в котором находится администратор системы. |
| |||
<accessControlAdminSettings userId="UserId_ |
891f2b6c- |
9a55- |
title | Информация |
---|
Получить GUID можно с помощью команды PowerShell. Предварительно необходимо установить компонент Remote Server Administration Tools:
Code Block | ||||
---|---|---|---|---|
| ||||
Get-ADUser YouUserName -Properties * | Select ObjectGUID |
Задаем url для подключения к лог серверу. Редактируем тег logServer.
URL - url для подключения к log серверу в формате http(s)://полное_dns_имя_сервера/ils/api.
Note | ||
---|---|---|
| ||
Если используется несколько серверов, указываем адрес балансировщика нагрузки. |
4e1a-b69b-b4d6418f4c4c"/>
<logonSettings secretKey="*****"/>
<userCatalogProviderSettings rootUserCatalogProviderId="user">
<userCatalogProviders>
<sqlUserCatalogProviders>
</sqlUserCatalogProviders>
<adUserCatalogProviders>
<adUserCatalogProvider id="UserId" serverName="new.loc" containerPath="DC=new,DC=loc"
userName="indeed-users" password="Q1q2E3e4" />
<adUserCatalogProvider id="UserId1" serverName="test.new.loc" containerPath="DC=test,DC=loc"
userName="indeed-users" password="Q1q2E3e4" />
</adUserCatalogProviders>
</userCatalogProviders>
<combineRules>
<orUserCatalogProviders>
<orUserCatalogProvider id="user">
<userCatalogProviders>
<userCatalogProvider id="UserId" ignoreExceptions="true" />
<userCatalogProvider id="UserId1" ignoreExceptions="true" />
</userCatalogProviders>
</orUserCatalogProvider>
</orUserCatalogProviders>
<andUserCatalogProviders>
</andUserCatalogProviders>
</combineRules>
</userCatalogProviderSettings> |
Шифрование/Расшифрование конфигурационного файла
- Запустите командную строку от имени "Администратора".
В командной строке перейдите в папку с утилитой для шифрования.
Note title Информация Утилита шифрует секции: logServer, logonSettings, userCatalogProviderSettings, encryptionSettings, dbContextSettings. Рекомендуется зашифровать все секции.
Шифрование/Расшифрование отдельных секций.
Для шифрования отдельной секции необходимо выполнить команду вида: EA.Config.Encryptor /encrypt "Путь к конфигурационному файлу сервера" "Имя секции"Code Block language bash title Пример EA.Config.Encryptor /encrypt "C:\inetpub\wwwroot\easerver\Web.config" "logServer"
Для расшифровки отдельной секции необходимо выполнить команду вида: EA.Config.Encryptor /decrypt "Путь к конфигурационному файлу сервера" "Имя секции"
Code Block language bash title Пример EA.Config.Encryptor /decrypt "C:\inetpub\wwwroot\easerver\Web.config" "logServer"
- Шифрование/Расшифрование всех секций.
Для шифрования всех секций необходимо запустить скрипт encryptConfigs.bat.
Image Added
Для расшифровки всех секций необходимо выполнить скрипт decryptConfigs.bat
Image Added
Code Block | ||||
---|---|---|---|---|
| ||||
<logServer Url="http://log.indeed-id.local/ils/api/" CertificateThumbprint="" CertificateFilePath="" CertificateFilePassword=""/> |
Шифрование/Расшифрование конфигурационного файла
В командной строке перейдите в папку с утилитой для шифрования.
Note | ||
---|---|---|
| ||
Утилита шифрует секции: logServer, logonSettings, userCatalogProviderSettings, encryptionSettings, dbContextSettings. Рекомендуется зашифровать все секции. |
Шифрование/Расшифрование отдельных секций.
Для шифрования отдельной секции необходимо выполнить команду вида: EA.Config.Encryptor /encrypt "Путь к конфигурационному файлу сервера" "Имя секции"
Code Block | ||||
---|---|---|---|---|
| ||||
EA.Config.Encryptor /encrypt "C:\inetpub\wwwroot\easerver\Web.config" "logServer" |
Для расшифровки отдельной секции необходимо выполнить команду вида: EA.Config.Encryptor /decrypt "Путь к конфигурационному файлу сервера" "Имя секции"
Code Block | ||||
---|---|---|---|---|
| ||||
EA.Config.Encryptor /decrypt "C:\inetpub\wwwroot\easerver\Web.config" "logServer" |
Для шифрования необходимо запустить скрипт encryptConfigs.bat.
Image Removed
Для расшифровки необходимо выполнить скрипт decryptConfigs.bat
Image Removed
Настройка первичной конфигурации
Редактировать атрибут key - параметр value необходимо поставить в значение true, если для авторизации мы хотим использовать Windows Token.
Если сервер находится не в домене, есть вариант использовать один из следующих провайдеров: windows password, emailOTP, smsOTP. Для этого value должно быть в положении false.
Code Block | ||
---|---|---|
| ||
<appSettings> <add key="eaServerUrl" value="http://192.168.1.2/easerver/"/> <add key="isWindowsAuth" value="false"/> </appSettings> |
Backtotop
Divbox | ||||
---|---|---|---|---|
| ||||
|