Как ограничить доступ запуска моей программы CIC
У меня есть приложение cics, и я не хочу создавать экран входа в систему, вместо этого я хочу ограничить доступ, выбрав идентификатор пользователя, а затем проверить, разрешено ли им запускать мое приложение. Это возможно? Спасибо
4 ответа
Вероятно, существуют более эффективные способы ограничения доступа к определенным транзакциям в среде CICS, чем захват идентификатора пользователя и сравнение со списком. В большинстве магазинов разработаны стандартные методы ограничения доступа к транзакциям в рамках CICS. Однако, если вам нужно найти идентификатор пользователя, попробуйте что-то вроде этого:
EXEC CICS ASSIGN
USERID(WS-USERID)
END-EXEC.
где WS-USERID
является рабочим полем PIC X(8).
Это ссылка на документацию по CICS ASSIGN.
РЕДАКТИРОВАТЬ
Как проверить несколько идентификаторов пользователей? Вам нужен список авторизованных пользователей, чтобы сравнить текущий идентификатор пользователя с. Если идентификатор пользователя находится в списке, пользователь имеет право использовать транзакцию. Обычно у вас есть несколько вариантов управления таким списком:
- SELECT для таблицы базы данных, содержащей идентификаторы авторизованных пользователей. Используйте текущий идентификатор пользователя в качестве предиката (например, WHERE USER_ID =:WS-USERID). Если вы получите строку назад, пользователь авторизован.
- ПОИСК / ПОИСК ВСЕЙ таблицы РАБОЧЕГО ХРАНЕНИЯ, заполненной авторизованными идентификаторами пользователей для совпадения. Если вы получаете совпадение, пользователь авторизуется.
Табличное решение WORKING-STORAGE является наименее гибким, поскольку может потребоваться, чтобы программа обновлялась и перекомпилировалась при каждом добавлении или удалении нового пользователя.
Однако, как я и cschneid указали, безопасность доступа лучше всего обрабатывать вне прикладных программ, используя что-то вроде RACF или ACF2. Ваша местная системная администрация должна быть в состоянии помочь вам настроить это.
CICS может общаться с внешним менеджером безопасности, таким как RACF, CA-ACF2 или CA-Top Secret. Приложения часто защищены на уровне транзакций, если во внешнем диспетчере безопасности установлены правильные правила или профили.
Таким образом, действия по обеспечению безопасности выполняются вне логики приложения. Доступ предоставляется персоналом службы безопасности, а не разработчиком приложения.
В CICS TS V4.2 и более поздних версиях с пакетом расширений безопасности (встроенным в V5.2) вы можете использовать утверждения SAML, поступающие из распределенных приложений, для обеспечения еще более детального управления доступом.
Чтобы продолжить ваш комментарий к NealB о нескольких пользователях: ваши администраторы безопасности могут добавить все рассматриваемые идентификаторы пользователей в группу, а затем определить права доступа к этой группе для вашей транзакции.
Вы действительно должны позволить своему администратору безопасности обрабатывать доступ к транзакциям. Хороший дизайн системы ставит управление безопасностью за пределы приложения.