私は cics アプリケーションを持っていますが、ログイン画面を開発したくありません。代わりに、ユーザー ID を取得してアクセスを制限し、アプリケーションの実行が許可されているかどうかを確認したいと考えています。これは可能ですか?ありがとうございました
4 に答える
おそらく、ユーザーIDを取得してリストと比較するよりも、CICS環境内の特定のトランザクションへのアクセスを制限するためのより良い方法があります。ほとんどのショップは、CICS内のトランザクションへのアクセスを制限するための標準的な手法を開発しています。ただし、ユーザーIDを見つける必要がある場合は、次のようにしてみてください。
EXEC CICS ASSIGN
USERID(WS-USERID)
END-EXEC.
ここWS-USERID
で、は作業用ストレージPIC X(8)フィールドです。
これは、CICSASSIGNの資料へのリンクです。
編集
複数のユーザーIDを確認する方法は?現在のユーザーIDを比較するには、許可されたユーザーのリストが必要です。ユーザーIDがリストにある場合、ユーザーはトランザクションの使用を許可されています。通常、このようなリストを管理するためのオプションがいくつかあります。
- 許可されたユーザーIDを含むデータベーステーブルに対するSELECT。現在のユーザーIDを述語として使用します(例:WHERE USER_ID =:WS-USERID)。行が戻った場合、ユーザーは許可されています。
- 一致する許可されたユーザーIDが入力されたすべてのWORKING-STORAGEテーブルを検索/検索します。一致した場合、ユーザーは承認されます。
WORKING-STORAGEテーブルソリューションは、新しいユーザーが追加または削除されるたびにプログラムを更新および再コンパイルする必要がある場合があるため、柔軟性が最も低くなります。
ただし、私とcschneidが指摘しているように、アクセスセキュリティは、RACFやACF2などを使用してアプリケーションプログラムの外部で処理するのが最適です。ローカルシステム管理者は、この設定を支援できるはずです。
CICS は、RACF、CA-ACF2、または CA-Top Secret などの外部セキュリティー・マネージャーと通信できます。多くの場合、アプリケーションは、外部セキュリティ マネージャに適切なルールまたはプロファイルを設定することにより、トランザクション レベルで保護されます。
このようにして、セキュリティ アクションはアプリケーション ロジックの外部で実行されます。アクセスは、アプリケーション開発者ではなく、セキュリティ担当者によって許可されます。
CICS TS V4.2 以降と Security Extensions Feature Pack (V5.2 に統合) を使用すると、分散アプリケーションからの SAML アサーションを使用して、さらに詳細なアクセス制御を提供できます。
To follow on to your comment to NealB's answer regarding multiple users: Your security administrators can add all of the userids in question to a group, and then define access permissions to that group for your transaction.
You really should let your security administration handle transaction access. Good system design puts security management outside of the application.