Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs
Please note that our forum is a public platform, and we will modify your question to hide your personal information in the description. Kindly ensure that you hide any personal or organizational information the next time you post an error or other details to protect personal data.
Thank you for reaching out and providing such a detailed breakdown of your scenario. This is a common challenge when creating unattended meetings for external/anonymous users via the Graph API.
I have conducted some research and laid on my own experience to directly address your questions:
1. Are lobbyBypassSettings.scope and allowedLobbyAdmitters two independent systems?
Yes, they serve two independent purposes but work together:
-
lobbyBypassSettings.scopedetermines who can automatically skip the waiting room when entering the meeting. -
allowedLobbyAdmittersdetermines who has the authority to admit users that either didn't qualify for bypass or were caught by another security policy (which is exactly what is happening in your scenario).
However, the reason your external Gmail users are getting stuck in the lobby is not because bypass settings are failing, but rather due to a separate tenant-level security policy.
By default, Teams requires at least one authenticated user (like the organizer or someone from your tenant) to "start" the meeting before anonymous users can enter. Since your service account never joins, the meeting never officially starts, and the external users are placed in a holding pattern (the lobby) waiting for an authorized user to arrive.
2. Is "everyone" Supported for allowedLobbyAdmitters?
Actually**, No**. As per the Graph API OnlineMeeting resource documentation, the only supported values for allowedLobbyAdmitters are:
-
organizerAndCoOrganizersAndPresenters -
organizerAndCoOrganizers -
unknownFutureValue
"Everyone" will only work for the allowedPresenters and lobbyBypassSettings.scope properties.
3. Is This Intentional Design?
Yes, this is completely by design. Microsoft implements this behavior to prevent unauthenticated/anonymous users from initiating meetings without a trusted host present. This acts as a security safeguard to prevent bad actors from exploiting compromised meeting join links and utilizing your organization's resources or interacting with other anonymous guests without your tenant's supervision.
4. Any Workarounds?
Yes, to achieve your goal of truly unattended meetings for external users, your Teams Administrator will need to adjust a specific Meeting Policy assigned to the service account (the account creating the meetings).
The admin needs to enable the policy that allows anonymous users to start meetings:
- Via Teams Admin Center: Go to Meetings > Meeting policies > select the policy assigned to the service account > Navigate to Meeting join & lobby (or Participants & guests) > Turn ON the setting "Anonymous users and dial-in callers can start a meeting".
- Via PowerShell: Using the Teams PowerShell module, an admin can run the following command to update the policy. Once this policy is enabled for the meeting organizer (your service account), your current Graph API configuration (
lobbyBypassSettings.scopeset toeveryone) will work perfectly, and the external Gmail users will be able to join the unattended meeting immediately without waiting in the lobby.
For further reading and official guidance on these configurations, please refer to the following Microsoft documentation:
- onlineMeeting resource type (Graph API) - Details the accepted values for
allowedLobbyAdmittersand other meeting properties. - Manage meeting policies for participants and guests - Explains the Teams admin center policy "Anonymous users and dial-in callers can start a meeting" and how it controls unattended meeting access.
- Set-CsTeamsMeetingPolicy (PowerShell) - Reference for the
AllowAnonymousUsersToStartMeetingparameter needed to implement the workaround programmatically.
Hope my answer will help you.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.