Entra application identities are composed of two objects:
- an Entra application object (generally located under Entra App Registrations)
- an Entra service principal object (generally located under Entra Enterprise Applications).
For 3rd party Entra applications, the Entra application object will reside in another Entra tenant, so in this case, you don't have visibility or access to that object. Each of these objects has an owner role which is distinct even though both the application object and the service principal share the same application ID.
When you create an application (generally via Entra App Registrations), the account you use becomes the owner. As the owner, you are responsible for configuring and managing this Entra object. We recommend you use your sadm Admin UW NetID for Entra application ownership. We also recommend that there be more than one owner, so that if you leave the UW, there is someone else to handle basic management needs. Once there is an owner, UW-IT generally does not intervene in the management of an Entra application unless it meets our criteria for lifecycle disablement and removal, or has consent permissions which the UW deems inappropriate. Put simply, you are responsible for Entra applications for which you are an owner.
You may be asked to supply your tenant ID -- this can sometimes be called the Entra ID tenant ID, Office 365 tenant ID, or Microsoft 365 tenant ID. All of these names mean the same thing.
The UW tenant ID is: f6b6dd5b-f02f-441a-99a0-162ac5060bd2
For OIDC and OAuth, the platform for your application alters the basic requirements. If you are using OIDC/OAuth with delegated permissions, you *must* have a Redirect URI--this is the only way a user can get to the code your application identity is using. If you are using OIDC/OAuth with application permissions, the Redirect URI may not be necessary because no human needs to interact with your application identity. For Web and single-page applications (SPA) you'll need:
- Redirect URI: Sometimes also called the Reply URI (as it serves the same purpose as the SAML property by that name). This is the URL for your application, i.e. where a user is redirected to when they have successfully gotten an Entra ID token. You supply this value on the Entra ID service principal.
For iOS/MacOS, you will need:
- Bundle ID: Your app's Bundle ID can be found in XCode in the Info.plist or `Build Settings`.
For Android, you will need:
- Package Name: Your app's Package Name can be found in the Android Manifest.
- Signature Hash: The Signature Hash can be generated via command line.
For mobile and native clients, you will need:
- Redirect URI: The redirect URI needs to match one of the following options:
In all cases, the Entra ID service principal will need:
- What type of tokens can be issued:
- Access tokens (needed for OAuth)
- ID tokens (needed for OIDC)
- Supported account types:
- Single tenant (UW Entra ID users only)
- Multitenant (any Entra ID user)
- Allow public client flows: This is needed for most mobile and native clients scenarios and may be needed in other scenarios.
In all cases, the software configuration will need:
- Application identifier (AppId): This is a globally unique identifier, provided by Entra ID on the service principal object that is created.
- Token endpoints: Configured to use these 2 endpoints with the appropriate value of {tenant}:
- Response_type: Must include "id_token" for OpenID Connect sign-in. It might also include other response_type values, such as code.
- Scope: At a minimum, you'll need to include "openid". If additional OAuth scopes are needed, they will also need to be listed.
- Nonce: The OpenID/OAuth software usually deals with this, but details included here to be complete. The value typically is a randomized, unique string that can be used to identify the origin of the request & mitigate token replay attacks.
See https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-protocols-oidc#send-the-sign-in-request for more details on what the OIDC software must send.
Note: OAuth2 supports a variety of access flows. Additional information may be required or recommended for those flows.