# SailPoint Huntress Connector Documentation > Huntress Connector Documentation # Documentation # Connecting SailPoint and Huntress To connect SailPoint to the source, perform the following tasks: ## Adding and Configuring the Source in SailPoint To connect to SailPoint, perform the following steps. Once the connection is made, you can configure it to meet your company's needs. 1. Go to **Admin \> Connections \> Sources**. 2. Select **Create New**. 3. Search for a source type and select **Actions**. 4. In the **Actions** dropdown, select the setup method: - **Express Setup** - Quickly create a read-only connection to your target system by providing minimal configurations and authentication. On completion, aggregation is automatically started. > **Note** > > Express Setup supports Credential Providers. For information on supported credential providers and configuration, refer to [Credential Providers](). For more information, contact your SailPoint Customer Service Manager. - **Standard Setup** - Provide detailed basic configuration to create the source. Once the source is created, continue with source setup. ### Express Setup 1. Review the directions and select **Start Express Setup**. 2. Review the pre-populated source name, source owner, and description. To update, select **Edit**. > **Note** > > Source name must be unique. 3. (Optional) If enabled for your organization, select the **Use a Credential Provider** checkbox to manage the source's authentication using a credential provider. > **Note** > > To add a Credential Provider in SailPoint, go to **Admin \> Connections \> Credential Providers**. For more information about credential providers, refer to [Credential Providers](). 4. Configure the authentication to allow SailPoint to connect to the source. For more information, refer to the **Connection Settings** page. 5. Select **Finish**. After a successful test connection, the system creates your source and prompts you to run an aggregation. - If you want to aggregate now, select **Aggregate**. - To see the latest account aggregation history, go to **Account Management \> Account Aggregation**. - To see the list of aggregated source accounts, go to **Account Management \> Accounts**. - If you want to aggregate later, select **Exit**. This returns you to the **Sources** page. Your new source is listed, but contains no accounts or aggregation history yet. ### Standard Setup Configure more detailed settings relative to Express Setup. 1. In the **Source Name** field, enter a unique and descriptive name for your source. Source names cannot exceed 128 characters. 2. In the **Description** field, provide additional details about the source to help distinguish it from similar sources. This field allows a maximum of 2,000 characters. 3. In the **Source Owner** field, begin typing the name of an owner. Matches appear after you type two or more letters. For more information, refer to [Assigning a Source Owner](). 4. (Optional) Select a governance group to grant its members [source]() or [role]() sub-admin level oversight of the source and its access. For more information, refer to [Creating and Managing Governance Groups](). 5. If this source represents a primary system containing your organization's personnel records, select the **Authoritative Source** checkbox. For more information, refer to [Creating Identity Profiles](). 6. Select **Continue**. The source is created, and you are navigated to the **Source Setup \> Base Configuration** page. Here, continue to configure your connected source. ## Base Configuration Provide the base configuration parameters. Information you entered in the Create New Source dialog is automatically entered into the fields in the Base Configuration page. You can edit this information if necessary. 1. Enter a descriptive **Source Name** for the connection. 2. Enter the **Source Description** that provides details necessary to distinguish it from similar connection sources. 3. In **Source Owner**, begin typing the name of the source owner. 4. (Optional) Select the appropriate **Governance Group for Source Management** from the dropdown list. For more information about governance groups, refer to [Associating Governance Groups with a Source](). 5. Select **Create Manual Work Items** to enable the source to support additional source management features such as creating accounts and access profile management. > **Important** > > Once you enable this feature, it can't be disabled. For more information on manual work items, refer to [Work Items](). For more information on SailPoint features, refer to [SailPoint Identity Services](). 6. Select **Save**. ## Connection Settings Configure a secured, direct connection to the source. 1. Enter the Huntress API base endpoint as **Base URL**. For example, `https://api.huntress.io/v1`. 2. Enter the **API Key** (public key) page as **Username**. 3. Enter the **API Secret Key** (private key) as **Password**. 4. Enter the identifier of the Huntress organization to aggregate as **Organization ID**. The connector sends this value as the `organization_id` filter. Maximum length 50 characters. 5. Select **Save**. ## Review and Test Perform a test to confirm the connection to SailPoint. 1. Go to **Review and Test**. 2. Confirm that the entries in each field are correct. If you note any mistakes, return to the section and make corrections. 3. Select **Test Connection**. ## SailPoint Application Onboarding SailPoint application onboarding enables you to easily onboard new applications and create sources following the successful onboarding of a discovery source. To use this feature, continue to **Discovered Applications** in the SailPoint user interface. For more information, refer to [Application Onboarding]() in the SailPoint SaaS documentation. # Integrating SailPoint with Huntress Huntress is a cloud-based managed security platform for organizations that need continuous threat detection, investigation, and response across their endpoints, identities, and security data. It combines endpoint detection and response, identity threat detection and response, SIEM log source monitoring, and security awareness training into a single unified system, organized around accounts and the organizations they manage, providing centralized visibility into agents, incident reports, and the users who have been granted access to each organization. This document provides the instructions required to configure a new direct connection between SailPoint and Huntress. For a reference to the terminology specific to SailPoint products, refer to [Source and Connector Definitions](). > [!NOTE] > > To view the latest features, enhancements, and fixes for all SaaS connectors, refer to the [SaaS Release Notes]() page. ## Supported Features The Huntress connector supports the following: ### Account Management - Aggregate Users ### Entitlement Management - Aggregate Permissions > [!IMPORTANT] > > Quick Compliance connectors have the following manual aggregation limits within a 24-hour period: > > - **Organization Admins**: Limited to 3 manual account or entitlement aggregations per day per source. This limit is cumulative across all admins in the organization. > - **Regular Users**: Limited to 1 manual account or entitlement aggregation per day per source. > > These limits ensure that individual compliance statuses are kept up to date while maintaining continuous compliance monitoring. If you need to run additional aggregations beyond these limits, contact SailPoint Support. ## Prerequisites Before configuring the Huntress connector, ensure the following requirements are met: 1. Sign in to Huntress at `.huntress.io` with an account that has been granted access to the Huntress API. 2. Open the dropdown menu at the top-right corner of the site header and select **API Credentials**. This option is only shown if your account has been granted API access. 3. On the API Key generation page, select **Setup** to begin, then select **Generate** to create a public and private key pair for Huntress API access. 4. Copy the **API Secret Key** immediately and store it securely - it is only visible at this stage of key generation. 5. Retrieve the Organization ID as described in the following section. 6. Copy and securely store the following details, which are required during connector configuration: - **API Key** (public key) - entered as the connector's **Username** - **API Secret Key** (private key) - entered as the connector's **Password** - **Base URL** - `https://api.huntress.io/v1` - **Organization ID** ### Retrieve the Organization ID from the Huntress API Reference The Huntress portal lists organizations by name only; it does not display the numeric Organization ID. Retrieve the ID from the official Huntress API Reference, which can run the request directly in your browser - no Postman or other API client is required. 1. Open the [Huntress API Reference](). 2. In the sidebar, confirm that the **REST API** document is selected. The site also publishes a separate **Webhooks** document, which does not contain this endpoint. 3. Expand the **Organizations** tag in the sidebar and select **List Organizations** (`GET /v1/organizations`). 4. Locate the **Authentication** section. Huntress preselects its `basic_auth` security scheme, so the reference displays HTTP Basic fields. Enter the credentials generated in the previous steps: - **Username** - your Huntress **API Key** (public key) - **Password** - your Huntress **API Secret Key** (private key) 5. The reference builds the `Authorization: Basic ` header for you. Enter the raw key and secret; do not paste a pre-encoded Base64 string. 6. Select **Test Request** on the **List Organizations** operation. This opens the built-in API client for that request. 7. Confirm the selected server is `https://api.huntress.io` (**Production**). 8. Optionally set query parameters to narrow the results. All are optional: - `name` - filter by organization name. Use the name exactly as it appears on the **Organizations** tab of the Huntress portal. - `limit` - maximum number of records returned per page. Defaults to `10`, minimum `1`, maximum `500`. - `sort_field` - field to sort by (`id`, `created_at`, `updated_at`, `name`, or `key`). Defaults to `id`. - `sort_direction` - `asc` or `desc`. Defaults to `desc`. 9. Select **Send** to execute the request against your Huntress account. 10. Confirm that the response status is **200**, then read the Organization ID from the response body as described below. > [!NOTE] > > The API Reference stores the credentials you enter in your browser so they persist across page reloads. Clear the **Username** and **Password** fields when you are finished, especially on a shared machine. ### Read the ID from the Response The list response has `organizations` and `pagination`. Copy `id` for the organization whose `name` matches the tenant you are connecting: ```text { "organizations": [ { "id": 1, "name": "Acme Inc.", "key": "test1", "account_id": 5 } ], "pagination": { "next_page_token": null, "next_page_url": null } } ``` Enter that numeric `id` (for example `1`) in the connector **Organization ID** field. Do not use `key` or `account_id`. If `pagination.next_page_token` is present in the response, more organizations exist. Run **Test Request** again with the `page_token` query parameter set to that value, and repeat until `next_page_token` is `null`. The response also returns `pagination.next_page_url`, which is the same request already formatted as a URL. ### Confirm a Single Organization To verify the value before entering it in the connector, select **Get Organization** (`GET /v1/organizations/{id}`) under the same **Organizations** tag, set the `id` path parameter to the value you copied, and select **Send**. A `200` response containing `"organization": { "id": ..., "name": "..." }` with the expected name confirms the value. ### Common Errors | Status | Meaning | | --- | --- | | 401 | The request could not be authenticated. Check that the API Key and API Secret Key are entered correctly in the **Username** and **Password** fields. | | 403 | There was an issue with your API credential or permissions. Use a key generated by an account with access to the organizations you are listing. | | 429 | More than 60 requests were made within the rate limit timeframe. Wait and retry. | ### Token Notes > [!NOTE] > > - The Huntress API implements **basic access authentication**. Credentials are sent as `Authorization: Basic [Base64Encode(:)]`. The connector's **Username** and **Password** fields therefore correspond to the **API Key** and **API Secret Key** - not to Huntress portal sign-in credentials. > - The **API Secret Key is only displayed once**, during generation. If the value is lost, you must regenerate your API credentials at `.huntress.io/account/api_credentials` and update the source with the new key pair. > - Every Huntress API account is rate limited to **60 requests per minute on a sliding window**; exceeding it returns a `429` response. The connector retries a `429` response up to **3 times with a 30-second delay** between attempts. For more detailed information on obtaining an access token, refer to the official Huntress documentation: [Huntress API Reference](). > [!NOTE] > > The linked document is not maintained by SailPoint and is subject to change without notice. ## Required Permissions ### Typical Roles That Can Generate Tokens Huntress grants each membership one of the following permission labels: **Admin**, **Security Engineer**, **User**, **Read-only**, **Finance**, **Marketing**, **Admin-Read-only**, and **Provisioner**. - **API-enabled account** - Required at minimum. Huntress states that the **API Credentials** option appears in the account dropdown only if your account has been granted access to the Huntress API. Generating a key pair is gated on that API access grant rather than on a named role. # Schema Reference The application schema is used to configure the objects returned from a connector. > [!NOTE] > > - The **Account Schema** tab is used to define the attributes for each object type in the application being configured. The schema attributes can be defined as **Entitlement** or **Multi-Valued**. Refer to [Managing Source Account Schemas]() for more information. > - The schema attributes that are not present by [default](<#default-account-schema>) must be defined as strings if not specified. The Huntress connector uses the following default correlation and object configurations. ## Default Account Schema Each source supports a variety of details, or attributes, about each user who has an account, such as their name, email address, manager name, and location. The set of account attributes each source stores and how they're organized is known as the account's *schema*. To best represent your data, you can configure sources to use an account schema matching the one you use in the external connector. Refer to [Managing Source Account Schemas]() for more information. ### Default Account ID SailPoint requires that certain attributes remain in your configuration. These attributes are referred to as *account IDs*. > [!CAUTION] > > Changing the attribute marked as the account ID after aggregating accounts can result in duplicate accounts being created. To avoid this, either reset the accounts on this source before editing the account ID attribute or edit the account ID attribute before aggregating accounts. > > To resolve issues caused by changing account IDs, reconfigure them to their default values. The following table lists the default account IDs for this connector: | Account ID | Schema Object Type | | --- | --- | | id | Account | ### Default Account Attributes The Huntress connector supports the following default account schema attributes and customer configurable attributes. The attributes must be defined as strings if not specified. | Attribute Name | Description | | --- | --- | | id | Unique identifier for the user. | | name | Name of the user. | | email | Email address of the user. | | permissions | Role assigned to the user in Huntress. | | organization\_id | ID of the organization. | | organization\_name | Name of the organization. | | created\_at | Timestamp when the user account was created. | | updated\_at | Timestamp when the user account was last updated. | ## Default Entitlement Attributes Entitlement attributes define the entitlements, such as groups or roles, that can be assigned to the managed system's user accounts. Refer to [Managing Entitlements]() for more information. > [!CAUTION] > > Changing the attribute marked as the Entitlement ID after aggregating accounts or entitlements can result in duplicate entitlements being created, or access profiles and roles breaking. To avoid this, edit the entitlement schema before performing any aggregations. | Attribute Name | Description | | --- | --- | | name | Permission name. |