SaaS Deployment Steps
In this model, Altoura hosts the Remote Expert backend and Teams web app ataltouraremoteacs.azurewebsites.net.
Step 1: Create the Multitenant App Registration
Create the app in Entra ID -> App registrations (do not use Enterprise applications for creation/configuration):- Open Entra admin center -> Identity -> Applications -> App registrations.
- Click New registration.
- Set:
- Name: Altoura Remote Expert (or your naming standard)
- Supported account types: Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant)
- Click Register.
- Save:
- Application (client) ID
- Directory (tenant) ID
Step 2: Configure Authentication Callback
- Open your new app registration -> Authentication.
- Add the callback/redirect URI provided by Altoura for SaaS deployment.
- Enable required token settings if requested by your security policy/app requirements.
- Save changes.
Step 3: Configure Expose an API
This is what enables Teams SSO to request a token for your app’s API. If it is missing, Teams sign-in fails with an error that Azure AD “can’t find the resource.” Set the Application ID URI- Open app registration -> Expose an API.
- Next to Application ID URI, click Set and use the pattern:
<application-client-id> with the Application (client) ID from Step 1 (Altoura confirms the exact value for your deployment).
Add a scope
- Click Add a scope and set:
- Scope name:
access_as_user - Who can consent: Admins and users
- Admin consent display name: Access as user
- Admin consent description: Allow the Teams app to access this API on behalf of the signed-in user
- State: Enabled
- Scope name:
- Click Add scope.
- Click Add a client application and pre-authorize each Microsoft Teams client (add both), checking the
access_as_userscope for each:1fec8e78-bce4-4aaf-ab1b-5451cc387264(Teams desktop / mobile)5e3ce6c0-2b1f-4285-8d4b-75ee78787346(Teams web)
Step 4: Add Microsoft Graph API Permissions
- Open app registration -> API permissions -> Add a permission -> Microsoft Graph -> Delegated permissions.
- Add:
| Permission | Type | Purpose |
|---|---|---|
| OnlineMeetings.ReadWrite | Delegated | Create and manage Teams meetings |
| Chat.ReadWrite | Delegated | Send expert notifications in Teams chat |
| Contacts.Read | Delegated | Read signed-in user’s contacts |
| User.Read.All | Delegated | Resolve user profile details |
| User.Read | Delegated | Read signed-in user’s basic profile |
| offline_access | OAuth / OIDC | Silent token renewal |
Step 5: Deploy an Azure Communication Services (ACS) Resource
- Sign in to the Azure Portal.
- Click + Create a resource and search for Communication Services.
- Select Communication Services and click Create.
- Configure the resource:
- Subscription: Select your Azure subscription
- Resource group: Choose existing or create new
- Resource name: For example,
altoura-remote-expert-acs - Data location: Region closest to users
- Click Review + create, then Create.
- Open the ACS resource -> Keys, then copy:
- ACS Connection string
- ACS Endpoint
Step 6: Provide Details to Altoura
Share these values securely with Altoura. Altoura uses them to generate your tenant-specific Teams app package:| Value | Where to Find |
|---|---|
| Application (client) ID | App registration -> Overview |
| Directory (tenant) ID | App registration -> Overview |
| Redirect URI(s) configured | App registration -> Authentication |
| Application ID URI / scope details | App registration -> Expose an API |
| ACS Connection string | ACS resource -> Keys |
| ACS Endpoint | ACS resource -> Keys |
Step 7: Network Configuration
Allow outbound HTTPS access:| URL | Protocol | Purpose |
|---|---|---|
altouraremoteacs.azurewebsites.net | HTTPS (443) | Hosted Teams app and backend endpoints |
Step 8: Teams App Package (Generated by Altoura)
Using the details you shared in Step 6, Altoura generates a tenant-specific Teams app package (.zip) preconfigured for your environment. You do not author or edit the manifest yourself.
For reference, Altoura maps these manifest values from your app registration:
webApplicationInfo.id= Application (client) IDwebApplicationInfo.resource= Application ID URI from Expose an API- Hosted URLs /
validDomains= SaaS hosting (altouraremoteacs.azurewebsites.net)
Step 9: Upload the Teams App Package
After Altoura sends your tenant-specific.zip package:
- Open Teams Admin Center -> Teams apps -> Manage apps.
- Click Upload new app.
- Upload the
.zippackage. - Confirm app status is Allowed.
Recommended: Pre-install / Pin in Meeting Extensions
- Go to Teams apps -> Setup policies.
- Edit Global policy (or pilot policy).
- In Meeting Extensions, add Altoura Remote Expert.
- Assign the policy.
Step 10: Add the Teams App Object ID and Grant Admin Consent
Now that the Teams app is uploaded, finish the app registration and grant consent.- In Teams Admin Center -> Teams apps -> Manage apps, open the Altoura Remote Expert app and copy its Object ID.
- Go to Entra admin center -> App registrations -> your multitenant app -> Expose an API -> Authorized client applications.
- Click Add a client application, add the Teams app Object ID, check the
access_as_userscope, and save. (This is in addition to the two Microsoft Teams client IDs added in Step 3.) - Go to API permissions and click Grant admin consent.
- Verify all required permissions show Granted.

