Hi @Nguyen Uy Dinh ,
Welcome to the Microsoft Q&A Platform!
Using Azure Communication Services (ACS) to join Teams calls without requiring admin consent for Teams.ManageCalls and Teams.ManageChats permissions.
Use ACS Direct Calling Feature: Azure Communication Services allows you to join Teams calls directly by generating ACS tokens. This does not require Teams.ManageCalls or Teams.ManageChats permissions.
Authenticate Users with Azure AD: Authenticate users using Microsoft Authentication Library (MSAL) to sign in with their Microsoft accounts. Only request basic scopes like openid
, profile
, and email
.
Exchange Access Token for ACS Identity: Use the ACS Identity SDK to create a user and issue an ACS token without relying on Teams-specific permissions:
API: Use the CommunicationIdentityClient.createUserAndToken()
method.
Token scopes: Use ["voip"]
for calling functionality.
Avoid Teams-Specific APIs: The Teams APIs like Teams.ManageCalls and Teams.ManageChats are only needed if interacting with Teams-specific features like managing chats or initiating calls programmatically within Teams. These require admin consent, so avoid these APIs.
Use ACS Meeting URLs: Join Teams calls by using ACS meeting join links (Teams meeting URLs). ACS handles the call connection without needing direct Teams API permissions.
If the answer is helpful, please click "Accept Answer" and kindly upvote it.