Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Introduction

...

  1. Login to admin webex -  https://admin.webex.com/manage-users/users with a service account. Note: this has to be a separate account from your main admin account, since it is not possible to assign "Compliance officer" role to yourself. It needs to be assigned a different account.
    In the Profile tab click on the admin line:

  2. Set the user to have a  Compliance Officer and Full administrator privileges:

                 

  3. Login to Webex Development: https://developer.webex.com/ with the user created above.

  4. Click on Start Building Apps button:

  5. Click Create an Integration

    Select Integration as a new app type:

  6. Fill in all the required settings.  Integration Name should be simply "SphereShield".  The icon should be the SphereShield logo.  Contact email should be support@agatsoftware.com

  7. The important setting here is the Redirect URL. You should enter your Access Portal URL (provided by AGAT) with the addition of /account/webexauth suffix. 

    Example for Fiji: https://ap.fiji.agat.world/account/webexauth

    Note that the redirect URL is case sensitive.

  8. Select the following scopes for Webex Meeting:

    • meeting:recordings_read

    • meeting:admin_recordings_read

    • spark-admin:people_read

    • spark-admin:resource_group_memberships_read

    • spark-admin:resource_groups_read

    • spark-compliance:events_read

    • spark-compliance:memberships_read

    • spark-compliance:team_memberships_read

    • spark-compliance:teams_read

    • meeting:admin_schedule_read (scope needed to request meeting title for eDiscovery purpose)

    • meeting:admin_schedule_write (scope needed for sending meeting invitee to make Compliance officer as CoHost in scheduled  meeting)

    • meeting:participants_write (scope needed for being able to expel users from scheduled meeting)

    • meeting:admin_participants_read (scope needed to create “meetingParticipants” webhook)

    • meeting:controls_read (scope needed to be able to request meeting recording state)

    • meeting:controls_write (scope needed to be able to change meeting recording state)

    • meeting:admin_preferences_write(scope needed to be able to make Compliance officer as CoHost in PMR meeting)

    • spark-compliance:meetings_write (scope needed for beeing able to get ended meeting chats)

    • spark-compliance:meetings_read(scope needed for beeing able to get ended meeting chats)

    • spark-admin:calls_write (might require escalation to Webex Support)   (Note: The following scopes from the above list may not exist:  spark-admin:call_memberships_read, spark-admin:calls_read, spark-admin:calls_write)

...

Code:

Code Block
languagejs
try {
    let requiredScopes
} catch (e) {
    console.log("variable already declared")
    console.log(e)
}

if (typeof requiredScopes === 'undefined') {
    console.log("defining scopes")
    requiredScopes = [
   let webexMeeting = [
    "meeting:recordings_read",

       "meeting:admin_recordings_read",
   
    "spark-admin:people_read",
   
    "spark-admin:resource_group_memberships_read",
        "spark-admin:resource_groups_read",
   
    "spark-compliance:events_read",
  
     "spark-compliance:memberships_read",
        "spark-compliance:team_memberships_read",
  
     "spark-compliance:teams_read"
,
       "meeting:admin_schedule_read"
        "meeting:admin_schedule_write",
        "meeting:participants_write"
  ,
     "meeting:admin_participants_read"
,
       "meeting:controls_read"
   ,
    "meeting:controls_write"
 ,
      "meeting:admin_preferences_write",
        "spark-compliance:meetings_writewrit"
,
       "spark-compliance:meetings_read"
   ,
    "spark-admin:calls_write"
]

function  ]clickCheckBoxes(scopeList) {

  }  for (let scope of requiredScopesscopeList) {
    let    validScopescope = scope.replace(":", "\\:")

        try {
            element = document.querySelector(`input[id*=${validScopescope}]`)
            if (!element.checked) {
                console.log(`Clicking ${validScopescope}`)
                element.click()
            }
        } catch (e) {
            console.log(`couldn't find element ${scope}`)
            console.log(e)
        }
    }
}

clickCheckBoxes(webexMeeting)

Register the Webex App in the Admin Portal

...

  1. Copy all the text in OAuth Authorization URL field (black box):


    (can be easily done by 3 left clicks on the black box text to select all the URL and Ctrl+C to copy)

  2. Paste it into a new tab of Chrome (recommends to use incognito) in the address line and press Enter:

  3. Accept the required permissions:


    4. You will be redirected to the Admin Portal Webex App Configuration page ([adminPortalURL]/account/webexauth):

...

Enter the settings from Webex App: Client ID, Client Secret, Integration ID
In External Portal Web API URL enter your AP external URL, like https://env29.agatcloud.com

Info

Note that here it comes without any suffix, just the site base URL.

...