Hantera principer för appmedgivande

Principer för appmedgivande är ett sätt att hantera de behörigheter som appar har för att komma åt data i din organisation. De används för att styra vilka appar som användare kan samtycka till och för att säkerställa att appar uppfyller vissa kriterier innan de kan komma åt data. Dessa principer hjälper organisationer att behålla kontrollen över sina data och se till att de endast beviljar åtkomst till betrodda appar.

I den här artikeln får du lära dig hur du hanterar inbyggda och anpassade appmedgivandeprinciper för att kontrollera när medgivande kan beviljas.

Med Microsoft Graph och Microsoft Graph PowerShell kan du visa och hantera principer för appmedgivande.

En princip för appmedgivande består av en eller flera villkorsuppsättningar för "inkludera" och noll eller fler villkorsuppsättningar för "exkludera". För att en händelse ska kunna beaktas i en appmedgivandeprincip måste den matcha minst en "inkludera"-villkorsuppsättning och får inte matcha någon "exkluderings"-villkorsuppsättning.

Varje villkorsuppsättning består av flera villkor. För att en händelse ska matcha en villkorsuppsättning måste alla villkor i villkorsuppsättningen vara uppfyllda.

Principer för appmedgivande där ID:t börjar med "microsoft-" är inbyggda principer. Vissa av dessa inbyggda principer används i befintliga inbyggda katalogroller. Principen för appmedgivande beskriver till exempel microsoft-application-admin de villkor under vilka rollerna Programadministratör och Molnprogramadministratör tillåts bevilja administratörsmedgivande för hela klientorganisationen. Inbyggda principer kan användas i anpassade katalogroller och för att konfigurera inställningar för användarmedgivande, men kan inte redigeras eller tas bort.

Förutsättningar

  • En användare eller tjänst med någon av följande roller:
    • Katalogrollen Global administratör
    • Katalogroll för privilegierad rolladministratör
    • En anpassad katalogroll med nödvändiga behörigheter för att hantera principer för appmedgivande
    • Microsoft Graph-approllen (programbehörighet) Policy.ReadWrite.PermissionGrant när du ansluter som en app eller en tjänst

Om du vill hantera principer för appmedgivande för program med Microsoft Graph PowerShell ansluter du till Microsoft Graph PowerShell.

Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"

Det är en bra idé att börja med att bekanta sig med befintliga principer för appmedgivande i din organisation:

  1. Visa en lista över alla principer för appmedgivande:

    Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
    
  2. Visa villkorsuppsättningarna "inkludera" för en princip:

    Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    
  3. Visa villkorsuppsättningarna "exkludera":

    Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    

Följ de här stegen för att skapa en princip för anpassat appmedgivande:

  1. Skapa en ny princip för tomt appmedgivande.

    New-MgPolicyPermissionGrantPolicy `
        -Id "my-custom-policy" `
        -DisplayName "My first custom consent policy" `
        -Description "This is a sample custom app consent policy."
    
  2. Lägg till villkorsuppsättningar för "inkludera".

    # Include delegated permissions classified "low", for apps from verified publishers
    New-MgPolicyPermissionGrantPolicyInclude `
        -PermissionGrantPolicyId "my-custom-policy" `
        -PermissionType "delegated" `
        -PermissionClassification "low" `
        -ClientApplicationsFromVerifiedPublisherOnly
    

    Upprepa det här steget om du vill lägga till fler villkorsuppsättningar för "inkludera".

  3. Du kan också lägga till villkorsuppsättningar för "exkludera".

    # Retrieve the service principal for the Azure Management API
    $azureApi = Get-MgServicePrincipal -Filter "servicePrincipalNames/any(n:n eq 'https://management.azure.com/')"
    
    # Exclude delegated permissions for the Azure Management API
    New-MgPolicyPermissionGrantPolicyExclude `
        -PermissionGrantPolicyId "my-custom-policy" `
        -PermissionType "delegated" `
        -ResourceApplication $azureApi.AppId
    

    Upprepa det här steget om du vill lägga till fler villkorsuppsättningar för "exkludera".

När du har skapat principen för appmedgivande måste du tilldela den till en anpassad roll i Microsoft Entra-ID. Sedan måste du tilldela användare till den anpassade rollen, som är kopplad till principen för appmedgivande som du skapade. Mer information om hur du tilldelar principen för appmedgivande till en anpassad roll finns i Behörigheter för appmedgivande för anpassade roller.

Följande cmdlet visar hur du kan ta bort en princip för anpassat appmedgivande.

   Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-policy"

Om du vill hantera principer för appmedgivande loggar du in på Graph Explorer med en av rollerna som anges i avsnittet om förhandskrav.

Du måste godkänna behörigheten Policy.ReadWrite.PermissionGrant .

Det är en bra idé att börja med att bekanta sig med befintliga principer för appmedgivande i din organisation:

  1. Visa en lista över alla principer för appmedgivande:

    GET /policies/permissionGrantPolicies?$select=id,displayName,description
    
  2. Visa villkorsuppsättningarna "inkludera" för en princip:

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/includes
    
  3. Visa villkorsuppsättningarna "exkludera":

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/excludes
    

Följ de här stegen för att skapa en princip för anpassat appmedgivande:

  1. Skapa en ny princip för tomt appmedgivande.

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies
    Content-Type: application/json
    
    {
      "id": "my-custom-policy",
      "displayName": "My first custom consent policy",
      "description": "This is a sample custom app consent policy"
    }
    
  2. Lägg till villkorsuppsättningar för "inkludera".

    Inkludera delegerade behörigheter som klassificeras som "låg" för appar från verifierade utgivare

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-policy }/includes
    Content-Type: application/json
    
    {
      "permissionType": "delegated",
      "PermissionClassification": "low",
      "clientApplicationsFromVerifiedPublisherOnly": true
    }
    

    Upprepa det här steget om du vill lägga till fler villkorsuppsättningar för "inkludera".

  3. Du kan också lägga till villkorsuppsättningar för "exkludera". Undanta delegerade behörigheter för Azure Management API (appId 46e6adf4-a9cf-4b60-9390-0ba6fb00bf6b)

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/my-custom-policy /excludes
    Content-Type: application/json
    
    {
      "permissionType": "delegated",
      "resourceApplication": "46e6adf4-a9cf-4b60-9390-0ba6fb00bf6b "
    }
    

    Upprepa det här steget om du vill lägga till fler villkorsuppsättningar för "exkludera".

När du har skapat principen för appmedgivande måste du tilldela den till en anpassad roll i Microsoft Entra-ID. Sedan måste du tilldela användare till den anpassade rollen, som är kopplad till principen för appmedgivande som du skapade. Mer information om hur du tilldelar principen för appmedgivande till en anpassad roll finns i Behörigheter för appmedgivande för anpassade roller.

  1. Följande visar hur du kan ta bort en princip för anpassat appmedgivande.

    DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
    

Varning

Det går inte att återställa borttagna principer för appmedgivande. Om du av misstag tar bort en princip för anpassat appmedgivande måste du återskapa principen.

Villkor som stöds

Följande tabell innehåller en lista över villkor som stöds för principer för appmedgivande.

Villkor beskrivning
Behörighetsklassificering Behörighetsklassificeringen för behörigheten som beviljas, eller "alla" för att matcha med någon behörighetsklassificering (inklusive behörigheter som inte är klassificerade). Standardvärdet är "alla".
PermissionType Behörighetstypen för behörigheten som beviljas. Använd "program" för programbehörigheter (till exempel approller) eller "delegerade" för delegerade behörigheter.

Obs! Värdet "delegatedUserConsentable" anger delegerade behörigheter som inte har konfigurerats av API-utgivaren för att kräva administratörsmedgivande. Det här värdet kan användas i inbyggda behörighetsbeviljande principer, men kan inte användas i anpassade behörighetsbeviljande principer. Obligatoriska.
ResourceApplication AppId för resursprogrammet (till exempel API:et) som en behörighet beviljas för, eller "någon" för att matcha med ett resursprogram eller API. Standardvärdet är "any".
Behörigheter Listan över behörighets-ID:t för de specifika behörigheter som ska matchas med, eller en lista med det enda värdet "alla" som matchar med valfri behörighet. Standardvärdet är "alla".
– Delegerade behörighets-ID:n finns i egenskapen OAuth2Permissions för API:ets ServicePrincipal-objekt.
– Programbehörighets-ID:n finns i egenskapen AppRoles för API:ets ServicePrincipal-objekt.
ClientApplicationIds En lista över AppId-värden för klientprogrammen som ska matchas med, eller en lista med det enda värdet "alla" som matchar alla klientprogram. Standardvärdet är "alla".
ClientApplicationTenantIds En lista över Klient-ID:t för Microsoft Entra där klientprogrammet är registrerat, eller en lista med det enda värdet "alla" som matchar klientappar som är registrerade i valfri klientorganisation. Standardvärdet är "alla".
ClientApplicationPublisherIds En lista över MPN-ID:n (Microsoft Partner Network) för verifierade utgivare av klientprogrammet, eller en lista med det enda värdet "alla" för att matcha med klientappar från alla utgivare. Standardvärdet är "alla".
ClientApplicationsFromVerifiedPublisherOnly Ställ in den här växeln så att den endast matchar klientprogram med verifierade utgivare. Inaktivera den här växeln (-ClientApplicationsFromVerifiedPublisherOnly:$false) så att den matchar alla klientappar, även om den inte har någon verifierad utgivare. Standard är $false.
scopeType Resursomfångstypen som förhandsgodkännandet gäller för. Möjliga värden: group för grupper och team, chat för chattar eller tenant för åtkomst för hela klientorganisationen. Obligatoriska.
sensitivityLabels Känslighetsetiketterna som gäller för omfångstypen och som inte godkänns i förväg. Det gör att du kan skydda känsliga organisationsdata. Läs mer om känslighetsetiketter. Obs! Chattresursen stöder inte sensitivityLabels ännu.

Nästa steg

Så här får du hjälp eller svar på dina frågor: