Skip to content

CiscoIT-DAE/ThousandEyes-Transactions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ThousandEyes-Transactions

A collection of script examples to be used with ThousandEyes Web Transaction tests


Duo auth & preauth Transactions

Executing transactions against the Duo API can provide key insights into the authentication experience of your users, allowing you to proactively detect issues, and quickly verify user reports.

preauth vs auth

The Duo preauth transaction determines whether a user is authorized to log in, and (if so) returns the user's available authentication factors. This transaction exercises various components of the Duo Auth API without requiring a user bypass code.

The Duo auth transaction actually completes an authentication transaction, verifying more of the Duo subsystems than the preauth transaction, but it requires the use of a bypass code.

Prequisites

In order to setup this transaction you should follow the "First Steps" section of the Duo Auth API documentation. You must identify the following details:

  • Integration key
  • Secret key
  • API hostname
  • A user to execute the preauth request for.
  • A bypass code (auth transaction ONLY)

Configuring the transaction

  • Within ThousandEyes, register the secret key, integration key, and bypass code (if using the auth) as separate secrets in the Credential Repository.
  • Create a new Web Transaction test.
  • Use the Duo Auth API /ping endpoint endpoint for your API hostname as the URL.
  • Paste the code snippet from this repo in the Transaction Script field.
  • Update the code with your API hostname, username, the name of the integration key, secret key, and bypass code (if auth) credentials.
  • Using the key icon above the transaction script window, grant this test access to the relevant credentials.
  • Set the remaining test attributes, then Save or verify with Run Once

The ThousandEyes Recorder IDE can also be used to test these transaction locally on your desktop

Resources


Generic OAuth Transaction

ThousandEyes HTTP Server Tests are fairly flexible in the ways that you can configure the transaction, but there are some limitations to the test type. You may want to use a different HTTP method, have a dynamic payload, or specify a nuanced validation criteria. While the HTTP Server test type cannot support this, the Web Transaction test type can!

This example implements a client_credentials grant type OAuth authentication, followed by an API request using the resulting auth token. It enables easy configuration of both the Authentication stage as well as the API request, and provides both HTTP status code and regex based validation.

Prerequisites

You should identify the configuration details of both the authentication and API transaction. As the Web Transaction test also contains an HTTP Server view component, you should also identify an appropriate URL for the HTTP Server configuration. The best option would be a basic 'ping' or health API that functions without authentication and a GET http method.

Configuring the transaction

  • Within ThousandEyes, register the client secret in the Credential Repository.
  • Create a new Web Transaction test.
  • Configure the basic parameters of the test: interval, agents, url.
  • Paste the code snippet from this repo in the Transaction Script field.
  • Update the configuration and auth objects with the configuration details you previously identified.
    • If no validation is required, remove this key from the configuration object
  • Using the key icon above the transaction script window, grant this test access to the relevant credentials.
  • Set the remaining test attributes, then Save or verify with Run Once

The ThousandEyes Recorder IDE can also be used to test these transaction locally on your desktop

published

About

A collection of ThousandEyes transaction script examples

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published