Skip to main content

Obsidian Security

Obsidian Security is a SaaS security posture management platform that integrates with your SaaS environments to provide visibility into tenants, user accounts, entities, compliance standards, rules, and security settings. You can bring account, compliance, rule violation, setting violation, and more data from Obsidian Security into Brinqa to gain a unified view of your attack surface, thus strengthening your cybersecurity posture.

This document details the information you must provide for the connector to authenticate with Obsidian Security and how to obtain that information from Obsidian Security. See create a data integration for step-by-step instructions on setting up the integration.

Required connection settings

When setting up a data integration, select Obsidian Security from the Connector dropdown. If you cannot find the connector in the dropdown, make sure that you have installed it first. You must provide the following information to authenticate Obsidian Security with Brinqa:

  • API URL: The Obsidian Security API base URL. The default URL is https://<obsidian-server>/.

  • API token: The API token for authenticating requests to the Obsidian Security API.

The connector authenticates using Bearer Token authentication. It sends the API token in the Authorization header as Bearer <apiToken> for all subsequent API requests.

Additional settings

The Obsidian Security connector contains additional options for specific configuration:

  • Page size: The maximum number of records to get per API request. The default setting is 50.
  • Maximum retries: The maximum number of times that the integration attempts to connect to the Obsidian Security API before giving up and reporting a failure. The default setting is 5.
  • Parallelism level: The number of parallel requests for fetching details. The default setting is the minimum of 4 or the number of available CPU cores.

Types of data to retrieve

The Obsidian Security connector can retrieve the following types of data from the Obsidian Security API:

info

The Obsidian Security connector does not currently support operation options for the types of data it retrieves.

Table 1: Data retrieved from Obsidian Security

Connector ObjectRequiredMaps to Data Model
AccountYesCloud Resource
Compliance ControlYesNot mapped
Compliance StandardYesNot mapped
EntityYesNot mapped
RuleYesViolation Definition
Rule ViolationYesViolation
SettingYesViolation Definition
Setting ViolationYesViolation
TenantYesCloud Resource
UserYesPerson

This diagram shows how Rule Violation and Setting Violation connector objects relate to their definitions and the assets they are found in.

Figure 1: Connector object relationships

info

For detailed steps on how to view the data retrieved from Obsidian Security in the Brinqa Platform, see How to view your data.

Attribute mappings

Expand the sections below to view the mappings between the source and the Brinqa data model attributes.

Account

Table 2: Account attribute mappings

Source Field NameSDM Attribute
AccountResource.addresses[] (formatted)ADDRESSES
AccountResource.aliasesALIASES
AccountResource.alternativeEmails[].rawALTERNATIVE_EMAILS
AccountResource.alternativeNamesALTERNATIVE_NAMES
AccountResource.alternativePhones[].rawALTERNATIVE_PHONES
AccountResource.temporalProperties.createdCREATED_TIME
AccountResource.temporalProperties.deletedDELETED_TIME
AccountResource.email.rawEMAILS
AccountResource.enabledENABLED
AccountResource.entitySubTypeENTITY_SUB_TYPE
AccountResource.temporalProperties.firstActiveFIRST_ACTIVE
AccountResource.temporalProperties.firstObservedFIRST_OBSERVED
AccountResource.firstNameFIRST_NAME
AccountResource.idACCOUNT_ID
AccountResource.automatedIS_AUTOMATED
AccountResource.isAdminIS_ADMIN
AccountResource.isDeletedIS_DELETED
AccountResource.isLicensedIS_LICENSED
AccountResource.mfaEnabledIS_MFA_ENABLED
AccountResource.isRestrictedIS_RESTRICTED
AccountResource.temporalProperties.lastActiveLAST_ACTIVE
Generated (sync capture timestamp)LAST_CAPTURED
AccountResource.temporalProperties.lastModifiedLAST_MODIFIED
AccountResource.lastNameLAST_NAME
AccountResource.temporalProperties.lastObservedLAST_OBSERVED
AccountResource.nameNAME
AccountResource.nativeIdNATIVE_ID
AccountResource.obsidianStatusOBSIDIAN_STATUS
AccountResource.phone.rawPHONE_NUMBERS
AccountResource.phone.typePHONE_TYPE
AccountResource.statusPROVIDER_STATUS
AccountResource.roles[].nameROLES
AccountResource.services[].nameSERVICES
AccountResource.temporalProperties.createdSOURCE_CREATED_DATE
AccountResource.temporalProperties.lastModifiedSOURCE_LAST_MODIFIED
AccountResource.status (normalized)SOURCE_STATUS
AccountResource.tenantIdTENANT_ID
AccountResource.temporalProperties.terminatedTERMINATION_DATE
AccountResource.name + tenantId (or nativeId + tenantId)UID
AccountResource.user.idUSER_ID
AccountResource.userGroupsUSER_GROUPS
AccountResource.usernameUSERNAME
Compliance Control

Table 3: Compliance Control attribute mappings

Source Field NameSDM Attribute
ComplianceControlResource.idCONTROL_ID
ComplianceControlResource.descriptionDESCRIPTION
ComplianceControlResource.identifierIDENTIFIER
Generated (sync capture timestamp)LAST_CAPTURED
ComplianceControlResource.linkLINK
ComplianceControlResource.nameNAME
ComplianceControlResource.standardIdSTANDARD_ID
ComplianceControlResource.idUID
Compliance Standard

Table 4: Compliance Standard attribute mappings

Source Field NameSDM Attribute
ComplianceStandardResource.descriptionDESCRIPTION
ComplianceStandardResource.isCustomIS_CUSTOM
ComplianceStandardResource.isNormalizedIS_NORMALIZED
Generated (sync capture timestamp)LAST_CAPTURED
ComplianceStandardResource.linkLINK
ComplianceStandardResource.nameNAME
ComplianceStandardResource.orgIdORG_ID
ComplianceStandardResource.publisherPUBLISHER
ComplianceStandardResource.idSTANDARD_ID
ComplianceStandardResource.idUID
ComplianceStandardResource.versionVERSION
Entity

Table 5: Entity attribute mappings

Source Field NameSDM Attribute
EntityResource.temporalProperties.createdCREATED_TIME
EntityResource.idENTITY_ID
EntityResource.entitySubTypeENTITY_SUB_TYPE
EntityResource.isDeletedIS_DELETED
Generated (sync capture timestamp)LAST_CAPTURED
EntityResource.temporalProperties.lastModifiedLAST_MODIFIED
EntityResource.nameNAME
EntityResource.nativeIdNATIVE_ID
EntityResource.rawRefsRAW_REFS
EntityResource.services[].nameSERVICES
EntityResource.temporalProperties.createdSOURCE_CREATED_DATE
EntityResource.temporalProperties.lastModifiedSOURCE_LAST_MODIFIED
EntityResource.tenantIdTENANT_ID
nativeId or name + tenantIdUID
EntityResource.userGroupsUSER_GROUPS
Rule

Table 6: Rule attribute mappings

Source Field NameSDM Attribute
RuleResource.analyticIdANALYTIC_ID
RuleResource.benchmarkBENCHMARK
RuleResource.controlIdsCONTROL_IDS
RuleResource.createdAtCREATED
RuleResource.descriptionDESCRIPTION
RuleResource.descriptionShortDESCRIPTION_SHORT
Generated (sync capture timestamp)LAST_CAPTURED
RuleResource.updatedAtLAST_UPDATED
RuleResource.nameNAME
RuleResource.obsidianRuleOBSIDIAN_RULE
RuleResource.remediationInstructionsRECOMMENDATION
RuleResource.remediationInstructionsREMEDIATION_INSTRUCTIONS
RuleResource.riskLevelRISK_LEVEL
RuleResource.idRULE_ID
RuleResource.typeRULE_TYPE
RuleResource.riskLevel (normalized)SEVERITY
RuleResource.riskLevel (scored)SEVERITY_SCORE
RuleResource.createdAtSOURCE_CREATED_DATE
RuleResource.updatedAtSOURCE_LAST_MODIFIED
RuleResource.riskLevelSOURCE_SEVERITY
RuleResource.standardIdsSTANDARD_IDS
RuleResource.idUID
RuleResource.violationsVIOLATIONS
Rule Violation

Table 7: Rule Violation attribute mappings

Source Field NameSDM Attribute
RuleResource.typeCATEGORIES
RuleResource.exceptionsCount.activeEXCEPTIONS_COUNT_ACTIVE
RuleResource.exceptionsCount.inactiveEXCEPTIONS_COUNT_INACTIVE
RuleViolationResource.obsecFirstSeenFIRST_SEEN
Generated (sync capture timestamp)LAST_CAPTURED
RuleViolationResource.obsecLastRemediatedLAST_REMEDIATED
RuleViolationResource.obsecLastSeenLAST_SEEN
RuleViolationResource.violationIdNAME
RuleViolationResource.obsecFirstSeenOBSEC_FIRST_SEEN
RuleViolationResource.obsecLastRemediatedOBSEC_LAST_REMEDIATED
RuleViolationResource.obsecLastSeenOBSEC_LAST_SEEN
RuleResource.platformIdPLATFORM_ID
RuleResource.productIdsPRODUCT_IDS
RuleResource.statePROVIDER_STATUS
RuleResource.releaseLabelRELEASE_LABEL
RuleViolationResource (raw JSON)RESULTS
RuleResource.riskAcceptedRISK_ACCEPTED
RuleResource.securityDomainSECURITY_DOMAIN
Normalized state/riskAcceptedSOURCE_STATUS
RuleResource.stateSTATE
RuleResource.tagsTAGS
RuleViolationResource.accountIdTARGETS
RuleViolationResource.appName + tenantIdTARGETS
RuleViolationResource.clientIdTARGETS
RuleViolationResource.id + tenantId (Resource ID)TARGETS
RuleViolationResource.name + tenantIdTARGETS
RuleViolationResource.orgName + tenantIdTARGETS
RuleViolationResource.policyName + tenantIdTARGETS
RuleViolationResource.repositoryName + tenantIdTARGETS
RuleViolationResource.tokenIdTARGETS
RuleViolationResource.userName + tenantIdTARGETS
RuleResource.tenantUuidTARGETS
RuleViolationResource.tenantIdTENANT_ID
RuleResource.tenantUuidTENANT_UUID
RuleResource.idTYPE
RuleViolationResource.violationIdUID
Setting

Table 8: Setting attribute mappings

Source Field NameSDM Attribute
SettingResource.controlIdsCONTROL_IDS
SettingResource.descriptionDESCRIPTION
Generated (sync capture timestamp)LAST_CAPTURED
SettingResource.nameNAME
SettingResource.descriptionRECOMMENDATION
SettingResource.riskLevelRISK_LEVEL
SettingResource.riskLevel (normalized)SEVERITY
SettingResource.riskLevel (scored)SEVERITY_SCORE
SettingResource.riskLevelSOURCE_SEVERITY
SettingResource.standardIdsSTANDARD_IDS
SettingResource.idUID
Setting Violation

Table 9: Setting Violation attribute mappings

Source Field NameSDM Attribute
SettingResource.canSetValueCAN_SET_VALUE
SettingResource.platformCategoryCATEGORIES
SettingResource.dataTypeDATA_TYPE
SettingResource.isActivityBasedIS_ACTIVITY_BASED
Generated (sync capture timestamp)LAST_CAPTURED
SettingResource.lastScannedLAST_SCANNED
SettingResource.lastStateChangeLAST_SEEN
SettingResource.lastStateChangeLAST_STATE_CHANGE
SettingResource.locationLOCATION
SettingResource.uniqueIdNAME
SettingResource.operationOPERATION
SettingResource.optionsOPTIONS
SettingResource.orgIdORG_ID
SettingResource.platformIdPLATFORM_ID
SettingResource.platformCategoryPLATFORM_CATEGORY
SettingResource.platformSettingIdPLATFORM_SETTING_ID
SettingResource.productIdsPRODUCT_IDS
SettingResource.statePROVIDER_STATUS
SettingResource.releaseLabelRELEASE_LABEL
SettingResource.riskAcceptedRISK_ACCEPTED
SettingResource.securityDomainSECURITY_DOMAIN
SettingResource.targetSETTING_TARGET
normalizeFindingStatus(status)SOURCE_STATUS
SettingResource.stateSTATE
SettingResource.tagsTAGS
SettingResource.tenantUuidTARGETS
SettingResource.tenantIdTENANT_ID
SettingResource.tenantUuidTENANT_UUID
SettingResource.idTYPE
SettingResource.uniqueIdUID
SettingResource.uniqueIdUNIQUE_ID
SettingResource.unitsUNITS
SettingResource.valueVALUE
Tenant

Table 10: Tenant attribute mappings

Source Field NameSDM Attribute
TenantResource.idpCapableIDP_CAPABLE
TenantResource.isCustomIS_CUSTOM
TenantResource.isIdpIS_IDP
TenantResource.isMarketplaceIS_MARKETPLACE
TenantResource.isOnPremIS_ON_PREM
Generated (sync capture timestamp)LAST_CAPTURED
TenantResource.logoDescriptorLOGO_DESCRIPTOR
TenantResource.nameNAME
TenantResource.obsidianProductsOBSIDIAN_PRODUCTS
TenantResource.platformPLATFORM
TenantResource.platformIdPLATFORM_ID
TenantResource.productionPRODUCTION
TenantResource.sensitivitySENSITIVITY
TenantResource.updatedTimeSOURCE_LAST_MODIFIED
TenantResource.tagsTAGS
TenantResource.idTENANT_ID
TenantResource.idUID
TenantResource.updatedByUPDATED_BY
TenantResource.updatedTimeUPDATED_TIME
TenantResource.valueVALUE
User

Table 11: User attribute mappings

Source Field NameSDM Attribute
UserResource.accounts[].nameACCOUNTS
UserResource.temporalProperties.createdCREATED_TIME
UserResource.departmentDEPARTMENT
UserResource.divisionDIVISION
UserResource.email.rawEMAILS
UserResource.enabledENABLED
UserResource.entitySubTypeENTITY_SUB_TYPE
UserResource.firstNameFIRST_NAME
UserResource.isDeletedIS_DELETED
UserResource.isPrivilegedIS_PRIVILEGED
UserResource.isServiceAccountIS_SERVICE_ACCOUNT
UserResource.isTerminatedIS_TERMINATED
UserResource.jobTitleJOB_TITLE
Generated (sync capture timestamp)LAST_CAPTURED
UserResource.temporalProperties.lastModifiedLAST_MODIFIED
UserResource.lastNameLAST_NAME
UserResource.nameNAME
UserResource.nativeIdNATIVE_ID
UserResource.phone.rawPHONE_NUMBERS
UserResource.rawRefsRAW_REFS
UserResource.services[].nameSERVICES
UserResource.temporalProperties.createdSOURCE_CREATED_DATE
UserResource.temporalProperties.lastModifiedSOURCE_LAST_MODIFIED
UserResource.tenantIdTENANT_ID
UserResource.timezoneTIMEZONES
UserResource.email.raw (or id)UID
UserResource.userGroupsUSER_GROUPS
UserResource.idUSER_ID

APIs

The Obsidian Security connector uses the Obsidian Security API. Specifically, it uses the following endpoints:

Table 12: Obsidian Security API endpoints

Connector ObjectAPI Endpoint
AccountPOST v1/gql — GraphQL query getAccounts
Compliance ControlGET posture/v3_0/compliance/info/{standardId}
Compliance StandardGET posture/v3_0/compliance/list
EntityPOST v1/gql — GraphQL query getEntities
RuleGET posture/v3_0/rules/list
Rule ViolationGET posture/v3_0/rules/info/{ruleId}/preview
SettingGET posture/v3_0/settings/list
Setting ViolationGET posture/v3_0/settings/list
TenantGET v1/connection-management/tenants
UserPOST v1/gql — GraphQL query getUsers

Changelog

The Obsidian Security connector has undergone the following changes:

Table 13: Obsidian Security Changelog

VersionDescriptionDate Published
3.0.0Initial Integration+ release.April 27th, 2026