Connect the userid to the right groups.
It is better to give permissions to groups, rather than to individual userids.
If someone changes jobs, within your organisation, you just remove the userid of the person leaving from the group, and they lose all access.
If you have given access to a userid, you have to go through all resources (for example APPLs) and remove access.
When a new person joins, you just connect them to the group, and they should have access.
Zowe groups
If you are going to use Zowe, then user userid needs access to the Zowe group.
- If class(APPL) OMVSAPPL is defined, the Zowe group needs read access to it
- If users will be using z/OMSF they will need read access to the class(APPL) IZUDFLT (or what ever is specified)
- If certificate logon is being used, the certificate will need to map to a userid
Access z/OSMF
If userid will be using z/OSMF they need access to the z/OSMF group.
In the z/OSMF logs, I got
CWWKS2907E: SAF Service IRRSIA00_CREATE did not succeed because user colin2 has insufficient authority to access APPL-ID IZUDFLT. SAF return code 0x00000008. RACF return code 0x00000008. RACF reason code 0x00000020.
I connected userid COLIN2 to the z/OSMF group IZUUSER. I think the change is available immediately.
Access to OMVSAPPL
An application can switch userid by using the pthread_security_np, and passing in a userid and password or a certificate (which maps to a userid).
The application can control which userid can be used by means of an resource in the APPL class.
If the resource was called MYAPPL, then pthread_security_np would use “MYAPPL”, and the userid being switched to much gave read access to MYAPPL.
The default (and only supported) resource is called OMVSAPPL.
If OMVSAPPL in class(APPL) is defined, the userid must have read access to it. z/OSMF also uses OMVSAPPL.
If OMVSAPPL in class(APPL) is not defined, no checks are done.
With Zowe you cannot specify the resource name.
Certificate logon
You can use a digital certificate from a web browser ( curl, or other tools) to authenticate to z/OS. You need to map the certificate to a userid.
A certificate coming in can have a Distinguished Name like CN=adcdd.O=cpwebuser.C=GB (Note the ‘.’not ‘,’ between elements).
Your userid needs to have SPECIAL define to be able to use the RACDCERT command (SPECIAL, not just GROUP-SPECIAL).
You will need a definition like (see here for the command)
RACDCERT MAP ID(ADCDD ) -
SDNFILTER('CN=adcdd.O=cpwebuser.C=GB') -
WITHLABEL('adcdd')
or a general definition for those certificate with O=cpwebuser.C=GB, ignoring the CN part
RACDCERT MAP ID(ADCDB ) -
SDNFILTER('O=cpwebuser.C=GB') -
WITHLABEL('cpwerbusergb')
or using the Issuing Distinguished Name (the Certificate Authority)
IDNFILTER(‘CN=TESTCA.OU=SSSCA.C=GB)
Using a generic
SDNFILTER(‘CN=a*.O=cpwebuser.C=GB’)
does not work.
If you attempt to use a certificate which is not mapped you get
ICH408I USER(START1 ) GROUP(SYS1 ) NAME(COLIN)
DIGITAL CERTIFICATE IS NOT DEFINED. CERTIFICATE SERIAL NUMBER(0163) SUBJECT(CN=adcdd.O=cpwebuser.C=GB) ISSUER(CN=SSCA8.OU=CA.O=SSS.C=GB).
It is worth defining these using JCL, because if you try to add it, and it already exists then you get a message saying it exists already. If you know the userid, you can list the maps associated with it. If you do not know the userid, there is no practical way of finding out – you have to logon with the certificate, and display the userid from the web browser, or extract the list of all users, and use LISTMAP on all of them.
One thought on “Zowe: setup: configuring end user userids”