How do I grant an app registration access to Microsoft Graph using least privilege?

Sam 0 Reputation points
2026-01-08T11:01:28.1766667+00:00

I’m creating an app registration that needs to read basic user data from Microsoft Graph.

How do I choose the minimum required permissions and avoid granting overly broad access?

Microsoft Security | Microsoft Entra | Microsoft Entra ID
0 comments No comments

2 answers

Sort by: Most helpful
  1. VEMULA SRISAI 13,890 Reputation points Microsoft External Staff Moderator
    2026-01-08T11:11:22.0466667+00:00

    Hello Sam,

    It looks like you're looking to grant the minimum necessary permissions for your app registration to read basic user data from Microsoft Graph. Here’s how you can navigate that:

    Identifying Necessary Permissions: Start by understanding the types of permissions your application needs. Microsoft Graph offers two main types of permissions:

    • Delegated Permissions: These are used when an app is acting on behalf of a user. For example, if you're developing an application that needs to access the user’s profile or read their emails, you might want permissions like User.Read.
      • Application Permissions: These are used when your app needs to access data without a signed-in user context, which typically requires admin consent. For instance, if your app needs to read user data for all users in your directory without user involvement, you would use the User.Read.All permission.
      Requesting Least Privileged Permissions: It's a best practice to request only permissions that your app needs to function correctly, as excessive permissions could hinder user adoption due to security concerns. This not only adheres to the principle of least privilege but also minimizes the risk of sensitive data exposure. Steps to Configure Permissions:
      - Go to **API Permissions** under your app registration in the Microsoft Entra admin center.
      
         - Choose **Add a permission**, select **Microsoft Graph**, and then select either **Delegated** or **Application permissions** based on your app’s needs.
      
            - Select the required permissions from the list and then **Add permissions**.
      
               - If needed, an admin must grant consent for the permissions you selected by clicking on **Grant admin consent for <your tenant name>**.
      
               **Documentation Reference**: You can also refer to the following documents for detailed guidance:
      
                  - [Best practices for using Microsoft Graph permissions](https://learn.microsoft.com/graph/auth-v2-service?wt.mc_id=knowledgesearch_inproduct_azure-cxp-community-insider#step-1-configure-permissions-for-microsoft-graph)
      
                     - [Microsoft Graph permissions reference](https://learn.microsoft.com/graph/permissions-reference)
      
                        - [Delegated and application permissions](https://learn.microsoft.com/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes)
      

    By following these steps and utilizing the associated permissions wisely, you can ensure that your app has just what it needs without oversharing access. Hope this helps, and let me know if you have any more questions!

    Was this answer helpful?


  2. AI answer

    2026-01-08T11:01:36.93+00:00

    To grant an app registration access to Microsoft Graph using the principle of least privilege, follow these steps:

    1. Identify Required Permissions: Determine the specific data your app needs to access. For reading basic user data, you would typically need permissions like User.Read.
    2. Use Granular Permissions: Microsoft Graph provides granular permissions, allowing you to request only what is necessary. For example, if your app only needs to read the signed-in user's profile information, you should only request User.Read instead of broader permissions like User.ReadWrite.
    3. Review Permissions: Before finalizing your app registration, review the permissions list to ensure you are not requesting any unnecessary permissions. You can use tools like Graph Explorer to understand the least privileged permissions required for your API calls.
    4. Separate Roles for Permission Management: To enforce least privilege, consider separating the roles of adding permissions and granting them. A user with the Privileged Role Administrator role can add and grant permissions, while others may only add them.
    5. Regularly Audit Permissions: After your app is deployed, regularly audit the permissions granted to ensure they remain relevant and do not exceed what is necessary for the app's functionality.

    By following these guidelines, you can ensure that your app registration has the minimum required permissions to function effectively without granting overly broad access.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

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.