This feature allows you to securely identify an authenticated consumer and receive consumer information so our Zoom Virtual Agent bot and/or Zoom Contact Center agent can take appropriate steps to help resolve their issues. Consumer information of authenticated consumers are set by the Zoom Contact Center/Zoom Virtual Agent Web SDK to Zoom Contact Center / Zoom Virtual Agent Global variables so that they can be used in the flows or visible to agents in the Zoom Contact Center desktop client.
{ "cty": "text/plain", "alg": "ES256" }
The end consumer information should be part of payload. The payload should also include a field “exp” of epoch format, which indicates JWT expiration time. This will be used while verifying the JWT in the Zoom backend.
{ "exp": <epoch_expiration_time, "email": "janet.smith@example.com", }
Both Header and Payload data are in the JSON format but encoded. Finally, the signature is calculated by encoding the header and payload and signing it with ES256 private Key.
As mentioned, the JWT needs to be signed so that Zoom can validate the authenticity of the authentication endpoint response. To do this, create an ES 256 private key/public Key pair. Use your private key to sign the signature of the JWT. This ES256 public key should be added to the Zoom Contact Center/Zoom Virtual Agent Admin page. This public key will be used on Zoom’s backend to verify the JWT signature. You can refer this to create Key pairs:
Below is an example on how you can create ES256 private key/public key pair.
You can use this to create ES256 private Key public Key pairs. Create a private key using this:
openssl ecparam -name prime256v1 -genkey -noout -out es256-private-key.pem
Create the corresponding public key using this:
openssl ec -in es256-private-key.pem -pubout -out es256-public-key.pem
Private Key will be in es256-private-key.pem and public key in es256-public-key.pem
The purpose of the Consumer Authentication feature is that you can access data about the consumer within your Zoom Contact Center / Zoom Virtual Agent flow. The data that you include in the JWT payload can be mapped to Zoom Contact Center / Zoom Virtual Agent global variables. Currently, we support the mapping below.
JWT Payload field | Zoom Contact Center / Zoom Virtual Agent global variable |
global_system.Consumer.email |
In addition to the above mapped fields, there is also the authenticationStatus variable (global_system.Engagement.authenticationStatus) which is a boolean variable that is set to True if the consumer is authenticated. In your Zoom Contact Center / Zoom Virtual Agent flow, you should check the value of this variable.