Share via

Need tenant admin consent for Microsoft Graph API permissions (Chat.ReadWrite, ChatMember.ReadWrite) – stuck in consent loop

Roshan Eligati 0 Reputation points Microsoft Employee
2026-03-26T11:42:38.34+00:00

I am working on an enhancement to the Virtual Team tab in TPP that involves adding external partner sellers to an existing Microsoft Teams chat using the Microsoft Graph API.

For this feature, I need the following delegated Microsoft Graph permissions:

  • Chat.ReadWrite – to list chats and retrieve a chatId for testing
  • ChatMember.ReadWrite – to add external partner sellers to an existing Teams chat
  • ChatMessage.Send – to send an Adaptive Card message in the chat

What I am trying

  1. Retrieve a chat ID:
GET https://graph.microsoft.com/v1.0/me/chats?$top=5
  1. Add a partner seller to the chat:
POST https://graph.microsoft.com/v1.0/chats/{chatId}/members

Issue

When I try to grant consent for these permissions (including via Graph Explorer), I keep getting redirected back to the same consent page in a loop, and the permissions are never granted.

From what I understand, these permissions require tenant admin consent, and I do not have admin privileges to approve them myself.

Ask

  • What is the correct process to request tenant admin consent for these Microsoft Graph permissions?
  • Is there a recommended internal workflow/team to engage so I can unblock testing?
  • Are there alternative permissions or approaches for testing this scenario without full admin consent?

Any guidance would be appreciated.

User's image

User's image

Microsoft Security | Microsoft Graph
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Q&A Assist
    2026-03-26T11:43:20.18+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    The behavior comes from tenant policies: the requested Microsoft Graph delegated permissions require admin approval and user consent is blocked, so Graph Explorer keeps redirecting to the “Need admin approval” page.

    To move forward, an administrator must grant consent on your behalf; there is no alternative delegated permission that bypasses this requirement.

    • Some delegated Microsoft Graph permissions are admin-restricted. When a non-admin user tries to consent, they see an “unauthorized to consent” / “Need admin approval” experience and must ask an administrator to approve the app for the tenant.
    • Tenant admins can also configure consent policies so that any new app or scope requires admin approval, even if the permission is not admin-restricted by default. In that case, users see the same “Need admin approval” message for Graph Explorer or your own app.
    • Once an admin grants consent for the tenant, users are no longer prompted unless consent is revoked or new permissions are added.

    This matches the behavior described in the Microsoft Graph quick start FAQ: even though the sample (or Graph Explorer) may not request inherently admin-only scopes, tenant policy can still force admin approval.

    Because you are not an admin, the next steps must be done by someone with an appropriate role (Global Administrator, Company Administrator, Cloud/Application Administrator, or similar).

    There are two main options.

    1. Ask a directory admin to sign in to the same app you are using (for example, Graph Explorer or your own registered app).
    2. When the consent screen appears, the admin must:
      • Review the requested Microsoft Graph permissions (for example, Chat.ReadWrite, ChatMember.ReadWrite, ChatMessage.Send).
      • Select “Consent on behalf of your organization”.
      • Approve the request.
    3. After a successful admin consent, the app receives a response indicating admin_consent=True, and all users in the tenant can use those permissions without further prompts, unless new scopes are added later.

    If the admin does not see the consent screen, they can force it by appending &prompt=consent to the sign-in/authorize URL used by the app, as described in the consent troubleshooting guidance.

    If you have a custom app registration (not Graph Explorer), an admin can grant tenant-wide consent via the admin consent endpoint:

    https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}
    

    Where:

    • {client-id} is your application’s Application (client) ID.
    • {organization} is the tenant ID or a verified domain name (or organizations to use the admin’s home tenant).

    Process for the admin:

    1. Open the constructed URL in a browser while signed in as an admin.
    2. Review the list of permissions configured on the app registration (these must already include Chat.ReadWrite, ChatMember.ReadWrite, ChatMessage.Send, etc.).
    3. Select Consent on behalf of your organization and approve.
    4. On success, the browser is redirected to the configured redirect_uri with admin_consent=True.

    If the admin cancels, the response contains an error such as permission_denied.

    From a product/tenant perspective, the correct internal path is:

    1. Identify who manages Microsoft 365 / Entra ID in your organization (often the Microsoft 365 admin, Identity/Entra team, or Security/Compliance team).
    2. Provide them with:
      • The name of the app (Graph Explorer or your custom app).
      • The list of required delegated permissions: Chat.ReadWrite, ChatMember.ReadWrite, ChatMessage.Send.
      • A justification for why these permissions are needed (for example, adding external partner sellers to existing Teams chats and sending messages on behalf of the user).
      • If using a custom app, the tenant-wide admin consent URL constructed as above.
    3. Ask them either to:
      • Grant tenant-wide admin consent for the app, or
      • Enable and use the admin consent workflow so that your consent request can be routed and approved through their standard process.

    If tenant policy is configured to block user consent entirely, this is the only way to unblock testing.

    4. Alternatives or reduced-permission testing

    Based on the provided documentation, there is no supported way to bypass admin consent when tenant policy requires it. Some points:

    • Admins can change consent policies so that users can consent to low-impact permissions themselves, but this is a tenant-wide security decision and must be made by the admin.
    • For Graph samples, official guidance when you see the “Need admin approval” message is to either:
      • Work with your administrators to get approval, or
      • Use a personal Microsoft account or a separate test Microsoft 365 tenant where you have admin rights.

    For your scenario (Teams chat membership and messaging), the permissions are inherently sensitive, so in a corporate tenant they will almost always require admin consent. A separate test tenant where you are the admin is often the most practical way to experiment freely.

    In summary, to unblock testing in your corporate tenant, an Entra/Microsoft 365 admin must grant tenant-wide admin consent for the requested Graph delegated permissions using either the in-app consent screen (with “Consent on behalf of your organization”) or the admin consent endpoint URL.


    References:

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.