Configuring Delegated PassTicket Generation
Configuring Delegated PassTicket Generation
As a system administrator, you can enable the endpoint of the API Gateway that allows PassTicket generation for a delegated e-mail.
This API allows the authenticated user to create a PassTicket for another user.This presents a potential risk for privilege escalation or impersonation. To mitigate this risk, you must ensure strict access control via client certificates and ESM permissions.
To enable and use this feature, complete the following steps:
-
Enable the delegated PassTicket endpoint of the API Gateway.
-
Configure user permissions to generate delegated PassTickets.
-
Call the
/auth/delegate/passticketAPI.
Enabling the delegated PassTicket endpoint of the API Gateway
By default, the delegated PassTicket endpoint is set to false (disabled). Enable this parameter in your zowe.yaml configuration file.
- Open the file
zowe.yaml. - Locate the
components.apiml.securitysection. - Set the
delegatePassticket.enabledproperty totrue.
Example:
components:
apiml:
security:
delegatePassticket:
enabled: true
- Restart API ML to apply the changes.
The userID that makes the call to the API must have READ access to the class ZOWE.APIML.DELEGATE.PASSTICKET. For details, see the following section, Configuring user permission to generate delegated PassTickets.
Configuring user permissions to generate delegated PassTickets
The delegated PassTicket API requires authentication via a client certificate. The z/OS user ID associated with that certificate must have READ access to the ZOWE.APIML.DELEGATE.PASSTICKET resource class.
Follow the instructions for your specific External Security Manager (ESM):
Click here for command details to configure user access using RACF.
For RACF:
In your ESM command line interface or other security environment, perform the following steps:
-
Define the resource class:
RDEFINE ZOWE APIML.DELEGATE.PASSTICKET UACC(NONE) -
Permit the user associated with the client certificate
READaccess:PERMIT APIML.DELEGATE.PASSTICKET CLASS(ZOWE) ID(<userID>) ACCESS(READ)
SETROPTS RACLIST(ZOWE) REFRESHuserID
The userID associated with the client certificate calling the API.
-
(Optional) Verify userr permissions:
RLIST ZOWE APIML.DELEGATE.PASSTICKET AUTHUSER
Click here for command details to configure user access using ACF2.
For ACF2:
In your ESM command line interface or other security environment, grant the userID READ access:
SET RESOURCE(RDA) $KEY(ZOWE) TYPE(RDA) APIML.DELEGATE.PASSTICKET UID(<userID>) SERVICE(READ) ALLOW
userID
The userID associated with the client certificate calling the API.
Click here for command details to configure user access using Top Secret.
For Top Secret:
In your ESM command line interface or other security environment, perform the following steps:
Calling the /auth/delegate/passticket API
Once enabled and secured, you can call the API to generate a PassTicket for a user based on their email mapping.
To call the API POST /gateway/api/v1/auth/delegate/passticket:
Request Body (JSON)
{
"applId": "APPLID",
"emailId": "email@example.com"
}
-
APPLID
The applicationID associated with the address space the PassTicket is being generated for.Example: Use
IZUDFLTto create a PassTicket for z/OSMF. -
emailId
The email ID of the user that is associated with the z/OS userID.tipFor more information about mapping email IDs to mainframe userIDs, see the ESM configuration prerequisites.