Validation differences by supported account types (signInAudience)

When registering an application with the Microsoft identity platform for developers, you're asked to select which account types your application supports. In the application object and manifest, this property is signInAudience.

The options include the following values:

  • AzureADMyOrg: Only accounts in the organizational directory where the app is registered (single-tenant).
  • AzureADMultipleOrgs: Accounts in any organizational directory (multi-tenant).
  • AzureADandPersonalMicrosoftAccount: Accounts in any organizational directory (multi-tenant) and personal Microsoft accounts (for example, Skype, Xbox, and Outlook.com).

For registered applications, you can find the value for supported account types on the Authentication section of an application. You can also find it under the signInAudience property in the Manifest.

The value you select for this property has implications on other app object properties. As a result, if you change this property you may need to change other properties first.

See the following table for the validation differences of various properties for different supported account types.

Property AzureADMyOrg AzureADMultipleOrgs AzureADandPersonalMicrosoftAccount and PersonalMicrosoftAccount
Application ID URI (identifierURIs) Must be unique in the tenant

urn:// schemes are supported

Wildcards aren't supported

Query strings and fragments are supported

Maximum length of 255 characters

No limit* on number of identifierURIs
Must be globally unique

urn:// schemes are supported

Wildcards aren't supported

Query strings and fragments are supported

Maximum length of 255 characters

No limit* on number of identifierURIs
Must be globally unique

urn:// schemes aren't supported

Wildcards, fragments, and query strings aren't supported

Maximum length of 120 characters

Maximum of 50 identifierURIs
Certificates (keyCredentials) Symmetric signing key Symmetric signing key Encryption and asymmetric signing key
Client secrets (passwordCredentials) No limit* No limit* If liveSDK is enabled: Maximum of two client secrets
Redirect URIs (replyURLs) See Redirect URI/reply URL restrictions and limitations for more info.
API permissions (requiredResourceAccess) No limit* No limit* Maximum of 50 resources per application and 30 permissions per resource (for example, Microsoft Graph). Total limit of 200 per application (resources x permissions).
Scopes defined by this API (oauth2Permissions) Maximum scope name length of 120 characters

No limit* on the number of scopes defined
Maximum scope name length of 120 characters

No limit* on the number of scopes defined
Maximum scope name length of 40 characters

Maximum of 100 scopes defined
Authorized client applications (preAuthorizedApplications) No limit* No limit* Total maximum of 500

Maximum of 100 client apps defined

Maximum of 30 scopes defined per client
appRoles Supported
No limit*
Supported
No limit*
Not supported
Front-channel logout URL https://localhost is allowed

http scheme isn't allowed

Maximum length of 255 characters
https://localhost is allowed

http scheme isn't allowed

Maximum length of 255 characters
https://localhost is allowed, http://localhost fails

http scheme isn't allowed

Maximum length of 255 characters

Wildcards aren't supported
Display name Maximum length of 120 characters Maximum length of 120 characters Maximum length of 90 characters

* There's a global limit of about 1000 items across all the collection properties on the app object.

Next steps

For more information about application registrations and their JSON manifest, see: