> For the complete documentation index, see [llms.txt](https://docs.expel.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.expel.io/connect-your-technology/a-c-integrations/cisco/cisco-duo-setup-for-workbench.md).

# Cisco Duo Setup for Workbench

## Prerequisites <a href="#h_01hyebh414jjk4braj6jreqvkp" id="h_01hyebh414jjk4braj6jreqvkp"></a>

1. A Duo Cloud administrator account with Owner role.
2. Duo Cloud Admin APIs enabled as these aren't enabled by default. For more information about Duo Cloud Admin APIs, go to <https://duo.com/docs/adminapi>.

## Step 1: Generate API Credentials <a href="#uuid-d5736515-d4c4-1a96-ca57-e7fb0a4cd850_bridgehead-25554" id="uuid-d5736515-d4c4-1a96-ca57-e7fb0a4cd850_bridgehead-25554"></a>

To integrate the technology with Workbench, you need to create secure credentials for the API.

Having read-only access to the interface of your technology allows Expel to dig deeper during incident investigations. Our device health team uses this access to investigate potential health issues with your tech.

1. Log in to the [Duo Admin Panel](https://admin.duosecurity.com/) as an **Owner** and navigate to **Applications** > **Add Application**.
2. In the Application Catalog, click **Admin API** and then click **Add**.
3. On the next screen, **copy and save** the **Integration key**, **Secret key**, and **API hostname** for this application. These are the credentials Expel needs to connect to the Duo Cloud service. *These values are not shown again, so save them now.*
4. In the **Settings** section, name the application something descriptive. We recommend "Expel API".
5. Check the following required permissions:

| Permissions            | What Expel does with it                                                 |
| ---------------------- | ----------------------------------------------------------------------- |
| Grant read information | Reads total user count.                                                 |
| Grant read log         | Reads audit logs for security monitoring.                               |
| Grant read resource    | Reads user and group information and enriches events with this context. |

6. If you prefer to specify the IPs to access the API, add the IPs from [Connecting Your Devices Securely to Workbench](/workbench-setup/configure-an-ip-allow-list.md) to the Networks for API Access field.
7. Click **Save changes**.

## Step 2: Add Cisco Duo as a Security Device in Workbench <a href="#uuid-d5736515-d4c4-1a96-ca57-e7fb0a4cd850_bridgehead-25589" id="uuid-d5736515-d4c4-1a96-ca57-e7fb0a4cd850_bridgehead-25589"></a>

Now that you have the correct access configured and noted the credentials, you can integrate your tech with Workbench.

1. ​[Log in to Workbench](https://workbench.expel.io/auth/login?orig=%2F).
2. In the side menu, navigate to **Organization Settings > Security Devices**.
3. Select **Add Security Device**.
4. In the search box, type “Duo” and then select the **Cisco Duo** integration.
5. A configuration pane displays. Complete the fields as follows:<br>

   <div align="left"><figure><img src="/files/0WisPgR2TS8mqN3WkGUL" alt="Cisco Duo Add a Security Device configuration screen in Workbench." width="327"><figcaption></figcaption></figure></div>

   * **Name** - enter a name that might help you more easily identify this integration, such as “CompanyName Duo”; this name will display in Workbench under the Name column, and is a text string that you can filter on.
   * **Location** - enter the location of your integration, for example “cloud.” This is also a text string that you can filter on, so we recommend being consistent with location naming across your Expel integrations.
   * **API hostname** - enter the hostname from [Step 1](#uuid-d5736515-d4c4-1a96-ca57-e7fb0a4cd850_bridgehead-25554).
   * **Integration key** - enter the integration key from [Step 1](#uuid-d5736515-d4c4-1a96-ca57-e7fb0a4cd850_bridgehead-25554).
   * **Secret key** - enter the secret key from [Step 1](#uuid-d5736515-d4c4-1a96-ca57-e7fb0a4cd850_bridgehead-25554).
6. Click **Save**.

Your device should be created successfully within a few seconds. A few reminders:

* After your connection is healthy, it will take some time for your device to begin polling and receiving data.
* To check on the status, select the downward arrow for your device in the first column and choose **View details**.
* Polling will happen first; data will be received after that. **You must refresh the page to see updates.**
* If your device does not begin polling within 15 minutes, and does not begin receiving data within 30 minutes, [contact our support team for help](/support/how-to-reach-us.md).
* To check if alerts are coming through, navigate to **Dashboards > Alert Analysis**. Scroll to the device you want to check, and select the **Expel Alerts** tab to reveal more alert information. It can take 36 to 72 hours for alerts to appear after setup, as we [tune your device](/workbench-reference/alerts/how-expel-alerts-work.md#device-tuning).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.expel.io/connect-your-technology/a-c-integrations/cisco/cisco-duo-setup-for-workbench.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
