Microsoft (Outlook and Calendar via Graph)
Microsoft · learn.microsoft.com/en-us/graph/outlook-mail-concept-overview · Developer portal
sourced
The Microsoft-managed user consent policy is the default for new tenants and updates automatically. Under it, users can consent to delegated permissions except a list that includes Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Calendars.Read, Calendars.ReadWrite, Contacts.ReadWrite, MailboxSettings permissions, Files.Read.All and Sites.Read.All. Mail.Send is not on the list.
Manage app consent policiesPage updated 2026-08-28. Microsoft can change this list at any time.
sourced · official docs · 2026-10-28
sourced
Since November 2020, when risk-based step-up consent is on, users in other tenants cannot consent to multitenant apps registered after November 8, 2020 that are not publisher verified and ask for more than basic sign-in and profile.
Publisher verification overviewsourced · official docs · 2026-10-28
sourced
Risk-based step-up consent is on by default. A risky request steps up to admin consent. If the admin consent workflow is off, the user sees error AADSTS90094 asking for an admin to grant permission.
Configure risk-based step-up consentsourced · official docs · 2026-10-28
sourced
Publisher verification needs the Partner One ID of a verified Microsoft AI Cloud Partner Program partner global account, an app registered with a work or school account, a publisher domain that is not onmicrosoft.com and matches the Partner Center email domain or a DNS-verified domain, the right admin roles in Entra and Partner Center, and MFA. It is free and can finish in minutes once prerequisites are met.
Publisher verification overviewsourced · official docs · 2026-10-28
sourced
Partner Center verification checks email, identity (government ID), employment (domain documents) and business registration. Microsoft says it takes three to five business days in most cases, and some checks take longer.
Understand the verification process in Partner Centersourced · official docs · 2026-10-28
inferred
The tier is 3: Microsoft does not review the app, but users in other tenants cannot self-consent to non-basic scopes until you pass publisher verification, which depends on Partner Center business verification. Mail and calendar read access then still needs each customer's admin in default tenants.
Reasoning across e4, e7, e9 and e10. Tier boundaries are our own scheme.
inferred · reasoning · 2026-10-28
Customer-side gate: Under the default policy, users cannot consent to Mail.Read, Mail.ReadWrite, Calendars.Read, or Calendars.ReadWrite. An admin grants tenant-wide consent or approves a workflow request. Personal accounts are not affected.
App types (3)
- Multitenant plus personal accounts: Use this for an agent product. Work, school, and personal Outlook.com users can connect. Use the common endpoint. Wildcard and query-string redirect URIs are not allowed.
- Multitenant, work or school only: Use this if you sell only to businesses. Use the organizations endpoint.
- Single tenant: Internal tools only. Users outside your tenant cannot sign in.
- Docs read(reached)
- Endpoints probed(reached)
- Portal checked(reached)
- Set up by a person(not reached)
Evidence: 0 tested, 3 probed, 25 sourced, 3 inferred
Generate a live guide to compare with this one.
Next step
Register a multitenant app You15 min
In entra.microsoft.com, open App registrations > New registration. Under Supported account types, pick Any Entra ID Tenant + Personal Microsoft accounts. Copy the Application (client) ID.
https://entra.microsoft.comWhat does your agent need?
Select everything it does. Scopes decide the tier.
Start today
sourced
Composio lists Outlook in its Composio-managed OAuth table, so you can connect users without registering your own app.
Composio managed authsourced · composio docs · 2026-10-28
sourced
Switching to your own auth config affects only new connections; existing users keep their current connection until they re-authenticate or you import their credentials where supported.
White-labeling authenticationsourced · composio docs · 2026-10-28
sourced
Composio's reasons to bring your own app: your name on the consent screen, custom scopes, a dedicated rate quota, faster polling than the 15-minute managed minimum, and enterprise branding.
Managed vs custom appsourced · composio docs · 2026-10-28
Composio provides a managed Outlook app, so you can prototype without an Entra registration. Customer admins then approve Composio's app, not yours. After you switch to your own auth config, existing users keep their connection until they re-authenticate, or until you import their credentials where Composio supports it. Your own app gives you your name on the consent screen, custom scopes, and your own rate quota.
Time and effort
You can build while you wait.
| Stage | Who can connect | Hands-on | Waiting | Review |
|---|---|---|---|---|
| Prototype | Your tenant and personal accounts. Other tenants need admin approval beyond sign-in. sourcedYou register the app in the Microsoft Entra admin center under Entra ID, App registrations, New registration. Supported account types include Multiple Entra ID tenants and Any Entra ID Tenant plus Personal Microsoft accounts. You need at least the Application Developer role. How to register an app in Microsoft Entra IDsourced · official docs · 2026-10-28 sourcedIn the Graph permissions reference, delegated Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Mail.Send, Calendars.Read and Calendars.ReadWrite list admin consent required as No, while the application versions list Yes. Each delegated one is available for consent in personal Microsoft accounts. offline_access and User.Read need no admin consent. Microsoft Graph permissions referencesourced · official docs · 2026-10-28 sourcedSince November 2020, when risk-based step-up consent is on, users in other tenants cannot consent to multitenant apps registered after November 8, 2020 that are not publisher verified and ask for more than basic sign-in and profile. Publisher verification overviewsourced · official docs · 2026-10-28 sourcedRisk-based step-up consent is on by default. A risky request steps up to admin consent. If the admin consent workflow is off, the user sees error AADSTS90094 asking for an admin to grant permission. Configure risk-based step-up consentsourced · official docs · 2026-10-28 | 1 h to 4 h | none | No |
| Publisher verified | Other tenants allow sign-in, offline_access, and Mail.Send by default. Not mail or calendar read. sourcedPublisher verification needs the Partner One ID of a verified Microsoft AI Cloud Partner Program partner global account, an app registered with a work or school account, a publisher domain that is not onmicrosoft.com and matches the Partner Center email domain or a DNS-verified domain, the right admin roles in Entra and Partner Center, and MFA. It is free and can finish in minutes once prerequisites are met. Publisher verification overviewsourced · official docs · 2026-10-28 sourcedPartner Center verification checks email, identity (government ID), employment (domain documents) and business registration. Microsoft says it takes three to five business days in most cases, and some checks take longer. Understand the verification process in Partner Centersourced · official docs · 2026-10-28 sourcedDevelopers on the Microsoft partner forum report manual Partner Center verification taking about two weeks, with document resubmissions and support tickets. Stuck on employment verification (Microsoft Tech Community)Reports from 2024. One thread only. sourced · community · 2026-10-28 sourcedTo mark an app publisher verified, open App registrations, select the app, Branding and properties, Add Partner ID to verify publisher, enter the Partner One ID, then Verify and save. The badge can take time to show; test with prompt=consent. Mark an app as publisher verifiedsourced · official docs · 2026-10-28 inferredIn a tenant on the Microsoft-managed default policy, a publisher-verified app that asks only for sign-in, offline_access and Mail.Send can be approved by users themselves, because Mail.Send is not on the exclusion list. Combines e4 (Mail.Send absent from the exclusion list) with e7 and e8 (unverified apps step up to admin consent). Not tested in a real tenant. inferred · reasoning · 2026-10-28 | 3 h to 8 h | Provider says: 3 to 7 daysDevelopers report: 5+ days | Yes |
| Customer admin approval | Any user in a consented tenant, plus personal accounts. sourcedThe Microsoft-managed user consent policy is the default for new tenants and updates automatically. Under it, users can consent to delegated permissions except a list that includes Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Calendars.Read, Calendars.ReadWrite, Contacts.ReadWrite, MailboxSettings permissions, Files.Read.All and Sites.Read.All. Mail.Send is not on the list. Manage app consent policiesPage updated 2026-08-28. Microsoft can change this list at any time. sourced · official docs · 2026-10-28 sourcedThe admin consent workflow lets users request approval from the consent prompt. Designated reviewers get an email. A Global Administrator turns it on, it can take up to an hour, and only Global Administrators can approve requests for Graph application permissions. Configure the admin consent workflowsourced · official docs · 2026-10-28 sourcedTenant-wide admin consent URL format is https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}. Cloud Application Administrator or Application Administrator can grant any permission except Graph application permissions, which need Privileged Role Administrator. Grant tenant-wide admin consent to an applicationsourced · official docs · 2026-10-28 sourcedMicrosoft 365 App Compliance has Publisher Attestation (a self-assessment, most done in an hour or less) and Microsoft 365 Certification (a yearly independent audit with penetration testing, contracted through Claranet). Microsoft says certification may be required in some cases for apps to be enabled in a tenant. Microsoft 365 App Compliance Program overviewsourced · official docs · 2026-10-28 inferredHow long a customer's admin takes to approve your app is outside Microsoft's control and varies by customer, from minutes to never. No source gives a timeline. Depends on the customer's security review process. inferred · reasoning · 2026-10-28 | 1 h to 3 h | unknown | Yes |
- Prototype: No Microsoft review.
- Publisher verified: Microsoft says Partner Center verification takes three to five business days in most cases. A forum thread reports about two weeks with resubmissions. The Entra step takes minutes.
- Customer admin approval: Each customer's IT admin reviews your app, not Microsoft. Repeat for every tenant. Some customers ask for Microsoft 365 Publisher Attestation or Certification first.
Scopes
Scopes that match your selection are marked.
- Sign-in and offline accessNo review · Act while offline
openid profile email offline_access User.Read
Any user can consent. offline_access gives you a refresh token.sourced
The Microsoft identity platform uses the OAuth 2.0 auth code flow with OIDC. PKCE is recommended for all app types and required for single-page apps. Tenant path values are common, organizations, consumers, or a tenant ID. A refresh token is returned only if you request offline_access.
Microsoft identity platform and OAuth 2.0 authorization code flowsourced · official docs · 2026-10-28
sourced
In the Graph permissions reference, delegated Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Mail.Send, Calendars.Read and Calendars.ReadWrite list admin consent required as No, while the application versions list Yes. Each delegated one is available for consent in personal Microsoft accounts. offline_access and User.Read need no admin consent.
Microsoft Graph permissions referencesourced · official docs · 2026-10-28
sourced
Since November 2020, when risk-based step-up consent is on, users in other tenants cannot consent to multitenant apps registered after November 8, 2020 that are not publisher verified and ask for more than basic sign-in and profile.
Publisher verification overviewsourced · official docs · 2026-10-28
- Send mailReview · Write data
Mail.Send
Not on the default blocked list. Users can consent once you are verified. Unverified, other tenants need admin approval.sourced
The Microsoft-managed user consent policy is the default for new tenants and updates automatically. Under it, users can consent to delegated permissions except a list that includes Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Calendars.Read, Calendars.ReadWrite, Contacts.ReadWrite, MailboxSettings permissions, Files.Read.All and Sites.Read.All. Mail.Send is not on the list.
Manage app consent policiesPage updated 2026-08-28. Microsoft can change this list at any time.
sourced · official docs · 2026-10-28
sourced
Since November 2020, when risk-based step-up consent is on, users in other tenants cannot consent to multitenant apps registered after November 8, 2020 that are not publisher verified and ask for more than basic sign-in and profile.
Publisher verification overviewsourced · official docs · 2026-10-28
sourced
Risk-based step-up consent is on by default. A risky request steps up to admin consent. If the admin consent workflow is off, the user sees error AADSTS90094 asking for an admin to grant permission.
Configure risk-based step-up consentsourced · official docs · 2026-10-28
inferred
In a tenant on the Microsoft-managed default policy, a publisher-verified app that asks only for sign-in, offline_access and Mail.Send can be approved by users themselves, because Mail.Send is not on the exclusion list.
Combines e4 (Mail.Send absent from the exclusion list) with e7 and e8 (unverified apps step up to admin consent). Not tested in a real tenant.
inferred · reasoning · 2026-10-28
sourced
Message center notice MC1304287 (8 May 2026) says that from June 2026 the Microsoft-managed default user consent policy also requires admin consent for Contacts.ReadWrite, Contacts.Read.Shared, Contacts.ReadWrite.Shared, People.Read and Tasks permissions. Mail.Send is not in that list. Tenants with custom consent policies and existing consents are not affected.
MC1304287: Upcoming secure-by-default changes for Exchange APIs (message center mirror)Third-party mirror of the Microsoft 365 message center.
sourced · community · 2026-10-28
- Read mail and calendarsReview · Read data
Mail.Read Mail.ReadBasic Calendars.Read
Microsoft lists these as not needing admin consent, but the default tenant policy blocks user consent. Personal accounts can consent.sourced
In the Graph permissions reference, delegated Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Mail.Send, Calendars.Read and Calendars.ReadWrite list admin consent required as No, while the application versions list Yes. Each delegated one is available for consent in personal Microsoft accounts. offline_access and User.Read need no admin consent.
Microsoft Graph permissions referencesourced · official docs · 2026-10-28
sourced
The Microsoft-managed user consent policy is the default for new tenants and updates automatically. Under it, users can consent to delegated permissions except a list that includes Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Calendars.Read, Calendars.ReadWrite, Contacts.ReadWrite, MailboxSettings permissions, Files.Read.All and Sites.Read.All. Mail.Send is not on the list.
Manage app consent policiesPage updated 2026-08-28. Microsoft can change this list at any time.
sourced · official docs · 2026-10-28
sourced
In September 2025, a developer on Microsoft Q&A got Need admin approval for delegated Sites.Read.All, which the docs list as not needing admin consent. The accepted answer points to the July 2025 consent policy change. This shows the mechanism, not mail or calendar scopes.
Admin approval prompt for Sites.Read.All delegated scope (Microsoft Q&A)sourced · community · 2026-10-28
- Change mail and calendarsReview · Write data
Mail.ReadWrite Calendars.ReadWrite
Same as read. Plan on admin approval for work accounts.sourced
In the Graph permissions reference, delegated Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Mail.Send, Calendars.Read and Calendars.ReadWrite list admin consent required as No, while the application versions list Yes. Each delegated one is available for consent in personal Microsoft accounts. offline_access and User.Read need no admin consent.
Microsoft Graph permissions referencesourced · official docs · 2026-10-28
sourced
The Microsoft-managed user consent policy is the default for new tenants and updates automatically. Under it, users can consent to delegated permissions except a list that includes Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Calendars.Read, Calendars.ReadWrite, Contacts.ReadWrite, MailboxSettings permissions, Files.Read.All and Sites.Read.All. Mail.Send is not on the list.
Manage app consent policiesPage updated 2026-08-28. Microsoft can change this list at any time.
sourced · official docs · 2026-10-28
- All mailboxes (application permissions)Review · Admin-level, Act while offline
Mail.Read (application) Mail.Send (application) Calendars.ReadWrite (application)
Only a Privileged Role Administrator or Global Administrator can grant it. Admins can limit mailboxes with an application access policy.sourced
In the Graph permissions reference, delegated Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Mail.Send, Calendars.Read and Calendars.ReadWrite list admin consent required as No, while the application versions list Yes. Each delegated one is available for consent in personal Microsoft accounts. offline_access and User.Read need no admin consent.
Microsoft Graph permissions referencesourced · official docs · 2026-10-28
sourced
The admin consent workflow lets users request approval from the consent prompt. Designated reviewers get an email. A Global Administrator turns it on, it can take up to an hour, and only Global Administrators can approve requests for Graph application permissions.
Configure the admin consent workflowsourced · official docs · 2026-10-28
sourced
Tenant-wide admin consent URL format is https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}. Cloud Application Administrator or Application Administrator can grant any permission except Graph application permissions, which need Privileged Role Administrator.
Grant tenant-wide admin consent to an applicationsourced · official docs · 2026-10-28
Requirements
sourced
You register the app in the Microsoft Entra admin center under Entra ID, App registrations, New registration. Supported account types include Multiple Entra ID tenants and Any Entra ID Tenant plus Personal Microsoft accounts. You need at least the Application Developer role.
How to register an app in Microsoft Entra IDsourced · official docs · 2026-10-28
sourced
Publisher verification needs the Partner One ID of a verified Microsoft AI Cloud Partner Program partner global account, an app registered with a work or school account, a publisher domain that is not onmicrosoft.com and matches the Partner Center email domain or a DNS-verified domain, the right admin roles in Entra and Partner Center, and MFA. It is free and can finish in minutes once prerequisites are met.
Publisher verification overviewsourced · official docs · 2026-10-28
sourced
Common publisher verification errors: MPNGlobalAccountNotFound (a location ID was used), MPNAccountNotVetted, PublisherDomainMismatch, NoPublisherDomainOnApplication, InteractionRequired (no MFA in session), MSANotSupported (app registered with a personal account), UnableToAddPublisher (risk check, retry the next day).
Troubleshoot publisher verificationsourced · official docs · 2026-10-28
sourced
Redirect URIs must use https except localhost, and must match exactly (AADSTS50011 on mismatch). Apps that allow personal accounts can have up to 100 redirect URIs, with no wildcards and no query parameters. Each URI is limited to 256 characters.
Redirect URI (reply URL) best practices and limitationssourced · official docs · 2026-10-28
sourced
The Microsoft identity platform uses the OAuth 2.0 auth code flow with OIDC. PKCE is recommended for all app types and required for single-page apps. Tenant path values are common, organizations, consumers, or a tenant ID. A refresh token is returned only if you request offline_access.
Microsoft identity platform and OAuth 2.0 authorization code flowsourced · official docs · 2026-10-28
sourced
Refresh tokens last 90 days by default and 24 hours for single-page app redirects. Each use returns a new refresh token; delete the old one. Tokens for confidential clients are revoked when an admin resets the password in the Entra or Microsoft 365 admin center, or when the user or an admin revokes refresh tokens.
Refresh tokens in the Microsoft identity platformsourced · official docs · 2026-10-28
sourced
Publisher verification needs the Partner One ID of a verified Microsoft AI Cloud Partner Program partner global account, an app registered with a work or school account, a publisher domain that is not onmicrosoft.com and matches the Partner Center email domain or a DNS-verified domain, the right admin roles in Entra and Partner Center, and MFA. It is free and can finish in minutes once prerequisites are met.
Publisher verification overviewsourced · official docs · 2026-10-28
sourced
Common publisher verification errors: MPNGlobalAccountNotFound (a location ID was used), MPNAccountNotVetted, PublisherDomainMismatch, NoPublisherDomainOnApplication, InteractionRequired (no MFA in session), MSANotSupported (app registered with a personal account), UnableToAddPublisher (risk check, retry the next day).
Troubleshoot publisher verificationsourced · official docs · 2026-10-28
sourced
Publisher verification needs the Partner One ID of a verified Microsoft AI Cloud Partner Program partner global account, an app registered with a work or school account, a publisher domain that is not onmicrosoft.com and matches the Partner Center email domain or a DNS-verified domain, the right admin roles in Entra and Partner Center, and MFA. It is free and can finish in minutes once prerequisites are met.
Publisher verification overviewsourced · official docs · 2026-10-28
sourced
Partner Center verification checks email, identity (government ID), employment (domain documents) and business registration. Microsoft says it takes three to five business days in most cases, and some checks take longer.
Understand the verification process in Partner Centersourced · official docs · 2026-10-28
sourced
Common publisher verification errors: MPNGlobalAccountNotFound (a location ID was used), MPNAccountNotVetted, PublisherDomainMismatch, NoPublisherDomainOnApplication, InteractionRequired (no MFA in session), MSANotSupported (app registered with a personal account), UnableToAddPublisher (risk check, retry the next day).
Troubleshoot publisher verificationsourced · official docs · 2026-10-28
sourced
Partner Center verification checks email, identity (government ID), employment (domain documents) and business registration. Microsoft says it takes three to five business days in most cases, and some checks take longer.
Understand the verification process in Partner Centersourced · official docs · 2026-10-28
sourced
Publisher verification needs the Partner One ID of a verified Microsoft AI Cloud Partner Program partner global account, an app registered with a work or school account, a publisher domain that is not onmicrosoft.com and matches the Partner Center email domain or a DNS-verified domain, the right admin roles in Entra and Partner Center, and MFA. It is free and can finish in minutes once prerequisites are met.
Publisher verification overviewsourced · official docs · 2026-10-28
sourced
Common publisher verification errors: MPNGlobalAccountNotFound (a location ID was used), MPNAccountNotVetted, PublisherDomainMismatch, NoPublisherDomainOnApplication, InteractionRequired (no MFA in session), MSANotSupported (app registered with a personal account), UnableToAddPublisher (risk check, retry the next day).
Troubleshoot publisher verificationsourced · official docs · 2026-10-28
sourced
Tenant-wide admin consent URL format is https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}. Cloud Application Administrator or Application Administrator can grant any permission except Graph application permissions, which need Privileged Role Administrator.
Grant tenant-wide admin consent to an applicationsourced · official docs · 2026-10-28
sourced
Microsoft 365 App Compliance has Publisher Attestation (a self-assessment, most done in an hour or less) and Microsoft 365 Certification (a yearly independent audit with penetration testing, contracted through Claranet). Microsoft says certification may be required in some cases for apps to be enabled in a tenant.
Microsoft 365 App Compliance Program overviewsourced · official docs · 2026-10-28
Steps
Prototype
In entra.microsoft.com, open App registrations > New registration. Under Supported account types, pick Any Entra ID Tenant + Personal Microsoft accounts. Copy the Application (client) ID.
https://entra.microsoft.comsourced
You register the app in the Microsoft Entra admin center under Entra ID, App registrations, New registration. Supported account types include Multiple Entra ID tenants and Any Entra ID Tenant plus Personal Microsoft accounts. You need at least the Application Developer role.
How to register an app in Microsoft Entra IDsourced · official docs · 2026-10-28
probed
Developer portal: the Entra admin center app registrations URL returned HTTP 403 with a Service unavailable page to our signed-out scripted request, so we could not inspect portal pages. Expect to sign in with a work or school account.
https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBladeHTTP 403, Service unavailable.
probed · probe · 2026-10-28
Under Authentication, add a Web redirect URI such as https://yourapp.com/auth/microsoft/callback, plus http://localhost/... for development. It must match exactly.
sourced
Redirect URIs must use https except localhost, and must match exactly (AADSTS50011 on mismatch). Apps that allow personal accounts can have up to 100 redirect URIs, with no wildcards and no query parameters. Each URI is limited to 256 characters.
Redirect URI (reply URL) best practices and limitationssourced · official docs · 2026-10-28
Under Certificates and secrets, upload a certificate or create a secret. Store it server-side and note its expiry.
sourced
The Microsoft identity platform uses the OAuth 2.0 auth code flow with OIDC. PKCE is recommended for all app types and required for single-page apps. Tenant path values are common, organizations, consumers, or a tenant ID. A refresh token is returned only if you request offline_access.
Microsoft identity platform and OAuth 2.0 authorization code flowsourced · official docs · 2026-10-28
Under API permissions, add User.Read, offline_access, and only the mail and calendar permissions you need. Use Mail.Send alone if you only send.
sourced
In the Graph permissions reference, delegated Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Mail.Send, Calendars.Read and Calendars.ReadWrite list admin consent required as No, while the application versions list Yes. Each delegated one is available for consent in personal Microsoft accounts. offline_access and User.Read need no admin consent.
Microsoft Graph permissions referencesourced · official docs · 2026-10-28
sourced
The Microsoft-managed user consent policy is the default for new tenants and updates automatically. Under it, users can consent to delegated permissions except a list that includes Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Calendars.Read, Calendars.ReadWrite, Contacts.ReadWrite, MailboxSettings permissions, Files.Read.All and Sites.Read.All. Mail.Send is not on the list.
Manage app consent policiesPage updated 2026-08-28. Microsoft can change this list at any time.
sourced · official docs · 2026-10-28
Send users to /common/oauth2/v2.0/authorize with your scopes. Redeem the code at /token. Replace the stored refresh token on each refresh.
sourced
The Microsoft identity platform uses the OAuth 2.0 auth code flow with OIDC. PKCE is recommended for all app types and required for single-page apps. Tenant path values are common, organizations, consumers, or a tenant ID. A refresh token is returned only if you request offline_access.
Microsoft identity platform and OAuth 2.0 authorization code flowsourced · official docs · 2026-10-28
sourced
Refresh tokens last 90 days by default and 24 hours for single-page app redirects. Each use returns a new refresh token; delete the old one. Tokens for confidential clients are revoked when an admin resets the password in the Entra or Microsoft 365 admin center, or when the user or an admin revokes refresh tokens.
Refresh tokens in the Microsoft identity platformsourced · official docs · 2026-10-28
probed
The OIDC discovery document for the common tenant is live. It lists the /common/oauth2/v2.0/authorize and /token endpoints and scopes openid, profile, email and offline_access. It does not advertise code_challenge_methods_supported.
https://login.microsoftonline.com/common/v2.0/.well-known/openid-configurationHTTP 200, JSON.
probed · probe · 2026-10-28
probed
The authorize endpoint answers a request with an invalid client ID with the normal sign-in page. It does not reject the client ID before the user signs in.
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code&client_id=oauth-guide-probe-invalid&redirect_uri=https%3A%2F%2Fexample.com%2Fcallback&scope=openid&state=probeHTTP 200, page title Sign in to your account, no AADSTS code in the page.
probed · probe · 2026-10-28
Connect a user from your tenant and a personal Outlook.com account. Confirm a refresh token and mail access.
sourced
In the Graph permissions reference, delegated Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Mail.Send, Calendars.Read and Calendars.ReadWrite list admin consent required as No, while the application versions list Yes. Each delegated one is available for consent in personal Microsoft accounts. offline_access and User.Read need no admin consent.
Microsoft Graph permissions referencesourced · official docs · 2026-10-28
Limited beta
At partner.microsoft.com, enroll with a company domain email. Upload business and domain documents and complete identity verification.
https://partner.microsoft.com/membershipsourced
Publisher verification needs the Partner One ID of a verified Microsoft AI Cloud Partner Program partner global account, an app registered with a work or school account, a publisher domain that is not onmicrosoft.com and matches the Partner Center email domain or a DNS-verified domain, the right admin roles in Entra and Partner Center, and MFA. It is free and can finish in minutes once prerequisites are met.
Publisher verification overviewsourced · official docs · 2026-10-28
sourced
Partner Center verification checks email, identity (government ID), employment (domain documents) and business registration. Microsoft says it takes three to five business days in most cases, and some checks take longer.
Understand the verification process in Partner Centersourced · official docs · 2026-10-28
Track status in Account settings > Legal info > Verification Summary. Answer information requests quickly.
sourced
Partner Center verification checks email, identity (government ID), employment (domain documents) and business registration. Microsoft says it takes three to five business days in most cases, and some checks take longer.
Understand the verification process in Partner Centersourced · official docs · 2026-10-28
sourced
Developers on the Microsoft partner forum report manual Partner Center verification taking about two weeks, with document resubmissions and support tickets.
Stuck on employment verification (Microsoft Tech Community)Reports from 2024. One thread only.
sourced · community · 2026-10-28
Add your domain as a custom domain in Entra with a DNS record. Set it as the publisher domain in Branding and properties. Do this while you wait.
sourced
Publisher verification needs the Partner One ID of a verified Microsoft AI Cloud Partner Program partner global account, an app registered with a work or school account, a publisher domain that is not onmicrosoft.com and matches the Partner Center email domain or a DNS-verified domain, the right admin roles in Entra and Partner Center, and MFA. It is free and can finish in minutes once prerequisites are met.
Publisher verification overviewsourced · official docs · 2026-10-28
sourced
Common publisher verification errors: MPNGlobalAccountNotFound (a location ID was used), MPNAccountNotVetted, PublisherDomainMismatch, NoPublisherDomainOnApplication, InteractionRequired (no MFA in session), MSANotSupported (app registered with a personal account), UnableToAddPublisher (risk check, retry the next day).
Troubleshoot publisher verificationsourced · official docs · 2026-10-28
Sign in with MFA. In Branding and properties, select Add Partner ID to verify publisher, enter the PartnerGlobal ID, and select Verify and save. A blue verified badge appears.
sourced
To mark an app publisher verified, open App registrations, select the app, Branding and properties, Add Partner ID to verify publisher, enter the Partner One ID, then Verify and save. The badge can take time to show; test with prompt=consent.
Mark an app as publisher verifiedsourced · official docs · 2026-10-28
sourced
Common publisher verification errors: MPNGlobalAccountNotFound (a location ID was used), MPNAccountNotVetted, PublisherDomainMismatch, NoPublisherDomainOnApplication, InteractionRequired (no MFA in session), MSANotSupported (app registered with a personal account), UnableToAddPublisher (risk check, retry the next day).
Troubleshoot publisher verificationsourced · official docs · 2026-10-28
Sign in from another tenant with prompt=consent. Check the badge and note which scopes need admin approval.
sourced
To mark an app publisher verified, open App registrations, select the app, Branding and properties, Add Partner ID to verify publisher, enter the Partner One ID, then Verify and save. The badge can take time to show; test with prompt=consent.
Mark an app as publisher verifiedsourced · official docs · 2026-10-28
sourced
The Microsoft-managed user consent policy is the default for new tenants and updates automatically. Under it, users can consent to delegated permissions except a list that includes Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Calendars.Read, Calendars.ReadWrite, Contacts.ReadWrite, MailboxSettings permissions, Files.Read.All and Sites.Read.All. Mail.Send is not on the list.
Manage app consent policiesPage updated 2026-08-28. Microsoft can change this list at any time.
sourced · official docs · 2026-10-28
Production
On an admin approval or AADSTS90094 error, show a page with the admin consent link: https://login.microsoftonline.com/{tenant}/adminconsent?client_id={your-client-id}.
sourced
Risk-based step-up consent is on by default. A risky request steps up to admin consent. If the admin consent workflow is off, the user sees error AADSTS90094 asking for an admin to grant permission.
Configure risk-based step-up consentsourced · official docs · 2026-10-28
sourced
The admin consent workflow lets users request approval from the consent prompt. Designated reviewers get an email. A Global Administrator turns it on, it can take up to an hour, and only Global Administrators can approve requests for Graph application permissions.
Configure the admin consent workflowsourced · official docs · 2026-10-28
sourced
Tenant-wide admin consent URL format is https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}. Cloud Application Administrator or Application Administrator can grant any permission except Graph application permissions, which need Privileged Role Administrator.
Grant tenant-wide admin consent to an applicationsourced · official docs · 2026-10-28
Send the admin consent email below. The admin grants consent for the whole tenant.
sourced
Tenant-wide admin consent URL format is https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}. Cloud Application Administrator or Application Administrator can grant any permission except Graph application permissions, which need Privileged Role Administrator.
Grant tenant-wide admin consent to an applicationsourced · official docs · 2026-10-28
inferred
How long a customer's admin takes to approve your app is outside Microsoft's control and varies by customer, from minutes to never.
No source gives a timeline. Depends on the customer's security review process.
inferred · reasoning · 2026-10-28
Complete Publisher Attestation if customers ask about security. Pursue Certification only if required, since it is a paid yearly audit.
sourced
Microsoft 365 App Compliance has Publisher Attestation (a self-assessment, most done in an hour or less) and Microsoft 365 Certification (a yearly independent audit with penetration testing, contracted through Claranet). Microsoft says certification may be required in some cases for apps to be enabled in a tenant.
Microsoft 365 App Compliance Program overviewsourced · official docs · 2026-10-28
Blockers
Work users see Need admin approval, even with a verified app.
Cause: The default consent policy blocks user consent to mail and calendar read and write.
Fix: Send the admin your consent link, or request Mail.Send alone if you only send.
Help: The customer's Global Administrator or Cloud Application Administrator.
sourced
The Microsoft-managed user consent policy is the default for new tenants and updates automatically. Under it, users can consent to delegated permissions except a list that includes Mail.Read, Mail.ReadWrite, Mail.ReadBasic, Calendars.Read, Calendars.ReadWrite, Contacts.ReadWrite, MailboxSettings permissions, Files.Read.All and Sites.Read.All. Mail.Send is not on the list.
Manage app consent policiesPage updated 2026-08-28. Microsoft can change this list at any time.
sourced · official docs · 2026-10-28
sourced
The admin consent workflow lets users request approval from the consent prompt. Designated reviewers get an email. A Global Administrator turns it on, it can take up to an hour, and only Global Administrators can approve requests for Graph application permissions.
Configure the admin consent workflowsourced · official docs · 2026-10-28
sourced
Tenant-wide admin consent URL format is https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}. Cloud Application Administrator or Application Administrator can grant any permission except Graph application permissions, which need Privileged Role Administrator.
Grant tenant-wide admin consent to an applicationsourced · official docs · 2026-10-28
AADSTS90094 or an unverified publisher warning.
Cause: Risk-based step-up consent flags unverified multitenant apps that ask for more than sign-in.
Fix: Complete publisher verification. Until then, an admin can grant consent.
sourced
Since November 2020, when risk-based step-up consent is on, users in other tenants cannot consent to multitenant apps registered after November 8, 2020 that are not publisher verified and ask for more than basic sign-in and profile.
Publisher verification overviewsourced · official docs · 2026-10-28
sourced
Risk-based step-up consent is on by default. A risky request steps up to admin consent. If the admin consent workflow is off, the user sees error AADSTS90094 asking for an admin to grant permission.
Configure risk-based step-up consentsourced · official docs · 2026-10-28
MPNGlobalAccountNotFound or MPNAccountInvalid when adding the Partner ID.
Cause: You entered a location ID or the wrong ID.
Fix: Use the PartnerGlobal ID from Partner profile > Identifiers.
sourced
Common publisher verification errors: MPNGlobalAccountNotFound (a location ID was used), MPNAccountNotVetted, PublisherDomainMismatch, NoPublisherDomainOnApplication, InteractionRequired (no MFA in session), MSANotSupported (app registered with a personal account), UnableToAddPublisher (risk check, retry the next day).
Troubleshoot publisher verificationsourced · official docs · 2026-10-28
PublisherDomainMismatch or NoPublisherDomainOnApplication.
Cause: The publisher domain is missing, onmicrosoft.com, or differs from your Partner Center email domain.
Fix: DNS-verify that domain and set it as the publisher domain.
sourced
Publisher verification needs the Partner One ID of a verified Microsoft AI Cloud Partner Program partner global account, an app registered with a work or school account, a publisher domain that is not onmicrosoft.com and matches the Partner Center email domain or a DNS-verified domain, the right admin roles in Entra and Partner Center, and MFA. It is free and can finish in minutes once prerequisites are met.
Publisher verification overviewsourced · official docs · 2026-10-28
sourced
Common publisher verification errors: MPNGlobalAccountNotFound (a location ID was used), MPNAccountNotVetted, PublisherDomainMismatch, NoPublisherDomainOnApplication, InteractionRequired (no MFA in session), MSANotSupported (app registered with a personal account), UnableToAddPublisher (risk check, retry the next day).
Troubleshoot publisher verificationsourced · official docs · 2026-10-28
InteractionRequired when verifying the publisher.
Cause: MFA was not completed in the session.
Fix: Sign in again with MFA and retry.
sourced
Common publisher verification errors: MPNGlobalAccountNotFound (a location ID was used), MPNAccountNotVetted, PublisherDomainMismatch, NoPublisherDomainOnApplication, InteractionRequired (no MFA in session), MSANotSupported (app registered with a personal account), UnableToAddPublisher (risk check, retry the next day).
Troubleshoot publisher verificationsourced · official docs · 2026-10-28
MSANotSupported when verifying the publisher.
Cause: A personal Microsoft account registered the app.
Fix: Register a new app with a work account and move your config.
sourced
Common publisher verification errors: MPNGlobalAccountNotFound (a location ID was used), MPNAccountNotVetted, PublisherDomainMismatch, NoPublisherDomainOnApplication, InteractionRequired (no MFA in session), MSANotSupported (app registered with a personal account), UnableToAddPublisher (risk check, retry the next day).
Troubleshoot publisher verificationsourced · official docs · 2026-10-28
Partner Center verification stays pending for weeks.
Cause: Documents do not match your account details, or Microsoft needs more information.
Fix: Check Verification Summary, match names and addresses to registration records, and resubmit.
Help: Open a Partner Center ticket, or appeal if rejected.
sourced
Partner Center verification checks email, identity (government ID), employment (domain documents) and business registration. Microsoft says it takes three to five business days in most cases, and some checks take longer.
Understand the verification process in Partner Centersourced · official docs · 2026-10-28
sourced
Developers on the Microsoft partner forum report manual Partner Center verification taking about two weeks, with document resubmissions and support tickets.
Stuck on employment verification (Microsoft Tech Community)Reports from 2024. One thread only.
sourced · community · 2026-10-28
No refresh_token in the token response.
Cause: You did not request offline_access.
Fix: Add offline_access to the scope parameter and app permissions.
sourced
The Microsoft identity platform uses the OAuth 2.0 auth code flow with OIDC. PKCE is recommended for all app types and required for single-page apps. Tenant path values are common, organizations, consumers, or a tenant ID. A refresh token is returned only if you request offline_access.
Microsoft identity platform and OAuth 2.0 authorization code flowsourced · official docs · 2026-10-28
AADSTS50011: the reply URL does not match.
Cause: The redirect_uri differs from the registered one, including case or trailing slash.
Fix: Register the exact URL you send.
sourced
Redirect URIs must use https except localhost, and must match exactly (AADSTS50011 on mismatch). Apps that allow personal accounts can have up to 100 redirect URIs, with no wildcards and no query parameters. Each URI is limited to 256 characters.
Redirect URI (reply URL) best practices and limitationssourced · official docs · 2026-10-28
Refresh fails with invalid_grant for one user.
Cause: An admin reset the password or revoked sessions, or the refresh token hit its 90 day default lifetime.
Fix: Mark the connection expired and ask the user to reconnect.
sourced
Refresh tokens last 90 days by default and 24 hours for single-page app redirects. Each use returns a new refresh token; delete the old one. Tokens for confidential clients are revoked when an admin resets the password in the Entra or Microsoft 365 admin center, or when the user or an admin revokes refresh tokens.
Refresh tokens in the Microsoft identity platformsourced · official docs · 2026-10-28
Existing users still use Composio's app after you add your own.
Cause: New auth configs affect only new connections.
Fix: Ask existing users to reconnect.
sourced
Switching to your own auth config affects only new connections; existing users keep their current connection until they re-authenticate or you import their credentials where supported.
White-labeling authenticationsourced · composio docs · 2026-10-28
Agent and you
Agent did
- Read Microsoft's docs on registration, consent, and publisher and Partner Center verification.
- Probed the OIDC discovery document and the authorize endpoint.
- Tried the Entra portal signed out: HTTP 403.
- Listed the Graph scopes the default policy blocks from user consent.
- Drafted an admin consent email, permission explanations, a verification checklist, and a support message.
Agent can do
- Write the PKCE auth flow and refresh token storage.
- Build the admin approval page and per-customer consent links.
- Draft answers for Microsoft 365 Publisher Attestation.
- Pick the smallest scope set.
You must do
- Sign in to Entra with MFA and register the app.
- Add the DNS record to verify your domain.
- Enroll in the Partner Program and upload documents and a government ID.
- Mark the app as publisher verified.
- Get consent from each customer's IT admin.
- Decide whether to pay for Microsoft 365 Certification.
Drafts
Admin consent request email to a customer's IT admin draft · other
Subject: Approval request: [Product] access to Outlook mail and calendar Hi [Admin name], [Requester name] wants to connect [Product] to their Microsoft 365 account. Your tenant requires admin approval for apps that read mail or calendars. About us: [Company], publisher verified by Microsoft (Partner One ID [ID]). Privacy policy: [URL]. Security overview: [URL]. Delegated permissions (we act only as each signed-in user, never across all mailboxes): - User.Read: sign in and read the basic profile. - offline_access: work on tasks when the user is offline. - Mail.Read: read the user's mail to [feature]. - Mail.Send: send mail the user asks for. - Calendars.ReadWrite: read and create events to [feature]. To approve, sign in as a Global Administrator or Cloud Application Administrator: https://login.microsoftonline.com/[your-tenant-domain]/adminconsent?client_id=[client-id] To limit access to specific users, turn on assignment required under Enterprise apps. You can revoke consent there at any time. [Name] [Title], [Company]
Publisher verification checklist draft · other
Before you start: [ ] App registered with a work or school account. [ ] Company domain with DNS access. [ ] Domain verified as a custom domain in Entra. [ ] Publisher domain set to it, not onmicrosoft.com. Partner Center: [ ] Enrolled with a primary contact email on that domain. [ ] Business registration documents match legal name and address exactly. [ ] Domain registrar documents uploaded (employment check). [ ] Government ID uploaded. [ ] Status shows Authorized with no pending actions. [ ] App tenant linked to the partner account. [ ] PartnerGlobal ID copied (not a location ID). People and access: [ ] One person has Application Administrator or Cloud Application Administrator in Entra. [ ] The same person has Partner Admin or Account Admin in Partner Center. [ ] MFA completed in the session. Final step: [ ] Branding and properties > Add Partner ID to verify publisher > Verify and save. [ ] Blue badge shows. Test from another tenant with prompt=consent.
Permission explanations for IT admin security reviews draft · scope justification
User.Read (delegated): Identifies the user. We store name, email, and tenant ID. offline_access (delegated): Lets the agent finish scheduled tasks while the user is offline. Tokens are encrypted at rest and deleted on disconnect. Mail.Read (delegated): Reads the user's own mailbox to [summarize, triage, draft replies]. We keep [what] for [how long]. Mail.Send (delegated): Sends mail only when the user asks or approves a draft. Calendars.ReadWrite (delegated): Reads free and busy time and creates or updates requested events. We request no application permissions, so we cannot read any mailbox without a signed-in user's consent.
Partner Center support request for a stuck verification draft · support email
Subject: Verification pending for [N] days, Partner One ID [ID] Hello, Our Microsoft AI Cloud Partner Program enrollment for [Legal company name] has been in verification since [date]. The Verification Summary shows [status] for [check name] and no requested action. We need it for Entra publisher verification. We uploaded [documents]. Our legal name and address match our registration record: [name, address, registration number]. What is missing, and how long will review take? Thank you, [Name], [Role] [Email on company domain]
Open questions
When did Mail and Calendar scopes join Microsoft's default blocked list?
Microsoft shows only the current list. The mid-2025 change covered files and sites only. A third-party blog dates the mail and calendar change to November 2025, but it returned HTTP 403.
To resolve: Check Microsoft 365 message center posts or the Entra What's new page.
How many customer tenants use the default policy?
Tenants that customized consent before mid-2025 keep their settings.
To resolve: Ask early customers and log admin approval rates.
Will Mail.Send stay user-consentable?
Microsoft updates the list without notice. MC1304287 (May 2026) added contacts, people, and tasks, but not Mail.Send.
To resolve: Recheck the app consent policies page monthly.
How long does Partner Center verification take?
Microsoft says three to five business days. One thread reports about two weeks.
To resolve: Start early and record your dates.
Do personal account users see an unverified publisher warning?
No source covered the consumer consent screen.
To resolve: Test with a personal account before and after verification.
Is Composio's managed Outlook app publisher verified?
Composio's docs do not say.
To resolve: Check the consent screen with a test account, or ask Composio support.
Do all tenants on default settings block mail read consent?
Microsoft's Configure user consent page says users can consent to mailbox access by default, which conflicts with the managed list.
To resolve: Try Mail.Read consent from a fresh default tenant with a verified app.
Sources
- How to register an app in Microsoft Entra ID official docs · 2026-10-28
- Microsoft identity platform and OAuth 2.0 authorization code flow official docs · 2026-10-28
- Microsoft Graph permissions reference official docs · 2026-10-28
- Manage app consent policies official docs · 2026-10-28
- Configure how users consent to applications official docs · 2026-10-28
- Publisher verification overview official docs · 2026-10-28
- Configure risk-based step-up consent official docs · 2026-10-28
- Understand the verification process in Partner Center official docs · 2026-10-28
- Stuck on employment verification (Microsoft Tech Community) community · 2026-10-28
- Mark an app as publisher verified official docs · 2026-10-28
- Troubleshoot publisher verification official docs · 2026-10-28
- Configure the admin consent workflow official docs · 2026-10-28
- Grant tenant-wide admin consent to an application official docs · 2026-10-28
- Refresh tokens in the Microsoft identity platform official docs · 2026-10-28
- Redirect URI (reply URL) best practices and limitations official docs · 2026-10-28
- Microsoft 365 App Compliance Program overview official docs · 2026-10-28
- Microsoft to Block Users Granting Third-Party App Access to User Sites and Files (Office 365 for IT Pros) community · 2026-10-28
- Admin approval prompt for Sites.Read.All delegated scope (Microsoft Q&A) community · 2026-10-28
- Composio managed auth composio docs · 2026-10-28
- White-labeling authentication composio docs · 2026-10-28
- Managed vs custom app composio docs · 2026-10-28
- https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration probe · 2026-10-28
- https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code&client_id=oauth-guide-probe-invalid&redirect_uri=https%3A%2F%2Fexample.com%2Fcallback&scope=openid&state=probe probe · 2026-10-28
- https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade probe · 2026-10-28
- MC1304287: Upcoming secure-by-default changes for Exchange APIs (message center mirror) community · 2026-10-28
Verification changes
Verdict summary no longer says the default policy has blocked mail and calendar consent since 2025. It now says the policy does so now, and that Microsoft does not review the app itself.
The mid-2025 change (MC1097272) covered files and sites only. The date mail and calendar were added could not be confirmed from a page we could open. 2026-10-28
Narrowed e19 to say the mid-2025 change covered file and site permissions, and removed it from the Read mail and calendars scope tier.
The cited article does not mention mail or calendar permissions. 2026-10-28
Narrowed e20 to name Sites.Read.All and removed it from the admin approval blocker.
The Q&A thread is about Sites.Read.All, not mail. 2026-10-28
Refresh token blocker now says the token reached its 90 day default lifetime, not 90 days without use, and names the admin centers where a password reset revokes tokens.
The refresh token page states a 90 day default lifetime and lists revocation triggers. It does not mention inactivity. 2026-10-28
Added e30 (MC1304287) to the Send mail tier and the Mail.Send uncertainty.
The May 2026 notice names the permissions it added. Mail.Send is not among them. 2026-10-28
Added e31 and a new uncertainty about conflicting Microsoft text on default mailbox consent.
Microsoft's Configure user consent page still says users can consent to mailbox access by default. 2026-10-28
Composio note: replaced "If you switch to your own app later, existing connections keep using the managed app, and users must reconnect to move to yours." with the switching rule as Composio states it, including importing credentials.
A reviewer cross-checked Composio's docs: existing users stay on the old connection until they re-authenticate or you import their credentials, so "must reconnect" overstated it. 2026-10-28