如何限制运行我的cics程序的访问权限

时间:2012-04-25 18:36:17

标签: cobol cics

我有一个cics应用程序,我不想开发登录屏幕,而是我想通过获取用户ID来限制访问,然后验证是否允许他们运行我的应用程序。这可能吗?谢谢

4 个答案:

答案 0 :(得分:3)

可能有更好的方法来限制对CICS环境中某些事务的访问,而不是通过获取USER ID并与列表进行比较。大多数商店都开发了限制CICS内交易访问的标准技术。但是,如果您必须找到用户ID,请尝试以下操作:

       EXEC CICS ASSIGN                                              
            USERID(WS-USERID)                                        
       END-EXEC.   

其中WS-USERID是工作存储PIC X(8)字段。

这是CICS ASSIGN文档的链接。

修改

如何检查多个用户ID?您需要一个授权用户列表来比较当前用户ID。如果 用户ID在列表中,用户有权使用该事务。通常,您有两个选项来管理此类列表:

  • 针对包含授权用户ID的数据库表进行SELECT。使用当前用户标识作为谓词(例如,WHERE USER_ID =:WS-USERID)。如果您返回一行,则该用户已获得授权。
  • SEARCH/SEARCH ALL一个WORKING-STORAGE表,其中填充了用于匹配的授权用户ID。如果您获得匹配,则该用户已获得授权。

WORKING-STORAGE表解决方案的灵活性最低,因为每次添加或删除新用户时都可能需要更新和重新编译程序。

但是,正如我和cschneid所指出的,访问安全性最好在应用程序之外处理 使用像RACF或ACF2这样的东西。你的本地系统 管理部门应该能够帮助您实现这一目标。

答案 1 :(得分:3)

CICS可以与外部安全管理器通信,例如RACF,CA-ACF2或CA-Top Secret。通过在外部安全管理器中使用正确的规则或配置文件,应用程序通常在事务级别受到保护。

这样,安全操作在应用程序逻辑外部执行。访问权限由安全人员授予,而不是由应用程序开发人员授予。

答案 2 :(得分:2)

要继续对NealB's有关多个用户的评论发表评论:您的安全管理员可以将相关的所有用户ID添加到组中,然后为您的交易定义该组的访问权限。

您真的应该让安全管理员处理事务访问。良好的系统设计将安全管理置于应用程序之外。

答案 3 :(得分:2)

使用CICS TS V4.2及更高版本的安全扩展功能包(集成在V5.2中),您可以使用来自分布式应用程序的SAML断言来提供更细粒度的访问控制。