Меню

«Создание быстрого ввода пароля в систему SAP ERP ECC на стороне клиента»

|

В данной статье описываются 2 способа ускорения процедуры ввода пароля в систему SAP ERP ECC с помощью средств SAP Logon, что позволит консультантам ускорить процесс тестирования от имени многочисленных конечных пользователей, обладающих разными полномочиями.

Настройки, описанные в данной статье, не предполагают изменения на стороне сервера.

Способ 1. Быстрый ввод пароля с помощью SAP Logon.

В SAP Logon есть способ создавать ярлыки для входа в систему SAP. Ярлыки входа в систему создаются в части Shortcuts (Ярлыки). Ярлык содержит в себе параметры для доступа к той или иной системе SAP: номер манданта, пользователь, язык входа, пароль, начальная транзакция и другие параметры.

В данной статье примеры приводятся на SAP Logon 710 с уровнем патчей 8. (Рисунок 1). Но данный функционал будет работать и с другими версиями SAP Logon.

Рис. 1. Параметры SAP Logon, на котором приводятся примеры в статье

Для создания ярлыка для входа в систему необходимо перейти в часть «Shortcuts» (Соединения) и нажать кнопку «New» (Новая запись) (Рис.2)

Рис. 2. Создание нового ярлыка для входа в SAP

По умолчанию поле «Password» (Пароль) скрыто от ручного ввода (Рисунок 3). Заметим, что на экране сказано, что использовать поле пароль не рекомендуется. На самом деле, хранить продуктивные пароли на жестком диске компьютера действительно может быть небезопасно; поэтому я также не рекомендую использовать данную функциональность для продуктивных систем. Однако, использование данной функциональности для входа в тестовые системы может сэкономить время; кроме того, при тестировании того или иного процесса консультантами или ключевыми пользователями наиболее эффективно создать тестового пользователя, чьи полномочия будут совпадать с полномочиями конечного пользователя. Использования данного поля может улучшить тестирования, сократив время на переключение от одного пользователя к другому.

Поэтому, на мой взгляд, эту функциональность можно использовать смело для целей тестирования.

Рис. 3. Поле "Password" (Пароль) скрыто для редактирования по умолчанию при создании ярлыка

Чтобы данное поле стало открытым для редактирования необходимо (вначале рекомендуется закрыть все окна SAPLogon) добавить параметр «EnablePassword» со значением «1» в ветку реестра Windows: HKEY_CURRENT_USER\Software\SAPShortcut\Security

Если папки «SAPShortcut» нет, то необходимо вручную создать её, а также внутри неё создать папку «Security» и уже в папке «Security» создать указанный параметр со значением.

В итоге в редакторе реестра появится параметр, как показано на Рисунке 4. После добавления данного параметра необходимо запустить/перезагрузить SAP Logon.

Рис. 4. Параметр "EnablePassword" со значением "1" в ветке HKEY_CURRENT_USER\Software\SAP\SAPShortcut\Security

Моя рекомендация: делать настройку по способу 1 через командную строку с помощью следующих шагов:

Шаг 1. Запустить программу «Выполнить» с помощью сочетания клавиш «Windows+R»;

Шаг 2. Ввести команду cmd (вызов командной строки) и нажать Enter либо OK (Рисунок 5).

Рис. 5. Запуск командной строки из программы «Выполнить»

Шаг 3. Закрыть все окна SAPLogon;

Шаг 4. В диалоге ввести следующую команду (Рисунок 6):

(REG ADD HKEY_CURRENT_USER\Software\SAP\SAPShortcut\Security /v EnablePassword /t REG_SZ /d 1) & (TASKKILL /F /IM saplogon.exe /T)

Выполнив эти четыре шага следует снова открыть SAP Logon.

Новое открытие SAP Logon создаёт ветку реестра (если её нет) и добавляет параметр «EnablePassword» со значением 1; затем закрываются все окна SAPLogon без предупреждения (если какое-либо окно SAPLogon было открыто)

Рис. 6. Добавления параметра "EnablePassword" в ветку реестра HKEY_CURRENT_USER\Software\SAP\SAPShortcut\Security

Для удаления данной ветки и параметра можно использовать команду REG DELETE HKEY_CURRENT_USER\Software\SAP\SAPShortcut (Рисунок 7)

Рис. 7. Удаление ветки HKEY_CURRENT_USER\Software\SAP\SAPShortcut (в дальнейшем можно будет восстановить с помощью инструкции описанной выше)

После добавления параметра поле «Password» (Пароль) должно стать доступным для редактирования при создании ярлыков для входа в системы SAP.

Рис. 8 Поле пароль доступно для изменения при создании ярлыков

Затем для создания ярлыка для входа в нужную систему необходимо указать (Рисунок 9):

1) Название данного ярлыка;

2) выбрать систему из выпадающего списка.

Параметры доступа к системе должны быть прописаны в папке «Connections» (Соединения).

3) указать пароль мандант (поле «Client»), пользователя (поле «User»), пароль для данного пользователя (поле «Password») и язык входа.

4) нажать кнопку «Finish» (Готово)

Рис. 9 Ввод данных для входа при создании ярлыка

5) Затем система предупредит о небезопасности хранения пароля внутри ярлыков и запросит подтверждения о сохранении ярлыка – нажмите кнопку «Да» (Yes) (Рисунок 10).

Рис. 10. Для создания ярлыка, который хранит пароль, необходимо подтверждение

Система добавит ярлык в список ярлыков.

Теперь для входа в систему нужно дважды щёлкнуть по ярлыку.

Рис. 11. Дважды щелкаем по ярлыку для входа в систему

Рекомендация: Во многих случаях при тестировании процесса от конкретного пользователя требуется выполнение действий только в одной транзакции. В этом случае разумно, при создании ярлыка указать эту транзакцию – таким образом, система будет сразу её открывать. Это позволит сэкономить время. Нужная транзакция вводится в поле «Transaction» (Транзакция) (Рисунок 12).

Рис. 12. Указываем транзакцию для автоматического запуска при использовании ярлыка

Подчеркну еще раз: Данный способ можно смело использовать для входа в тестовые системы. Однако, для продуктивных систем крайне нежелательно применять данный способ по двум важным причинам.

Причина первая: пароль хранится в текстовом файле, который называется sapshortcut.ini (содержит в себе параметры подключения: система, пользователь и прочие) и он находится в той же директории, где и saplogon.ini (в данном случае директорию можно наблюдать на Рисунке 10). Отдельная запись выглядит так:

Key1=-desc="01 SYS022" -sid="SY1" -clt="300" -u="USER" -l="RU" -tit="001 Тест-менеджер закупок (copy Mr. Ivanov)" -cmd="ME2L" -wd="C:\Users\1\Documents\SAP" -ok="/nME2L" -pwenc="PW_49B32069"

К данному файлу очень не сложно получить доступ на просмотр в течение нескольких секунд. Значение поля пароль хранится в параметре «pwenc». Как видно, оно зашифровано на первый взгляд. Однако, если мы немного будем изменять пароль и смотреть, как система шифрует значения – мы поймем, как можно сделать и обратную операцию, то есть перейти от зашифрованного значения к первоначальному паролю. Злоумышленник, знакомый с Excel и имеющий представление о таблице символов, в течение 1 часа получит алгоритм для расшифровки данного пароля.

Причина вторая: данный зашифрованный пароль даже не обязательно расшифровывать; можно просто взять его в незашифрованном виде и поместить на любом другом компьютере также в файл sapshortcut.ini – система сама автоматически сделает обратное преобразование. Алгоритм шифрования данного пароля независим от имени пользователя, имени компьютера и прочих параметров, что мешало бы переносу пароля с одного компьютера на другой. В этом легко убедиться, создав на двух разных компьютерах для разных пользователей и для разных систем одинаковые пароли – результат шифрования будет одним и тем же.

Надеюсь, я убедил Вас не использовать данный способ для продуктивных целей. Однако для тестовых систем, когда пароль отнюдь не важен (либо его уже знают многие), а важно время и результат – этот способ можно смело использовать.

Способ2.

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти

Обсуждения Количество комментариев6

Комментарий от  

Олег Башкатов

  |  16 августа 2012, 02:47

Для целей Copy-Paste привожу код скрипта elogon.txt в текстовом формате
 
// ----------------------------------------------------
// Очищаем поля от значений по умолчанию
// ----------------------------------------------------
Set F[RSYST-MANDT] // Делаем поле "Мандант" пустым
Set F[RSYST-LANGU] // Делаем поле "Язык" пустым
Set F[RSYST-BNAME] // Делаем поле "Пользователь" пустым
 
// ----------------------------------------------------
// Данные для входа в систему
// ----------------------------------------------------
 
offset (0,95) // Делаем одну отправную точку
box (0,0) (18,45) "Входе через флеш-накопитель" // Создаем набор опций-альтернатив для продуктивных пользователей
text (1,1) "Test MyUsers" // Делаем текст, что это мои пользователи
radiobutton (2,1) "MyUSER - Russian" F[RSYST-MANDT] 200 F[RSYST-BNAME] "MyUSER" F[RSYST-BCODE] "MyPassword" F[RSYST-LANGU] RU // Мой вход на RU
 
radiobutton (3,1) "MyUSER - English" F[RSYST-MANDT] 200 F[RSYST-BNAME] "MyUSER" F[RSYST-BCODE] "MyPassword" F[RSYST-LANGU] EN // Мой вход на EN
 
radiobutton (4,1) "MyUSER - German" F[RSYST-MANDT] 200 F[RSYST-BNAME] "MyUSER" F[RSYST-BCODE] "MyPassword" F[RSYST-LANGU] DE // Мой вход на EN
 
// Больше моих логинов нет
 
text (6,1) "Test users" // Начался набор тестовых пользователей
radiobutton (7,1) "TSTUSER01 - Закупка" F[RSYST-MANDT] 200 F[RSYST-BNAME] "TSTUSER01" F[RSYST-BCODE] "Password" F[RSYST-LANGU] RU // last edit 11/10/2011 +
 
radiobutton (8,1) "TSTUSER02 - Сбыт/фактуры" F[RSYST-MANDT] 200 F[RSYST-BNAME] "TSTUSER02" F[RSYST-BCODE] "Password" F[RSYST-LANGU] RU // last edit 11/10/2011 +
 
radiobutton (9,1) "TSTUSER03 - Сбыт/заказы" F[RSYST-MANDT] 200 F[RSYST-BNAME] "TSTUSER03" F[RSYST-BCODE] "Password" F[RSYST-LANGU] RU // last edit 11/10/2011 +
 
radiobutton (10,1) "TSTUSER04 - ДеблокЗкзПоста" F[RSYST-MANDT] 200 F[RSYST-BNAME] "TSTUSER04" F[RSYST-BCODE] "Password" F[RSYST-LANGU] RU // last edit 11/10/2011 +
 
radiobutton (11,1) "TSTUSER05 - ДеблокирПроекты" F[RSYST-MANDT] 200 F[RSYST-BNAME] "TSTUSER05" F[RSYST-BCODE] "Password" F[RSYST-LANGU] RU // last edit 11/10/2011 +
 
// ----------------------------------------------------
// Создаем кнопку для заполнения полей и входа
// ----------------------------------------------------
 
offset (7,25) // отправная точка для кнопки
//По нажатию на кнопку будет происходить заполнение полей и вход в систему
pushbutton (0,0) "  OK  " "/0" size=2

Комментарий от  

Сергей Трапезников

  |  16 августа 2012, 20:03

Для целей Copy-Paste привожу код скрипта elogon.txt в текстовом формате
 
// ----------------------------------------------------
// Очищаем поля от значений по умолчанию
// ----------------------------------------------------
Set F[RSYST-MANDT] // Делаем поле "Мандант" пустым
Set F[RSYST-LANGU] // Делаем поле "Язык" пустым
Set F[RSYST-BNAME] // Делаем поле "Пользователь" пустым
 
// ----------------------------------------------------
// Данные для входа в систему
// ----------------------------------------------------
 
offset (0,95) // Делаем одну отправную точку
box (0,0) (18,45) "Входе через флеш-накопитель" // Создаем набор опций-альтернатив для продуктивных пользователей
text (1,1) "Test MyUsers" // Делаем текст, что это мои пользователи
radiobutton (2,1) "MyUSER - Russian" F[RSYST-MANDT] 200 F[RSYST-BNAME] "MyUSER" F[RSYST-BCODE] "MyPassword" F[RSYST-LANGU] RU // Мой вход на RU
 
radiobutton (3,1) "MyUSER - English" F[RSYST-MANDT] 200 F[RSYST-BNAME] "MyUSER" F[RSYST-BCODE] "MyPassword" F[RSYST-LANGU] EN // Мой вход на EN
 
radiobutton (4,1) "MyUSER - German" F[RSYST-MANDT] 200 F[RSYST-BNAME] "MyUSER" F[RSYST-BCODE] "MyPassword" F[RSYST-LANGU] DE // Мой вход на EN
 
// Больше моих логинов нет
 
text (6,1) "Test users" // Начался набор тестовых пользователей
radiobutton (7,1) "TSTUSER01 - Закупка" F[RSYST-MANDT] 200 F[RSYST-BNAME] "TSTUSER01" F[RSYST-BCODE] "Password" F[RSYST-LANGU] RU // last edit 11/10/2011 +
 
radiobutton (8,1) "TSTUSER02 - Сбыт/фактуры" F[RSYST-MANDT] 200 F[RSYST-BNAME] "TSTUSER02" F[RSYST-BCODE] "Password" F[RSYST-LANGU] RU // last edit 11/10/2011 +
 
radiobutton (9,1) "TSTUSER03 - Сбыт/заказы" F[RSYST-MANDT] 200 F[RSYST-BNAME] "TSTUSER03" F[RSYST-BCODE] "Password" F[RSYST-LANGU] RU // last edit 11/10/2011 +
 
radiobutton (10,1) "TSTUSER04 - ДеблокЗкзПоста" F[RSYST-MANDT] 200 F[RSYST-BNAME] "TSTUSER04" F[RSYST-BCODE] "Password" F[RSYST-LANGU] RU // last edit 11/10/2011 +
 
radiobutton (11,1) "TSTUSER05 - ДеблокирПроекты" F[RSYST-MANDT] 200 F[RSYST-BNAME] "TSTUSER05" F[RSYST-BCODE] "Password" F[RSYST-LANGU] RU // last edit 11/10/2011 +
 
// ----------------------------------------------------
// Создаем кнопку для заполнения полей и входа
// ----------------------------------------------------
 
offset (7,25) // отправная точка для кнопки
//По нажатию на кнопку будет происходить заполнение полей и вход в систему
pushbutton (0,0) "  OK  " "/0" size=2

Есть еще третий более простой способ -использование технологии single logon.
Sap logon будет использовать windows пароль, очень удобно.

Комментарий от  

Олег Башкатов

  |  17 августа 2012, 00:59

Есть еще третий более простой способ -использование технологии single logon.
Sap logon будет использовать windows пароль, очень удобно.

А если перешли с компа на комп?
Жесткий диск с операционкой с собой брать? )))
Single Logon - это с помощью SNC ?

Комментарий от  

Сергей Трапезников

  |  17 августа 2012, 10:29

А если перешли с компа на комп?
Жесткий диск с операционкой с собой брать? )))
Single Logon - это с помощью SNC ?

Согласитесь, в случае периодической смены паролей, Ваше решение будет не удобным.
если с компа на комп, то тогда лучше использовать WTS (терминальный сервер), как промежуточный слой.
По связке snc и single logon сказать ничего не могу, в отпуске.
Для web gui используется другое решение с сертификатами

Комментарий от  

Олег Башкатов

  |  17 августа 2012, 12:54

Согласитесь, в случае периодической смены паролей, Ваше решение будет не удобным.
если с компа на комп, то тогда лучше использовать WTS (терминальный сервер), как промежуточный слой.
По связке snc и single logon сказать ничего не могу, в отпуске.
Для web gui используется другое решение с сертификатами

прочитайте три последних слова в заголовке статьи, и Вы поймете, что слово "терминальный сервер" сюда никак не запихнуть.
Также нельзя ставить в этот ряд SNC и прочие инструменты, требующие настроек на стороне сервера.
 
По поводу частной смены пароля не согласен. Это сверх труд зайти в текстовый файл и прописать пароль?
Кроме того, а если мне необходимо 5 активных тестовых пользователей, чьи логины могут изменяться? Мне каждый раз идти на сервер и изменять настройки под имя компьютера?
 
Данное решение (за слово "решение" - спасибо :-) ) версии 2008 года. У этой статьи будет продолжение (я надеюсь); будет представлена версия 2010 года и 2012 года.

Комментарий от  

Олег Башкатов

  |  15 сентября 2013, 02:31

Согласитесь, в случае периодической смены паролей, Ваше решение будет не удобным.
если с компа на комп, то тогда лучше использовать WTS (терминальный сервер), как промежуточный слой.
По связке snc и single logon сказать ничего не могу, в отпуске.
Для web gui используется другое решение с сертификатами

вот и продолжение наконец-то подготовил, где учитывается и периодическая смена пароля и принудительная, и пароль хранится не в открытом виде.
 
Общая идея такова: вместе со скриптом GuiXT вызывается доп.exe-файл, который и делает обновление пароля.
 
olegbash.ru/luckysapgui.html
 
недостаток подхода: если использовать exe-файл, то нужно возможности расширять, а не оставаться на небольшом наборе "скудных" функций.