Note: Each instance of CR or CI will need it’s own Application ID.

To register an application such as LUCS Conversation Recording (CR) or LUCS Calendar Integration (CI) to access O365 resources, the following steps are required.


  1. Connect O365 Domain with Windows Azure Service and Sign in into portal.azure.com
  2. If the O365 Domain is not added to the Azure Service yet, please add it.


  3. Add new Directory


  4. Select Azure Active Directory
  5. Create new Organization and Domain

    → Wait for the directory to be created
  6. Once the Domain is added, go to your Sidebar > Azure Active Directory > App Registrations

  7.  Navigate to "New application registration"
  8. Create application
  9. → Azure open directly with your new Application. Now you have to configure the API access. 
    1. On the Sidebar > Click on "API Permissions"
    2. Select "Add a Permission"  on the panel
  10. Select O365 Exchange API > Delegated Permissions
  11. Grant the following Permissions:
    1. MailboxSettings.Read
    2. Mail.Read
    3. Mail.ReadWrite
    4. Mail.Send
    5. Calendars.Read
    6. Contacts.Read




  12. Click on "Add Permissions"
    → The permissions table is updated
  13. Via the Sidebar select > App Registrations > Click on your new App.  Copy the Client Application ID to the LUCS configuration. 

    Microsoft Azure Client Application ID

Alternative to UI: Using PowerShell for Application Registration

Please ensure pre-reqs are met:

  • AzureAD Powershell module is installed
  • If you have more than one Tenant then ensure the “Connect-AzureAD cmdlet used the TenantID Parameter with the correct Tenant GUID Value you wish to create Access for LUCS)
    • Connect-AzureAD  -TenantID <Tenant ID Here>
  • Admin permissions as signed in user to create the required application and related objects

The script below will perform the same steps as described in the UI steps above:

Azure AD App Register Script

$LuwareAppName = Read-Host "Please Enter a friendly name for the application to register "

Write-Host -ForegroundColor Yellow "Checking if AzureAD PS Module exists..."
 $Check4Mod = Get-Module AzureAD
 if($Check4Mod -eq $null)
 {
 Write-Host -ForegroundColor Yellow "AzureAD PS Module does not exist - attempting to instlal from Git..."
 try
 {
 Install-Module azuread -ErrorAction Stop
 }
 catch
 {
 Write-Host -ForegroundColor "Red" "Could not install AzureAD PS Module: $_"
 pause
 exit
 }
 }
 else
 {
 $Check4Mod = Get-Module AzureAD
 Write-Host "Azure AD Module installed $Check4Mod" -ForegroundColor Green
 }
 try
 {
 Import-Module AzureAD -ErrorAction Stop
 Connect-AzureAD -ErrorAction Stop # -TenantId
 }
 catch
 {
 Write-Host -ForegroundColor Red "Could not Import or connect to AzureAD: $_"
 }

$svcExchprincipal = Get-AzureADServicePrincipal -All $true | ? { $_.AppID -EQ "00000002-0000-0ff1-ce00-000000000000" }
 $svcADprincipal = Get-AzureADServicePrincipal -All $true | ? { $_.AppID -EQ "00000002-0000-0000-c000-000000000000" }

$reqMSX = New-Object -TypeName "Microsoft.Open.AzureAD.Model.RequiredResourceAccess"
 $reqAD = New-Object -TypeName "Microsoft.Open.AzureAD.Model.RequiredResourceAccess"
 $reqMSX.ResourceAppId = $svcExchprincipal.AppId
 $reqAD.ResourceAppId = $svcADprincipal.AppId
 $delPermission1 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "311a71cc-e848-46a1-bdf8-97ff7156d8e6","Scope"
 $delPermission2 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "181aac24-028a-486e-a649-b3742c74ec71","Scope"
 $delPermission3 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "5b9be81f-2977-4d27-8faf-bb43af8fc705","Scope"
 $delPermission4 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "5eb43c10-865a-4259-960a-83946678f8dd","Scope"
 $delPermission5 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "75767999-c7a8-481e-a6b4-19458e0b30a5","Scope"
 $delPermission6 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "185758ba-798d-4b72-9e54-429a413a2510","Scope"
 $delPermission7 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "3b5f3d61-589b-4a3c-a359-5dd4b5ee5bd5","Scope"
 $reqAD.ResourceAccess = $delPermission1
 $reqMSX.ResourceAccess = $delPermission2, $delPermission3, $delPermission4, $delPermission5, $delPermission6, $delPermission7
 $NewApp = (New-AzureADApplication -DisplayName $LuwareAppName -PublicClient $true -AvailableToOtherTenants $true -ReplyUrls "http://localhost/$LuwareAppName").objectid
 $NewAppID = (Get-AzureADApplication -ObjectId $NewApp).AppId
 Get-AzureADApplication -ObjectId $NewApp | Set-AzureADApplication -RequiredResourceAccess $reqMSX,$reqAD
 New-AzureADServicePrincipal -AppId $NewAppID
POWERSHELL