Skip to content

Created a CCF Connector for SailPoint IdentityNow Function App. - #14978

Open
Dhara Shah (dhara-shah-sp) wants to merge 1 commit into
Azure:masterfrom
sailpoint-tech-partner-eng:dev-ds
Open

Created a CCF Connector for SailPoint IdentityNow Function App.#14978
Dhara Shah (dhara-shah-sp) wants to merge 1 commit into
Azure:masterfrom
sailpoint-tech-partner-eng:dev-ds

Conversation

@dhara-shah-sp

Copy link
Copy Markdown
Contributor

Required items, please complete

Change(s):

  • Created a CCF Connector for SailPoint IdentityNow Function App.

Reason for Change(s):

  • The migration is being completed because the existing functionality is scheduled to be deprecated soon. Moving to new framework ensures continued support and avoids disruption once the earlier functionality is retired.

Version Updated:

  • No

Testing Completed:

  • Yes

Checked that the validations are passing and have addressed any issues that are present:

  • Yes

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds/updates artifacts for a Codeless Connector Framework (CCF) connector to ingest SailPoint Identity Security Cloud (IdentityNow) Search API “events” into Microsoft Sentinel.

Changes:

  • Added a new Log Analytics table schema for SailPointISC_Events_CL.
  • Updated RestApiPoller config to use new connector identifiers, stream, and polling parameters.
  • Updated connector definition UI strings and setup instructions for Identity Security Cloud.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 6 comments.

File Description
Solutions/SailPointIdentityNow/Data Connectors/SearchEvent_CCF/table_SailPointISC_Events.json Introduces the custom table schema for ingested events.
Solutions/SailPointIdentityNow/Data Connectors/SearchEvent_CCF/SailPointIdentityNow_PollerConfig.json Re-points the poller to the new connector/table identifiers and adjusts polling/limit settings.
Solutions/SailPointIdentityNow/Data Connectors/SearchEvent_CCF/SailPointIdentityNow_DCR.json Replaces prior DCR content with a table resource definition (likely unintended).
Solutions/SailPointIdentityNow/Data Connectors/SearchEvent_CCF/SailPointIdentityNow_ConnectorDefinition.json Updates connector name, table reference, UI text, and setup steps.
Suppressed comments (2)

Solutions/SailPointIdentityNow/Data Connectors/SearchEvent_CCF/SailPointIdentityNow_DCR.json:1

  • This file is named *_DCR.json but now defines a Log Analytics table resource (Microsoft.OperationalInsights/workspaces/tables) and no longer defines a Data Collection Rule (Microsoft.Insights/dataCollectionRules) with streamDeclarations/dataFlows. Since SailPointIdentityNow_PollerConfig.json still references dcrConfig (DCE + DCR immutable ID), removing the DCR resource is likely to break deployment/ingestion. Restore this file to an actual DCR resource (including stream declarations and transform KQL), and keep the table schema in table_SailPointISC_Events.json (or rename this file if the intent is to replace the DCR entirely).
    Solutions/SailPointIdentityNow/Data Connectors/SearchEvent_CCF/SailPointIdentityNow_DCR.json:1
  • This file is named *_DCR.json but now defines a Log Analytics table resource (Microsoft.OperationalInsights/workspaces/tables) and no longer defines a Data Collection Rule (Microsoft.Insights/dataCollectionRules) with streamDeclarations/dataFlows. Since SailPointIdentityNow_PollerConfig.json still references dcrConfig (DCE + DCR immutable ID), removing the DCR resource is likely to break deployment/ingestion. Restore this file to an actual DCR resource (including stream declarations and transform KQL), and keep the table schema in table_SailPointISC_Events.json (or rename this file if the intent is to replace the DCR entirely).

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

"type": "Microsoft.SecurityInsights/dataConnectors",
"apiVersion": "2024-09-01",
"name": "[[concat('parameters('workspace')', '/Microsoft.SecurityInsights/','SailPointIDN_EventsV2' , uniqueString(parameters('tenantId')) )]",
"name": "[[concat('parameters('workspace')', '/Microsoft.SecurityInsights/','SailPointISC_Events' , uniqueString(parameters('tenantId')) )]",
"descriptionMarkdown": "The [SailPoint](https://www.sailpoint.com/) IdentityNow data connector provides the capability to ingest [SailPoint IdentityNow] search events into Microsoft Sentinel through the REST API. The connector provides customers the ability to extract audit information from their IdentityNow tenant. It supports connecting multiple SailPoint IdentityNow tenants simultaneously - each identified by its unique Tenant ID and domain - making it easy to monitor multiple environments (production, demo, partner) from a single Microsoft Sentinel workspace. Refer to [SailPoint Developer Documentation](https://developer.sailpoint.com/docs/api/authentication/) for API authentication details.",
"graphQueriesTableName": "SailPointIDN_EventsV2",
"descriptionMarkdown": "The [SailPoint](https://www.sailpoint.com/) Identity Security Cloud data connector provides the capability to ingest search events into Microsoft Sentinel through the REST API. The connector provides customers the ability to extract audit information from their Identity Security Cloud tenant. Refer to [SailPoint Developer Documentation](https://developer.sailpoint.com/docs/api/authentication/) for API authentication details.",
"graphQueriesTableName": "SailPointISC_Events",
{
"metricName": "Total events received",
"legend": "SailPoint IdentityNow Events",
"legend": "SailPoint identity Security Cloud Events",
"name": "SailPoint IdentityNow OAuth2 Client Credentials",
"description": "An OAuth2 **Client ID** and **Client Secret** with the `sp:search:read` scope are required. Create an API client in your SailPoint admin console under **Admin > Global > Security Settings > API Management**. [See the documentation](https://developer.sailpoint.com/docs/api/authentication/) for step-by-step instructions."
"name": "SailPoint Identity Security Cloud OAuth2 Client Credentials",
"description": "An OAuth2 **Client ID** and **Client Secret** with the `sp:search:read` scope are required. Create a Personal Access Token(PAT) in your SailPoint Tenant. Kindly refer to documentation on our Compass Community for step-by-step instructions."
Comment on lines +20 to +21
"queryWindowInMin": 5,
"queryWindowDelayInMin": 60,
"Accept": "application/json"
},
"queryParametersTemplate": "{\r\n \"indices\": [\"events\"],\r\n \"query\": {\r\n \"query\": \"created:[{_QueryWindowStartTime} TO {_QueryWindowEndTime}]\"\r\n },\r\n \"sort\": [\"created\"],\r\n \"limit\": 1000\r\n}"
"queryParametersTemplate": "{\r\n \"indices\": [\"events\"],\r\n \"query\": {\r\n \"query\": \"created:[{_QueryWindowStartTime} TO {_QueryWindowEndTime}]\"\r\n },\r\n \"sort\": [\"created\"],\r\n \"limit\": 10000\r\n}"
@v-maheshbh

v-maheshbh (v-maheshbh) commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Hi Dhara Shah (@dhara-shah-sp)

Kindly review the Copilot comments and mark them as resolved if they have been addressed.

Please package the solution using V3 tool
https://github.com/Azure/Azure-Sentinel/blob/master/Tools/Create-Azure-Sentinel-Solution/V3/README.md

Kindly attach a screenshot showing the CCF connector in a connected state for testing validation and reference.
Thanks!!

@v-maheshbh

Copy link
Copy Markdown
Contributor

Hi Dhara Shah (@dhara-shah-sp)

Kindly review above comments.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants