Dela via


Hantera tilldelning av användare och grupper till ett program

Den här artikeln visar hur du tilldelar användare och grupper till ett företagsprogram i Microsoft Entra-ID med hjälp av PowerShell. När du tilldelar en användare till ett program visas programmet i användarens Mina appar portal för enkel åtkomst. Om programmet exponerar approller kan du även tilldela användaren en specifik approll.

När du tilldelar en grupp till ett program har endast användare i gruppen åtkomst. Tilldelningen överlappar inte kapslade grupper.

Gruppbaserad tilldelning kräver Microsoft Entra ID P1- eller P2-utgåva. Gruppbaserad tilldelning stöds för säkerhetsgrupper, Microsoft 365-grupper och distributionsgrupper vars SecurityEnabled inställning är inställd True på endast. Kapslade gruppmedlemskap stöds inte för närvarande. Mer licensieringskrav för de funktioner som beskrivs i den här artikeln finns på prissättningssidan för Microsoft Entra.

För större kontroll kan vissa typer av företagsprogram konfigureras för att kräva användartilldelning. Mer information om hur du kräver användartilldelning för en app finns i Hantera åtkomst till ett program.

Kommentar

Program som kräver att användare tilldelas till programmet måste ha sina behörigheter medgivande av en administratör, även om användarmedgivandeprinciperna för din katalog annars skulle tillåta en användare att samtycka för sig själva.

Förutsättningar

Om du vill tilldela användare till ett företagsprogram behöver du:

  • Ett Microsoft Entra-konto med en aktiv prenumeration. Om du inte redan har ett kan du skapa ett konto kostnadsfritt.
  • En av följande roller: Molnprogramadministratör, programadministratör eller ägare av tjänstens huvudnamn.
  • Microsoft Entra ID P1 eller P2 för gruppbaserad tilldelning. Mer licensieringskrav för de funktioner som beskrivs i den här artikeln finns på prissättningssidan för Microsoft Entra.

Dricks

Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.

Tilldela användare och grupper till ett program med hjälp av administrationscentret för Microsoft Entra

Så här tilldelar du ett användar- eller gruppkonto till ett företagsprogram:

  1. Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör.

  2. Bläddra till Identity>Applications Enterprise-program>>Alla program.

  3. Ange namnet på det befintliga programmet i sökrutan och välj sedan programmet i sökresultaten.

  4. Välj Användare och grupper och välj sedan Lägg till användare/grupp.

    Tilldela användarkonto till ett program i din Microsoft Entra-klientorganisation.

  5. I fönstret Lägg till tilldelning väljer du Ingen markerad under Användare och grupper.

  6. Sök efter och välj den användare eller grupp som du vill tilldela till programmet. Exempel: contosouser1@contoso.com eller contosoteam1@contoso.com.

  7. Välj Välj.

  8. Under Välj en roll väljer du den roll som du vill tilldela användaren eller gruppen. Om du inte har definierat några roller än är standardrollen Standardåtkomst.

  9. I fönstret Lägg till tilldelning väljer du Tilldela för att tilldela användaren eller gruppen till programmet.

Avtilldela användare och grupper från ett program

  1. Följ stegen i avsnittet Tilldela användare och grupper till ett program för att navigera till fönstret Användare och grupper .
  2. Sök efter och välj den användare eller grupp som du vill ta bort tilldelningen från programmet.
  3. Välj Ta bort för att avtilldela användaren eller gruppen från programmet.

Tilldela användare och grupper till ett program med Azure AD PowerShell

  1. Öppna en upphöjd Windows PowerShell-kommandotolk.

  2. Kör Connect-AzureAD och logga in som minst molnprogramadministratör.

  3. Använd följande skript för att tilldela en användare till ett program:

    # Assign the values to the variables
    $username = "<Your user's UPN>"
    $app_name = "<Your App's display name>"
    $app_role_name = "<App role display name>"
    
    # Get the user to assign, and the service principal for the app to assign to
    $user = Get-AzureADUser -ObjectId "$username"
    $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
    # Assign the user to the app role
    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Exempel

I det här exemplet tilldelas användaren Britta Simon till Microsoft Workplace Analytics-programmet med hjälp av PowerShell.

  1. I PowerShell tilldelar du motsvarande värden till variablerna $username, $app_name och $app_role_name.

    $username = "britta.simon@contoso.com"
    $app_name = "Workplace Analytics"
    
  2. I det här exemplet vet vi inte vad som är det exakta namnet på den programroll som vi vill tilldela Britta Simon. Kör följande kommandon för att hämta användaren ($user) och tjänstens huvudnamn ($sp) med hjälp av användarens UPN och visningsnamnen för tjänstens huvudnamn.

    $user = Get-AzureADUser -ObjectId "$username"
    $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
    
  3. Kör följande kommando för att hitta approllerna som exponeras av tjänstens huvudnamn

    $appRoles = $sp.AppRoles
    # Display the app roles
    $appRoles | ForEach-Object {
        Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)"
    

    Kommentar

    Standard-AppRole-ID:t är 00000000-0000-0000-0000-000000000000. Den här rollen tilldelas när ingen specifik AppRole har definierats för tjänstens huvudnamn.

  4. Tilldela AppRole-namnet till variabeln $app_role_name . I det här exemplet vill vi tilldela Britta Simon rollen Analytiker (begränsad åtkomst).

    $app_role_name = "Analyst (Limited access)"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
  5. Kör följande kommando för att tilldela användaren till approllen.

    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Om du vill tilldela en grupp till en företagsapp ersätter du Get-AzureADUser med Get-AzureADGroup och ersätter New-AzureADUserAppRoleAssignment med New-AzureADGroupAppRoleAssignment.

Mer information om hur du tilldelar en grupp till en programroll finns i dokumentationen för New-AzureADGroupAppRoleAssignment.

Avtilldela användare och grupper från ett program med Azure AD PowerShell

  1. Öppna en upphöjd Windows PowerShell-kommandotolk.

  2. Kör Connect-AzureAD och logga in som minst molnprogramadministratör.

  3. Använd följande skript för att ta bort en användare och roll från ett program.

    # Store the proper parameters
    $user = get-azureaduser -ObjectId <objectId>
    $spo = Get-AzureADServicePrincipal -ObjectId <objectId>
    
    #Get the ID of role assignment 
    $assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $spo.ObjectId | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
    
    #if you run the following, it will show you what is assigned what
    $assignments | Select *
    
    #To remove the App role assignment run the following command.
    Remove-AzureADServiceAppRoleAssignment -ObjectId $spo.ObjectId -AppRoleAssignmentId $assignments[assignment number].ObjectId
    

Ta bort alla användare som har tilldelats till programmet med Hjälp av Azure AD PowerShell

  1. Öppna en upphöjd Windows PowerShell-kommandotolk.

Använd följande skript för att ta bort alla användare och grupper som tilldelats till programmet.

#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
$sp.ObjectId

# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"

# Get Azure AD App role assignments using objectId of the Service Principal
$assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $sp.ObjectId -All $true

# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
    if ($_.PrincipalType -eq "User") {
        Remove-AzureADUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    } elseif ($_.PrincipalType -eq "Group") {
        Remove-AzureADGroupAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    }
}

Tilldela användare och grupper till ett program med Hjälp av Microsoft Graph PowerShell

  1. Öppna en upphöjd Windows PowerShell-kommandotolk.

  2. Kör Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" och logga in som minst molnprogramadministratör.

  3. Använd följande skript för att tilldela en användare till ett program:

    #Assign the values to the variables
    $userId = "<Your user's ID>"
    $app_name = "<Your App's display name>"
    $app_role_name = "<App role display name>"
    $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"
    
    #Get the user, the service principal and appRole.
    $params = @{
    "PrincipalId" =$userId
    "ResourceId" =$sp.Id
    "AppRoleId" =($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
    }
    #Assign the user to the AppRole
    New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |
        Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,
        PrincipalId, PrincipalType, ResourceDisplayName, ResourceId
    

Exempel

I det här exemplet tilldelas användaren Britta Simon till Microsoft Workplace Analytics-programmet med hjälp av Microsoft Graph PowerShell.

  1. I PowerShell tilldelar du motsvarande värden till variablerna $userId, $app_nameoch $app_role_name.

    # Assign the values to the variables  
    $userId = "<Britta Simon's user ID>"  
    $app_name = "Workplace Analytics"  
    
  2. I det här exemplet vet vi inte det exakta namnet på den programroll som vi vill tilldela Britta Simon. Kör följande kommando för att hämta tjänstens huvudnamn ($sp) med visningsnamnet för tjänstens huvudnamn.

    # Get the service principal for the app  
    $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"  
    
  3. Kör följande kommando för att hitta approllerna som exponeras av tjänstens huvudnamn.

    # Get the app roles exposed by the service principal  
    $appRoles = $sp.AppRoles  
    # Display the app roles  
    $appRoles | ForEach-Object {  
        Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)"  
    }  
    

    Kommentar

    Standard-AppRole-ID:t är 00000000-0000-0000-0000-000000000000. Den här rollen tilldelas när ingen specifik AppRole har definierats för tjänstens huvudnamn.

  4. Tilldela rollnamnet till variabeln $app_role_name . I det här exemplet vill vi tilldela Britta Simon rollen Analytiker (begränsad åtkomst).

    # Assign the values to the variables  
    $app_role_name = "Analyst (Limited access)"  
    $appRoleId = ($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id  
    
  5. Förbered parametrarna och kör följande kommando för att tilldela användaren till approllen.

    # Prepare parameters for the role assignment  
    $params = @{  
        "PrincipalId" = $userId  
        "ResourceId" = $sp.Id  
        "AppRoleId" = $appRoleId  
    }  
    
    # Assign the user to the app role  
    New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |   
        Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,   
        PrincipalId, PrincipalType, ResourceDisplayName, ResourceId  
    

Om du vill tilldela en grupp till en företagsapp ersätter du Get-MgUser med Get-MgGroup och ersätter New-MgUserAppRoleAssignment med New-MgGroupAppRoleAssignment.

Mer information om hur du tilldelar en grupp till en programroll finns i dokumentationen för New-MgGroupAppRoleAssignment.

Avtilldela användare och grupper från ett program med Hjälp av Microsoft Graph PowerShell

  1. Öppna en upphöjd Windows PowerShell-kommandotolk.

  2. Kör Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" och logga in som minst molnprogramadministratör.

  3. Hämta användaren och tjänstens huvudnamn

    $user = Get-MgUser -UserId <userid>
    $sp = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>
    
  4. Hämta ID för rolltilldelningen

    $assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
    
  5. Kör följande kommando för att visa listan över användare som tilldelats till programmet

    $assignments | Select *
    
  6. Kör följande kommando för att ta bort AppRole-tilldelningen.

    Remove-MgServicePrincipalAppRoleAssignedTo -AppRoleAssignmentId  '<AppRoleAssignment-id>' -ServicePrincipalId $sp.Id
    

Ta bort alla användare och grupper som tilldelats programmet med Microsoft Graph PowerShell

Kör följande kommando för att ta bort alla användare och grupper som tilldelats till programmet.

$assignments | ForEach-Object {
    if ($_.PrincipalType -in ("user", "Group")) {
        Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id -AppRoleAssignmentId $_.Id  }
}

Tilldela användare och grupper till ett program med hjälp av Microsoft Graph API

  1. Om du vill tilldela användare och grupper till ett program loggar du in på Graph Explorersom minst molnprogramadministratör.

    Du måste godkänna följande behörigheter:

    Application.ReadWrite.All, Directory.ReadWrite.Alloch AppRoleAssignment.ReadWrite.All.

    Om du vill bevilja en approlltilldelning behöver du tre identifierare:

    • principalId: ID för den användare eller grupp som du tilldelar approllen till.
    • resourceId: ID för resurstjänstenPrincipal som definierar approllen.
    • appRoleId: ID:t för appRole (definierat i resurstjänstens huvudnamn) som ska tilldelas till en användare eller grupp.
  2. Hämta företagsapplikationen. Filtrera efter DisplayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    

    Registrera följande värden från svarstexten:

    • Objekt-ID för företagsprogrammet
    • AppRole-ID som du tilldelar användaren. Om programmet inte exponerar några roller tilldelas användaren standardåtkomstrollen.

    Kommentar

    Standard-AppRole-ID:t är 00000000-0000-0000-0000-000000000000. Den här rollen tilldelas när ingen specifik AppRole har definierats för tjänstens huvudnamn.

  3. Hämta användaren genom att filtrera efter användarens huvudnamn. Registrera användarens objekt-ID.

    GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
    
  4. Tilldela användaren till programmet.

    POST https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo
    
    {
    "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
    "resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
    "appRoleId": "00000000-0000-0000-0000-000000000000"
    }
    

    I exemplet representerar både resource-servicePrincipal-id och resourceId företagsapplikationen.

Avtilldela användare och grupper från ett program med hjälp av Microsoft Graph API

Om du vill ta bort tilldelningen av alla användare och grupper från programmet kör du följande fråga.

  1. Hämta företagsapplikationen. Filtrera efter displayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    
  2. Hämta listan över appRoleAssignments för programmet.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
    
  3. Ta bort genom appRoleAssignments att ange ID:t appRoleAssignment .

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Microsoft Graph Explorer stöder inte batchborttagning av approlltilldelningar direkt. Du måste ta bort varje tilldelning individuellt. Du kan dock automatisera den här processen med Hjälp av Microsoft Graph PowerShell för att iterera igenom och ta bort varje tilldelning

Nästa steg