Duo Security
Duo Security provides multi-factor authentication and secure access solutions to protect organizations' sensitive data.
Duo Security is a trusted platform for advanced identity verification and access management, ensuring secure user authentication and device management. This connector enables seamless integration with Swimlane Turbine, allowing users to automate identity and access management tasks such as associating phones with users, modifying administrators, and retrieving user and device information. By leveraging this integration, security teams can enhance their operational efficiency, streamline user management processes, and ensure robust security measures without manual intervention.
Prerequisites
Before you can use the Duo Security connector for Turbine, you'll need access to the Duo Security API. This requires the following:
- HMAC authentication using the following parameters:
- URL: The endpoint URL for accessing Duo Security services.
- Username: The username required for authenticating API requests.
- Secret Key: A secret key used to sign requests and verify authenticity.
Capabilities
This Connector provides the following capabilities:
- Associate Phone Device with User
- Modify Administrator
- Retrieve Administrators
- Retrieve Bypass Codes
- Retrieve Phones by User ID
- Retrieve Phones
- Retrieve User by User ID
- Retrieve Users
- Update User
Asset Setup
Setting up the Duo Security Connector requires configuring HMAC authentication. Here are the necessary details:
- URL: A URL to the target host.
- Username: Use your Duo application's integration key as the HTTP Username.
- Secret Key: This key is required for HMAC authentication.
- Verify SSL Certificates: Choose if you want to verify SSL certificates when connecting.
- HTTP(s) Proxy: If you route requests through a proxy, specify it here.
Ensure that you've filled in the mandatory fields: URL, Username, and Secret Key.
Notes
- Always ensure you have the necessary permissions in Duo before trying to modify or fetch data.
- For more in-depth information and potential use cases, refer to the Duo Security Admin API documentation.
Additional Documentation
Configurations
Duo HMAC
Authenticates using Duo's HMAC
Configuration Parameters
Parameter | Description | Type | Required |
|---|---|---|---|
url | A URL to the target host. | string | Required |
username | Use your Duo application's integration key as the HTTP Username | string | Required |
secret_key | Secret Key | string | Required |
verify_ssl | Verify SSL certificate | boolean | Optional |
http_proxy | A proxy to route requests through. | string | Optional |
Actions
Associate Phone with User
Associate a specified phone with a user in Duo Security using User ID and Phone ID. 'Grant write resource' API permission is required.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
user_id | string | Required | Unique identifier |
phone_id | string | Required | Unique identifier |
Input Example
{"user_id":"af456y","phone_id":"12573883"}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
Output Example
{"status_code":200,"reason":"OK","json_body":{"success":true}}
Modify Administrator
Update attributes of a specified administrator in Duo Security using the admin's unique identifier.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
admin_id | string | Required | Unique identifier |
name | string | Optional | Name of the resource |
phone | string | Optional | Parameter for Modify Administrator |
password | string | Optional | Parameter for Modify Administrator |
password_change_required | boolean | Optional | Parameter for Modify Administrator |
status | string | Optional | Status value |
Input Example
{"admin_id":"1241234567890","name":"Jones","phone":"+1234567890","password":"loremPass","password_change_required":true,"status":"active"}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
Output Example
{"status_code":200,"reason":"OK","json_body":{"success":true}}
Retrieve Administrators
Retrieve a comprehensive list of administrators from Duo Security.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
limit | number | Optional | Parameter for Retrieve Administrators |
offset | number | Optional | Parameter for Retrieve Administrators |
Input Example
{"limit":100,"offset":0}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
Output Example
{"status_code":200,"reason":"OK","json_body":[{"alias1":"[email protected]","alias2":null,"alias3":null,"alias4":null,"aliases":{},"created":1650553488,"desktoptokens":[],"email":"","enable_auto_prompt":true,"external_id":"n4Hm9FEJMUGWeqJQoyLWlA==","firstname":"","groups":[],"is_enrolled":false,"last_directory_sync":1718625924,"last_login":null},{"alias1":"[email protected]","alias2":null,"alias3":null,"alias4":null,"aliases":{},"created":1578667011,"desktoptokens":[],"email":"","enable_auto_prompt"...
Retrieve bypass codes
Retrieve a list of bypass codes from Duo Security to facilitate secure, temporary access without standard authentication.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
limit | number | Optional | Parameter for Retrieve bypass codes |
offset | number | Optional | Parameter for Retrieve bypass codes |
Input Example
{"limit":100,"offset":0}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
Output Example
{"status_code":200,"reason":"OK","json_body":[{"admin_email":"[email protected]","bypass_code_id":"DBFQMKTW4WSILQ4Z76NH","created":1642379903,"expiration":null,"reuse_count":null,"user":{}}]}
Retrieve Phones
Retrieve a paginated list of phones from Duo Security, including details like phone number and device type.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
limit | number | Optional | Parameter for Retrieve Phones |
offset | number | Optional | Parameter for Retrieve Phones |
Input Example
{"limit":100,"offset":0}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
Output Example
{"status_code":200,"reason":"OK","json_body":[{"activated":true,"capabilities":[],"extension":"","last_seen":"2024-06-15T11:36:45","model":"Samsung SM-N960U","name":"","number":"+13373718943","phone_id":"DPA5J8LV75ECQR4F38V2","platform":"Google Android","postdelay":"","predelay":"","sms_passcodes_sent":true,"type":"Mobile","users":[]},{"activated":true,"capabilities":[],"extension":"","last_seen":"2024-06-17T10:02:10","model":"Google Pixel 8","name":"","number":"+13375523259","phone_id":"DPIBYOS...
Retrieve Phones by User ID
Retrieve a list of phones linked to a specific user ID in Duo Security, presented in a paginated format.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
user_id | string | Required | Unique identifier |
Input Example
{"user_id":"af345d"}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
Output Example
{"status_code":200,"reason":"OK","json_body":{}}
Retrieve User by User ID
Retrieve details for a specific user in Duo Security using the provided User ID.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
user_id | string | Required | Unique identifier |
Input Example
{"user_id":"af345d"}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
Output Example
{"status_code":200,"reason":"OK","json_body":{}}
Retrieve Users
Generate a paged list of users from Duo Security, providing an overview of registered individuals.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
limit | number | Optional | Parameter for Retrieve Users |
offset | number | Optional | Parameter for Retrieve Users |
Input Example
{"limit":100,"offset":0}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
Output Example
{"status_code":200,"reason":"OK","json_body":[{"alias1":"[email protected]","alias2":null,"alias3":null,"alias4":null,"aliases":{},"created":1650553488,"desktoptokens":[],"email":"","enable_auto_prompt":true,"external_id":"n4Hm9FEJMUGWeqJQoyLWlA==","firstname":"","groups":[],"is_enrolled":false,"last_directory_sync":1718625924,"last_login":null},{"alias1":"[email protected]","alias2":null,"alias3":null,"alias4":null,"aliases":{},"created":1578667011,"desktoptokens":[],"email":"","enable_auto_prompt"...
Update User
Modify a user's details such as username, real name, status, or notes in Duo Security using the provided user ID.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
user_id | string | Required | Unique identifier |
username | string | Optional | Name of the resource |
realname | string | Optional | Name of the resource |
status | string | Optional | Status value |
notes | string | Optional | Parameter for Update User |
string | Optional | Parameter for Update User | |
firstname | string | Optional | Name of the resource |
lastname | string | Optional | Name of the resource |
alias1 | string | Optional | Parameter for Update User |
alias2 | string | Optional | Parameter for Update User |
alias3 | string | Optional | Parameter for Update User |
alias4 | string | Optional | Parameter for Update User |
aliases | string | Optional | Parameter for Update User |
Input Example
{"user_id":"afa345f","username":"Jones","realname":"Jones","status":"active","notes":"notes","email":"[email protected]","firstname":"John","lastname":"Doe","alias1":"alias1","alias2":"alias2","alias3":"alias3","alias4":"alias4","aliases":"aliases"}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
success | boolean | Whether the operation was successful |
Output Example
{"status_code":200,"reason":"OK","json_body":{"success":true}}
Response Headers
Header | Description | Example |
|---|---|---|
Content-Type | The media type of the resource | application/json |
Date | The date and time at which the message was originated | Thu, 01 Jan 2024 00:00:00 GMT |