Operator session
Associate an operator's verified identity with user verifications the operator performs.
By enabling the operator session feature, you ensure that each verification records this association in the audit log.
This feature is enabled through an optional parameter. If you don't send the parameter, the verification continues normally without associating an operator. However, if you send the parameter and it is invalid or expired, the verification is rejected.
How operator session works
An operator session starts with a standard identity verification. When the id_token or the refresh_token are sent as the operator_id_token parameter in a client verification, the system knows to associate that verification with the operator. The flow works as follows:
-
The operator performs an identity verification, the same as any other verification in the system. The resulting
id_tokenidentifies the operator for the duration of the session. -
If the
offline_accessscope is requested, the integration also receives arefresh_token, which can be used to renew theid_tokenwithout requiring the operator to verify again. -
When the operator starts a verification, the integration adds the operator's
id_tokenas theoperator_id_tokenquery parameter in the authorization URL. This is what tells the system that the verification corresponds to an operator session. -
The system validates the token automatically. If valid, the operator is associated with the audit log. If invalid or expired, the verification is rejected.
This parameter is optional. If the parameter is absent, the verification proceeds normally without an operator association. For more details on using this feature, see Implement operator session.
operator_id_token parameter
| Parameter | Value |
|---|---|
operator_id_token |
A JWT id_token or refresh_token from the operator login. |
Add the operator_id_token as a query parameter in the authorization URL when starting a verification.
Behavior by scenario
| Scenario | Result |
|---|---|
| Token valid and active | The operator is associated with the audit log. |
| Token expired | Verification is rejected and the operator must log in again. |
| Token with invalid signature | Verification is rejected because the token is not valid. |
| Parameter absent | Verification continues normally without an operator association. |
If you send the operator_id_token parameter but the token is invalid or expired, the verification is rejected. Only authenticated operators can perform verifications.
Available endpoints
| Environment | Authorization URL |
|---|---|
| UAT | https://accounts-uat.trust.sovos.com/oauth2/auth |
| Production | https://accounts.trust.sovos.com/oauth2/auth |
Implement operator session
Example on how to implement the operator session feature to link an operator's verified identity to the verifications they perform.
Confirm:
-
The operator has completed a successful login through the verification flow.
-
Sovos has enabled the
offline_accessscope on your client credentials. Contact your Sovos representative to request this. -
The operator and the verification use the same OAuth2
client_id. See Token management.
The operator session feature associates an operator's identity with the identity verifications the operator performs on other people (users). The operator_id_token parameter is optional. If you don't send it, the verification continues normally without associating an operator. If it is invalid or expired, the verification is rejected.
The operator session can remain active for an extended period using the refresh_token. When the operator's id_token expires, you can use the refresh_token to obtain a new id_token and continue sending it in the operator_id_token parameter without requiring the operator to log in again, as explain in step 4.
See Operator session reference.
When the operator token is valid, the operator is associated with the audit log entry for each verification performed during the session. The operator's name is displayed on the verification screen.
Review the behavior reference to understand how the system responds in each scenario.
