Zoom
Visualize Zoom users, settings, roles, and groups, map them to employees, and monitor changes through queries and alerts.
- Installation
- Data Model
- Types
Installation
For this integration, you will first need to create an app within Zoom, and provide the API credentials associated with that app to JupiterOne.
Configuration in Zoom
- In the Zoom App Marketplace, go to the Develop dropdown menu in the top-right corner and select Build App.
- In the Choose Your App window, click Create under the Server-to-Server OAuth type. If you do not see this OAuth type, contact your Zoom administrator to be given permission for the Server-to-Server OAuth type.
- Enter an app name and app type to begin creation. Your app configuration page opens for the new app.
- Take note of your
Account ID,Client ID, andClient secretfor use later in JupiterOne. - Enter the required information for the app credentials, information, feature, scopes sections and so on. Zoom prompts you if any required fields are omitted.
- In the Scopes section, add the following:
| Scope | Used to |
|---|---|
user:read:user:admin | Read the user the app authenticates as, to build the account entity |
user:read:list_users:admin | List the users in the account |
user:read:settings:admin | Read each user's meeting and recording security settings |
group:read:list_groups:admin | List the groups in the account |
group:read:list_members:admin | List the members of each group |
role:read:list_roles:admin | List the roles in the account |
role:read:list_members:admin | List the members assigned to each role |
Zoom has replaced its classic scopes with the granular scopes above, and new apps no longer offer the classic ones. If your app still shows only classic scopes, add user:read:admin, group:read:admin and role:read:admin instead.
Zoom only lists the scopes your own Zoom role allows. If a scope above is missing from the list, ask a Zoom admin to give your role view access to Users, Groups and Roles under User Management > Roles, then return to the app and add it. A step whose scope is not granted on the Zoom app fails with Zoom error 4711.
- On the final screen, after you have provided all the required information, click
Activate your appto complete the app creation.
After completing this configuration within Zoom, you are ready to go to JupiterOne to finalize the integration.
Configuration in JupiterOne
To install the Zoom integration in JupiterOne, navigate to the Integrations tab in JupiterOne and select Zoom. Click New Instance to begin configuring your integration.
Creating an instance requires the following:
-
The Account Name used to identify the Zoom account in JupiterOne. Ingested entities will have this value stored in
tag.AccountNamewhen theAccountNametoggle is enabled. -
Description to assist in identifying the integration instance, if desired.
-
Polling Interval that you feel is sufficient for your monitoring needs. You may leave this as
DISABLEDand manually execute the integration. -
The Zoom Account ID, Client ID, Client Secret, and Scopes. Select the same scopes you granted to the Zoom app; JupiterOne skips any step whose scope is not selected here, but selecting a scope does not grant it on the Zoom side.
Click Create once all values are provided to finalize the integration.
Next steps
Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Account | zoom_account | Account |
| Group | zoom_group | Group |
| Role | zoom_role | AccessRole |
| User | zoom_user | User |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
zoom_account | HAS | zoom_user |
zoom_account | HAS | zoom_group |
zoom_account | HAS | zoom_role |
zoom_group | HAS | zoom_user |
zoom_user | ASSIGNED | zoom_role |
Zoom User
zoom_user inherits from User
| Property | Type | Description | Specifications |
|---|---|---|---|
audioConferencingTollFreeAndFeeBasedTollCallAllowWebinarAttendeesDial | boolean | ||
audioConferencingTollFreeAndFeeBasedTollCallEnable | boolean | ||
createdAt | string | ||
dept | string | ||
emailNotificationAlternativeHostReminder | boolean | ||
emailNotificationCancelMeetingReminder | boolean | ||
emailNotificationCloudRecordingAvailableReminder | boolean | ||
emailNotificationJbhReminder | boolean | ||
emailNotificationScheduleForReminder | boolean | ||
featureCnMeeting | boolean | ||
featureConcurrentMeeting | string | ||
featureInMeeting | boolean | ||
featureLargeMeeting | boolean | ||
featureLargeMeetingCapacity | integer | ||
featureMeetingCapacity | integer | ||
featureWebinar | boolean | ||
featureWebinarCapacity | integer | ||
featureZoomEvents | boolean | ||
featureZoomEventsCapacity | integer | ||
featureZoomPhone | boolean | ||
groupIds | array of strings | ||
hostKey | string | ||
inMeetingAllowLiveStreaming | boolean | ||
inMeetingAllowParticipantsChatWith | integer | ||
inMeetingAllowParticipantsToRename | boolean | ||
inMeetingAllowUsersSaveChats | integer | ||
inMeetingAnnotation | boolean | ||
inMeetingAttendeeOnHold | boolean | ||
inMeetingAutoSavingChat | boolean | ||
inMeetingBreakoutRoom | boolean | ||
inMeetingBreakoutRoomSchedule | boolean | ||
inMeetingChat | boolean | ||
inMeetingClosedCaption | boolean | ||
inMeetingCoHost | boolean | ||
inMeetingCustomDataCenterRegions | boolean | ||
inMeetingCustomLiveStreamingService | boolean | ||
inMeetingCustomServiceInstructions | string | ||
inMeetingDataCenterRegions | array of strings | ||
inMeetingE2eEncryption | boolean | ||
inMeetingEntryExitChime | string | ||
inMeetingFarEndCameraControl | boolean | ||
inMeetingFeedbacl | boolean | ||
inMeetingFileTransfer | boolean | ||
inMeetingGroupHd | boolean | ||
inMeetingJoinFromDesktop | boolean | ||
inMeetingJoinFromMobile | boolean | ||
inMeetingLiveStreamingFacebook | boolean | ||
inMeetingLiveStreamingYoutube | boolean | ||
inMeetingMeetingReactions | boolean | ||
inMeetingNonVerbalFeedback | boolean | ||
inMeetingPolling | boolean | ||
inMeetingPrivateChat | boolean | ||
inMeetingRecordPlayVoice | boolean | ||
inMeetingRemoteControl | boolean | ||
inMeetingRemoteSupport | boolean | ||
inMeetingRequestPermissionToUnmute | boolean | ||
inMeetingRequestPermissionToUnmuteParticipants | boolean | ||
inMeetingScreenSharing | boolean | ||
inMeetingShareDualCamera | boolean | ||
inMeetingShowAJoinFromYourBrowserLink | boolean | ||
inMeetingShowMeetingControlToolbar | boolean | ||
inMeetingVirtualBackground | boolean | ||
inMeetingVirtualBackgroundSettingsAllowUploadCustom | boolean | ||
inMeetingVirtualBackgroundSettingsAllowVideos | boolean | ||
inMeetingVirtualBackgroundSettingsEnable | boolean | ||
inMeetingWaitingRoom | boolean | ||
inMeetingWebinarChatAllowAttendeesChatWith | integer | ||
inMeetingWebinarChatAllowAutoSaveLocalChatFile | boolean | ||
inMeetingWebinarChatAllowPanelistsChatWith | integer | ||
inMeetingWebinarChatAllowPanelistsSendDirectMessage | boolean | ||
inMeetingWebinarChatAllowUsersSaveChats | integer | ||
inMeetingWebinarChatDefaultAttendeesChatWith | integer | ||
inMeetingWebinarChatEnable | boolean | ||
inMeetingWebinarLiveStreamingCustomServiceInstructions | string | ||
inMeetingWebinarLiveStreamingEnable | boolean | ||
inMeetingWebinarLiveStreamingLiveStreamingReminder | boolean | ||
inMeetingWebinarLiveStreamingLiveStreamingService | array of strings | ||
inMeetingWhoCanShareScreen | string | ||
inMeetingWhoCanShareScreenWhenSomeoneIsSharing | string | ||
inMeetingWorkplaceByFacebook | boolean | ||
language | string | ||
lastClientVersion | string | ||
lastLoginTime | string | ||
meetingAuthentication | boolean | ||
meetingSecurityApprovedOrDeniedCountriesOrRegionsEnable | boolean | ||
meetingSecurityAutoSecurity | boolean | ||
meetingSecurityBlockUserDomain | boolean | ||
meetingSecurityBlockUserDomainList | array of strings | ||
meetingSecurityEmbedPasswordInJoinLink | boolean | ||
meetingSecurityEncryptionType | string | ||
meetingSecurityEndToEndEncryptedMeetings | boolean | ||
meetingSecurityMeetingPassword | boolean | ||
meetingSecurityMeetingPasswordRequirementConsecutiveCharactersLength | integer | ||
meetingSecurityMeetingPasswordRequirementHaveLetter | boolean | ||
meetingSecurityMeetingPasswordRequirementHaveNumber | boolean | ||
meetingSecurityMeetingPasswordRequirementHaveSpecialCharacter | boolean | ||
meetingSecurityMeetingPasswordRequirementHaveUpperAndLowerCharacters | boolean | ||
meetingSecurityMeetingPasswordRequirementLength | integer | ||
meetingSecurityMeetingPasswordRequirementOnlyAllowNumeric | boolean | ||
meetingSecurityMeetingPasswordRequirementWeakEnhanceDetection | boolean | ||
meetingSecurityPasswordForPmi | string | ||
meetingSecurityPhonePassword | boolean | ||
meetingSecurityPmiPassword | boolean | ||
meetingSecurityRequirePasswordForScheduledMeeting | boolean | ||
meetingSecurityRequirePasswordForScheduledWebinar | boolean | ||
meetingSecurityWaitingRoom | boolean | ||
meetingSecurityWaitingRoomSettingsParticipantsToPlaceInWaitingRoom | integer | ||
meetingSecurityWaitingRoomSettingsUsersWhoCanAdmitParticipantsFromWaitingRoom | integer | ||
meetingSecurityWaitingRoomSettingsWhitelistedDomainsForWaitingRoom | string | ||
meetingSecurityWebinarPassword | boolean | ||
phoneNumber | string | ||
picUrl | string | ||
pmi | integer | ||
profileRecordingStorageLocationAllowedValues | array of strings | ||
profileRecordingStorageLocationValue | string | ||
recordingAskHostToConfirmDisclaimer | boolean | ||
recordingAskParticipantsToConsentDisclaimer | boolean | ||
recordingAuthentication | boolean | ||
recordingAutoDeleteCmr | boolean | ||
recordingAutoDeleteCmrData | integer | ||
recordingAutoRecording | string | ||
recordingCloudRecording | boolean | ||
recordingHostDeleteCloudRecording | boolean | ||
recordingHostPauseStopRecording | boolean | ||
recordingIpAddressAccessControlEnable | boolean | ||
recordingIpAddressAccessControlIpAddressesOrRanges | string | ||
recordingLocalRecording | boolean | ||
recordingRecordAudioFile | boolean | ||
recordingRecordGalleryView | boolean | ||
recordingRecordingAudioTranscript | boolean | ||
recordingRecordingDisclaimer | boolean | ||
recordingRecordingPasswordRequirementHaveLetter | boolean | ||
recordingRecordingPasswordRequirementHaveNumber | boolean | ||
recordingRecordingPasswordRequirementHaveSpecialCharacter | boolean | ||
recordingRecordingPasswordRequirementLength | integer | ||
recordingRecordingPasswordRequirementOnlyAllowNumeric | boolean | ||
recordingRecordSpeakerView | boolean | ||
recordingRequirePasswordForSharedCloudRecordings | boolean | ||
recordingSaveChatText | boolean | ||
recordingShowTimestamp | boolean | ||
roleId | string | ||
scheduleMeetingAudioType | string | ||
scheduleMeetingDefaultPasswordForScheduledMeetings | string | ||
scheduleMeetingEmbedPasswordInJoinLink | boolean | ||
scheduleMeetingForcePmiJbhPassword | boolean | ||
scheduleMeetingHostVideo | boolean | ||
scheduleMeetingJoinBeforeHost | boolean | ||
scheduleMeetingMeetingPasswordRequirementConsecutiveCharactersLength | integer | ||
scheduleMeetingMeetingPasswordRequirementHaveLetter | boolean | ||
scheduleMeetingMeetingPasswordRequirementHaveNumber | boolean | ||
scheduleMeetingMeetingPasswordRequirementHaveSpecialCharacter | boolean | ||
scheduleMeetingMeetingPasswordRequirementHaveUpperAndLowerCharacters | boolean | ||
scheduleMeetingMeetingPasswordRequirementLength | integer | ||
scheduleMeetingMeetingPasswordRequirementOnlyAllowNumeric | boolean | ||
scheduleMeetingMeetingPasswordRequirementWeakEnhanceDetection | boolean | ||
scheduleMeetingMuteUponEntry | boolean | ||
scheduleMeetingParticipantsVideo | boolean | ||
scheduleMeetingPersonalMeeting | boolean | ||
scheduleMeetingPmiPassword | string | ||
scheduleMeetingPstnPasswordProtected | boolean | ||
scheduleMeetingRequirePasswordForInstantMeetings | boolean | ||
scheduleMeetingRequirePasswordForPmiMeetings | string | ||
scheduleMeetingRequirePasswordForScheduledmeetings | boolean | ||
scheduleMeetingRequirePasswordForSchedulingNewMeetings | boolean | ||
scheduleMeetingUsePmiForInstantMeetings | boolean | ||
scheduleMeetingUsePmiForScheduledMeetings | boolean | ||
telephonyAudioConferenceInfo | string | ||
telephonyShowInternationalNumbersLink | boolean | ||
telephonyTelephonyRegionsAllowedValues | array of strings | ||
telephonyTelephonyRegionsSelectionValue | string | ||
telephonyThirdPartyAudio | boolean | ||
timezone | string | ||
tspCallOut | boolean | ||
tspCallOutCountries | array of strings | ||
tspShowInternationalNumbersLink | boolean | ||
type | integer | ||
verified | integer |