Cisco Duo
Trustle reads users, groups, group members, applications, and administrators from Duo. Trustle can create, disable, and delete users, and add and remove group members.
Prerequisites
Section titled “Prerequisites”- A Duo account with the Owner role. Duo lets only an Owner create an Admin API application.
Configure Cisco Duo
Section titled “Configure Cisco Duo”Step 1: Create an Admin API application
Section titled “Step 1: Create an Admin API application”- Sign in to the Duo Admin Panel.
- Go to Applications → Protect an Application.
- Search for Admin API. Click Protect next to it.
Step 2: Grant permissions
Section titled “Step 2: Grant permissions”-
On the Admin API application page, go to Settings → Permissions.
-
Select each permission in the table:
Permission Required What Trustle does with it Grant resource → Read Yes Imports users, groups, and group members. Test Connection uses it. Grant resource → Write Yes Creates, disables, and deletes users. Adds and removes group members. Grant applications Yes Imports applications and the groups that can use them. Without it, the sync fails. Test Connection does not check it. Grant administrators → Read Yes Imports administrators and their roles. Without it, the sync fails. Test Connection does not check it. -
Leave the other permissions clear. Trustle does not use Grant administrators → Write, Grant read log, Grant read information, Grant settings, Grant identity verification, or Grant set Admin API permissions.

The screenshot also shows Write under Grant administrators and Grant read log. Trustle does not need them.
-
Click Save Changes.
Step 3: Collect the values for Trustle
Section titled “Step 3: Collect the values for Trustle”Copy each value from the Details section of the Admin API application page.
| Trustle field | Where to find it in Duo | Example |
|---|---|---|
| Integration Key | Details → Integration key | DIXXXXXXXXXXXXXXXXXX |
| Secret Key | Details → Secret key. Click Copy. | <secret-key> |
| API Hostname | Details → API hostname. Enter it without https://. |
api-xxxxxxxx.duosecurity.com |
Connect in Trustle
Section titled “Connect in Trustle”- In Trustle, go to Connections.
- Under Identity Providers, find Duo and click Connect.
- Enter a Connection Name, for example
Duo production. Description is optional. - Enter the values from Step 3.
- Select Use as Identity Provider if Duo is the source of your users. Trustle allows one identity provider at a time.
- Click Test Connection.
- After the test passes, click Save Connection.
Verify
Section titled “Verify”- On the Connections page, open the Duo connection.
- Wait for the first sync to finish.
- Check that the user count and the group count match the Duo Admin Panel.
If something is missing, see Troubleshooting.
Security notes
Section titled “Security notes”Troubleshooting
Section titled “Troubleshooting”Test Connection fails
Section titled “Test Connection fails”- Integration Key and Secret Key: copy both from the same Admin API application. A mismatch gives error
40103(invalid signature). - API Hostname: enter the value from Details, for example
api-xxxxxxxx.duosecurity.com. Do not addhttps://or a slash at the end. - Grant resource → Read: the test reads one user, so it fails without this permission.
Test Connection passes, but the sync fails with error 40301
Section titled “Test Connection passes, but the sync fails with error 40301”The application is missing Grant applications or Grant administrators → Read. Duo then refuses those calls with 40301 (forbidden), and the whole sync fails.
Select both permissions in Step 2. Then run the sync again.
Trustle cannot change users or group members
Section titled “Trustle cannot change users or group members”The application is missing Grant resource → Write. Select it in Step 2.
The sync fails with error 429
Section titled “The sync fails with error 429”Duo limits the number of Admin API calls per account. Run the sync again later. For a large account, ask Duo support for a higher limit.
None of these fixes work
Section titled “None of these fixes work”Email support@trustle.com. Include the error message, the connection name, and the API Hostname. Never send a secret, key, or token.