Enabling single sign on for extending services via PassTicket configuration
Enabling single sign on for extending services via PassTicket configuration
One option for enabling single sign on is by configuring Zowe to use PassTickets, whereby API services can authenticate with API Mediation Layer. Follow the procedures described in this article to configure Zowe to use PassTickets, and to enable Zowe to use PassTickets to authenticate towards specific extending services.
- Overview of PassTickets
- Configuring Zowe to use PassTickets
- Adding custom HTTP Auth headers to store user ID and PassTicket
Overview of PassTickets
API clients can use various supported methods to access an API service such as a Zowe JWT token or a client certificate even if the API service itself does not support the JWT token or a client certificate. An intermediary for this support can be through the use of PassTickets.
When an API client provides a valid authentication method to API ML, the API Gateway generates a valid PassTicket for any API service that supports PassTickets. A PassTicket is a one-time only password that is generated for a specific user ID. The API Gateway uses the PassTicket to access that API service. The API Gateway provides the user ID and password in the Authorization header of the HTTP requests using the Basic authentication scheme.
Configuring Zowe to use PassTickets
Configuring Zowe to use PassTickets involves two processes:
- Enabling the use of PassTickets in your External Security Manager (ESM)
- Configuring security to allow the Zowe API Gateway to generate PassTickets for an API service
Enabling the use of PassTickets in your External Security Manager (ESM)
This section applies to users who do not already have PassTickets enabled in the system, or users who need to define a PassTicket for a new APPLID. If you already have an APPLID that you intend to use to define your API service, skip to the section Configuring security to allow the Zowe API Gateway to generate PassTickets for an API service.
To validate if a PassTicket is already defined, use the commands that correspond to your ESM. If the PassTicket is defined, the access of the zoweuser can be determined.
-
Validating an existing PassTicket for ACF2
Click here for details about validating an existing PassTicket for ACF2.
-
Validating an existing PassTicket for Top Secret
Click here for details about validating an existing PassTicket for Top Secret.
-
Validating an existing PassTicket for RACF
Click here for details about validating an existing PassTicket for RACF.
Follow these steps to enable PassTicket Support specific to your ESM. Consult with your security administrator to perform the following procedures.
Enabling PassTickets with ACF2
Click here for details about configuring Zowe to use PassTickets using ACF2.
Enabling PassTickets with Top Secret
Click here for details about configuring Zowe to use PassTickets using Top Secret.
Enabling PassTickets with RACF
Click here for details about configuring Zowe to use PassTickets using RACF.
Configuring security to allow Zowe API Gateway to generate PassTickets for an API service
As a security administrator, you can issue security commands to allow the Zowe started task user ID to generate PassTickets for the API service.
Specify the following variables when generating PassTickets for the API service to enable the Zowe started task user ID:
-
applid
The APPLID value used by the API service for PassTicket support (e.g.OMVSAPPL
) -
zowe-user-id
The Zowe started task user ID used during the Zowe installation
In the following examples of ESM configuration, replace these variables with actual values.
Use the configuration format that corresponds to your ESM as presented in the following examples.
Generating PassTickets using ACF2
Click here for details about generating PassTickets using ACF2.
Generating PassTickets using Top Secret
Click here for details about generating PassTickets using Top Secret.
Generating PassTickets using RACF
Click here for details about generating PassTickets using RACF.
Validating if the PassTicket Application is created
In your ESM command line interface or other security environment, execute the following commands:
RLIST APPL <applid> ALL
RLIST PTKTDATA IRRPTAUTH.<applid>.* ALL
- applid
The APPLID value used by the API service for PassTicket support
Successful execution of this validation command shows your application and the specific access of the application.
Adding custom HTTP Auth headers to store user ID and PassTicket (Optional)
If a downstream (southbound) service needs to consume the PassTicket and the user ID from custom headers to participate in the Zowe SSO, you can define the custom HTTP headers names as part of the Gateway configuration.
The southbound service must use the httpBasicPassTicket
scheme in order to leverage this functionality. Once the HTTP headers names are defined, each request to the southbound service contains the PassTicket and the user ID in the custom headers.
Use the following procedure to add the custom HTTP headers.
- Open the file
zowe.yaml
. - Find or add the property
components.gateway.apiml.security.auth.passticket.customAuthHeader
and set the value which represents the name of the header. - Find or add the property
components.gateway.apiml.security.auth.passticket.customUserHeader
and set the value which represents the name of the header. - Restart Zowe.
Requests through the Gateway towards the southbound service now contain the custom HTTP headers with the PassTicket and the user ID.