Let's understand Mainframe
Home Tutorials Interview Q&A Quiz Mainframe Memes Contact us About us

Module 14: CICS Performance, Security and Advanced Topics


RACF and CICS

RACF is the security manager most CICS sites use. CICS asks RACF every time a user signs on or touches a protected resource.

How CICS uses RACF

  • CICS talks to RACF through SAF, the System Authorization Facility. CICS never checks passwords itself.
  • When security is on, every sign-on, transaction start, and resource access triggers a RACF check.
  • A failed check produces an ICH408I message in the log and the user gets a NOTAUTH response.
  • RACF profiles define who can do what. A profile names a resource and lists the permitted userids.

CICS resource classes in RACF

  • TCICSTRN protects transactions. MCICSPPT protects programs. FCICSFCT protects files.
  • DCICSDCT protects transient data queues, JCICSJCT protects journals, and SCICSTST protects temporary storage.
  • Use grouping classes like GCICSTRN to put many transactions in one profile and manage them together.
  • Activate a class with SETROPTS CLASSACT and refresh in-storage profiles with SETROPTS RACLIST(class) REFRESH.

Good RACF habits for CICS

  • Start with UACC(NONE) so nobody has access unless explicitly permitted. Open up only what is needed.
  • Permit groups, not individual userids, so access follows people when they change teams.
  • Keep CICS region userids separate from human userids. Region userids need system-level access humans should not have.
  • Review profiles regularly. Old permits for moved employees are a common audit finding.

Example: giving a user access to a transaction

  • Define a profile for the transaction, permit the user, then refresh the class so CICS sees the change.
  • RDEFINE TCICSTRN PAYUPD UACC(NONE) PERMIT PAYUPD CLASS(TCICSTRN) ID(PAYUSER) ACCESS(READ) SETROPTS RACLIST(TCICSTRN) REFRESH
  • UACC(NONE) means nobody has access unless explicitly permitted. This is the safest default.
  • ACCESS(READ) is enough to run a transaction. Higher access levels are rarely needed for transactions.





© copyright mainframebug.com
Privacy Policy
MainframeBug Assistant